Ceci est une ancienne révision du document !
ROS est la boîte à outils qui est utilisé pour créer toute les couches d'intelligence du robot. Il existe actuellement 2 versions indépendantes de ce framework :
ROS 1 était destinée particulièrement à être utilisée avec du C++03, avec la plupart des fonctionnalités disponible en Python 2 ainsi que Lisp dans une moindre mesure. Pour la sous-version ROS Melodic (2018-2023), elle cible les langages C++14 et Python 2.7 avec une compatibilité fortement recommandée avec Python 3.5. C’est avec cette version qu’est actuellement développée l’architecture d’UTCoupe.
ROS 2 a été conçue pour se détacher d’un langage spécifique en posant une base solide commune à tous les langages : rcl (ROS Common Library); ROS2 Foxy (2020-2023) vient avec rclcpp (C++17) et rclpy (Python 3.8) mais il existe des interfaces pour d’autres langages comme C#, Javascript (NodeJS), Java, Swift…
Les dernières versions de ROS 1 utilisent l’outil Catkin pour gérer l’espace de travail (workspace) contenant tous les packages correspondant à un projet. Il est totalement basé sur CMake, y compris pour des packages contenant uniquement des fichiers Python.
Dans ROS2, cet outil a été remplacé par le duo Ament/Colcon. Ils utilisent toujours CMake, mais il est possible de ne pas utiliser celui-ci pour du code Python.