Polydesk-logotype
Polydesk.ai — Header

ROS (Robot Operating System) : le framework de référence en robotique

ROS (Robot Operating System) est un ensemble open source de bibliothèques logicielles et d’outils conçu pour faciliter le développement d’applications robotiques, des pilotes matériels aux algorithmes de pointe en passant par les outils de simulation et de visualisation.

Malgré son nom, ROS n’est pas un système d’exploitation au sens classique. C’est un middleware robotique : une couche logicielle qui s’installe sur un OS existant (Ubuntu Linux principalement) et fournit l’infrastructure nécessaire pour faire communiquer les composants d’un robot. Depuis son lancement en 2007 par Willow Garage, ROS est devenu le standard de facto du développement robotique mondial. En 2026, ROS 2 (la deuxième génération) a supplanté ROS 1 (dont le support de Noetic a pris fin en mai 2025), avec des améliorations majeures en sécurité, temps réel et compatibilité multi-plateformes.

ROS en bref
Nom complet
Robot Operating System
Type
Middleware robotique open source (pas un OS)
Licence
Apache 2.0 (ROS 2), BSD 3-clause (certains packages ROS 1)
Version actuelle recommandée
ROS 2 Jazzy Jalisco (LTS, Ubuntu 24.04)
Dernière distribution
ROS 2 Kilted Kaiju (support jusqu’à nov. 2026)
Organisation
Open Source Robotics Foundation (OSRF) / Open Source Robotics Alliance (OSRA)
Langages
C++, Python, Rust (expérimental)
Simulation
Gazebo (intégré)
URL
ros.org

Qu’est-ce que ROS exactement ?

ROS fournit trois couches essentielles pour le développement robotique :

Une architecture de communication. ROS gère la communication entre les différents processus (appelés « nœuds ») qui composent un système robotique. Un nœud de perception (caméra) peut publier des données que des nœuds de navigation, de planification et de contrôle consomment simultanément. Ce modèle publish/subscribe découple les composants et rend le système modulaire.

Un écosystème de packages. Des milliers de packages open source couvrent les besoins courants : navigation autonome (Nav2), SLAM (cartographie et localisation), planification de mouvement (MoveIt 2), perception par vision, contrôle de bras articulés, interfaces avec des capteurs (LiDAR, caméras, IMU), et bien plus. L’index des packages ROS recense des milliers de bibliothèques réutilisables.

Des outils de développement. Visualisation 3D (RViz2), enregistrement/relecture de données (rosbag2), outils de build (colcon), gestion de versions de packages (Bloom), et intégration continue avec le ROS Build Farm.

ROS 1 vs ROS 2 : pourquoi la migration

ROS 1 a dominé la robotique académique et R&D pendant plus de 15 ans, mais il souffrait de limitations sérieuses pour les déploiements industriels. ROS 2 a été repensé de zéro pour les résoudre :

Aspect ROS 1 ROS 2
Communication Protocole propriétaire (TCPROS), nœud maître central (roscore) DDS (Data Distribution Service), standard industriel, pas de nœud maître
Temps réel Non supporté Support natif du temps réel (compatible RTOS comme VxWorks)
Sécurité Aucune authentification ni chiffrement SROS2 : authentification, chiffrement, contrôle d’accès
Plateformes Linux uniquement (Ubuntu principalement) Linux, Windows 10, macOS, Yocto/OpenEmbedded
Architecture CPU AMD64 principalement AMD64, ARM32, ARM64 (Raspberry Pi, Jetson, etc.)
Langages C++ (roscpp), Python (rospy) C++ (rclcpp), Python (rclpy), Rust (expérimental)
Point de défaillance unique Oui (roscore est un SPOF) Non (architecture décentralisée)
Support ROS 1 Noetic : fin de support mai 2025 Jazzy Jalisco (LTS), Kilted Kaiju, Humble Hawksbill (LTS jusqu’à mai 2027)
Fin de ROS 1 ROS 1 Noetic Ninjemys, la dernière distribution ROS 1, a perdu son support officiel en mai 2025. Si vous avez encore des projets sur ROS 1, la migration vers ROS 2 est urgente. Open Robotics recommande ROS 2 Jazzy Jalisco (LTS) comme distribution cible pour toute nouvelle installation. La transition n’est pas triviale : les API ont changé, le système de build est différent (colcon remplace catkin), et certains packages n’ont pas encore été portés. Mais les bénéfices en sécurité, temps réel et multi-plateforme justifient largement l’effort.

Les distributions ROS 2 en 2026

Distribution Type OS cible Fin de support Recommandation
Jazzy Jalisco LTS (Long Term Support) Ubuntu 24.04 (Noble), Windows 10 Mai 2029 Recommandé pour tous
Kilted Kaiju Short-term Ubuntu 24.04, Windows 10 Novembre 2026 Pour utilisateurs souhaitant les dernières fonctionnalités
Humble Hawksbill LTS (précédent) Ubuntu 22.04 Mai 2027 Migration vers Jazzy recommandée
Rolling Ridley Rolling release Multiple Continue Pour le développement de pointe et les contributeurs

L’écosystème ROS

Gazebo : la simulation robotique

Gazebo est le simulateur robotique intégré à ROS. Il permet de créer des environnements 3D réalistes, de simuler la physique (gravité, collisions, friction), d’ajouter des capteurs virtuels (caméras, LiDAR, IMU) et de tester des algorithmes avant tout déploiement sur du matériel réel. Gazebo Fuel fournit une bibliothèque d’assets et d’environnements prêts à l’emploi. La simulation est devenue un maillon essentiel du développement robotique, surtout avec l’approche sim-to-real (entraîner en simulation, déployer dans le réel).

MoveIt 2 : planification de mouvement

MoveIt 2 est le framework de planification de mouvement le plus utilisé pour les bras robotiques. Il gère la cinématique inverse, la planification de trajectoire, l’évitement d’obstacles et le contrôle en temps réel. Si vous travaillez avec des bras articulés (industriels ou de recherche), MoveIt 2 est quasi incontournable.

Le package Navigation2 (Nav2) est le framework standard pour la navigation autonome de robots mobiles. Il intègre le SLAM, la planification de chemin, l’évitement d’obstacles dynamiques et le suivi de trajectoire. Les robots mobiles autonomes (AMR) dans les entrepôts, les hôpitaux et les bureaux utilisent massivement Nav2.

Nvidia Isaac ROS

Nvidia Isaac ROS est une collection de packages ROS 2 accélérés par GPU (CUDA) pour la perception, la navigation et la manipulation robotiques. L’intégration avec les plateformes Nvidia Jetson permet de déployer des algorithmes IA avancés (deep learning, vision transformers) directement sur le matériel embarqué du robot. Isaac ROS utilise NITROS (Nvidia’s type adaptation and negotiation) pour optimiser les performances du pipeline ROS 2 sur GPU.

Architecture d’un système ROS 2

Un système ROS 2 est composé de nœuds (nodes) qui communiquent via des topics (publish/subscribe), des services (requête/réponse) et des actions (tâches longues avec feedback). Voici un exemple typique pour un robot mobile :

Nœud Rôle Package typique
Driver caméra Publie les images de la caméra sur un topic usb_cam, realsense2_camera
Driver LiDAR Publie les nuages de points velodyne, rplidar
Perception Détecte les objets, estime les distances Isaac ROS, image_proc, pcl_ros
SLAM Construit la carte et localise le robot slam_toolbox, cartographer, rtab_map
Navigation Planifie le chemin et évite les obstacles Nav2
Contrôleur moteurs Convertit les commandes de vitesse en signaux moteurs ros2_control, micro-ROS
TF2 Gère les transformations de coordonnées entre les repères du robot tf2_ros

Concepts fondamentaux de ROS 2

Pour comprendre ROS 2, il faut maîtriser quelques concepts centraux qui structurent toute application robotique :

Nœuds (Nodes)

Un nœud est un processus qui effectue une tâche spécifique. Un robot typique est composé de dizaines de nœuds : un pour le driver de caméra, un pour le SLAM, un pour la navigation, un pour le contrôle moteur, etc. Chaque nœud est un exécutable indépendant, ce qui favorise la modularité et la réutilisabilité. Un nœud développé pour un robot peut souvent être réutilisé sur un autre avec des ajustements minimes.

Topics (Publish/Subscribe)

Les topics sont le mécanisme de communication principal. Un nœud publie des messages sur un topic (par exemple, /camera/image_raw pour les images brutes de caméra), et tout nœud intéressé peut s’y abonner. Ce pattern publish/subscribe est asynchrone et découple les producteurs des consommateurs. Le nœud caméra n’a pas besoin de savoir qui consomme ses images.

Services (Request/Reply)

Pour les interactions synchrones, ROS 2 propose les services. Un nœud client envoie une requête à un nœud serveur et attend la réponse. Exemple : un service /set_speed qui prend une vitesse cible et renvoie un accusé de réception.

Actions

Les actions gèrent les tâches longues avec feedback. Par exemple, un nœud de navigation reçoit un objectif (aller au point B), publie du feedback régulier (distance restante, pourcentage de progression) et renvoie un résultat final (succès ou échec). Le client peut annuler l’action en cours.

Transformations (TF2)

TF2 est le système de gestion des repères de coordonnées. Un robot a de nombreux repères : la base, chaque articulation, chaque capteur. TF2 maintient l’arbre des transformations entre tous ces repères en temps réel, permettant de convertir des coordonnées d’un repère à un autre. C’est un composant invisible mais absolument critique : sans TF2, un robot ne sait pas « où » se trouvent ses capteurs par rapport à son châssis ou par rapport au monde.

Fichiers Launch

Un fichier launch (en Python pour ROS 2) permet de démarrer plusieurs nœuds simultanément avec leurs paramètres de configuration. Un seul fichier launch peut démarrer l’ensemble du système robotique : drivers, perception, navigation, contrôle. C’est l’équivalent d’un docker-compose pour la robotique.

Quality of Service (QoS)

ROS 2 introduit des profils QoS qui contrôlent la fiabilité et le comportement de la communication. Vous pouvez configurer un topic en « best effort » (rapide mais possibilité de perte de messages, adapté aux flux vidéo) ou « reliable » (aucune perte, adapté aux commandes critiques). Cette flexibilité, héritée de DDS, est essentielle pour les applications temps réel et industrielles.

Cas d’usage concrets

Robotique industrielle

Les intégrateurs robotiques utilisent ROS 2 avec MoveIt 2 pour programmer des bras articulés (FANUC, KUKA, UR) dans des applications de pick-and-place, d’assemblage et de contrôle qualité. L’intégration avec ros2_control fournit une interface standardisée pour les contrôleurs matériels.

Robots mobiles autonomes (AMR)

Les AMR de logistique (Amazon, Locus Robotics, MiR) utilisent ROS 2 avec Nav2 et SLAM pour naviguer dans les entrepôts. La gestion de flotte (multi-robot coordination) est un domaine en forte expansion.

Recherche et éducation

ROS reste le standard dans les laboratoires de recherche en robotique. Le TurtleBot 4 (plateforme hardware/software open source) est la référence pour l’apprentissage de ROS. Les publications académiques citent ROS 2 via le DOI 10.1126/scirobotics.abm6074.

Robots humanoïdes et Physical AI

Plusieurs fabricants de robots humanoïdes (1X NEO, Agility Digit) utilisent ROS 2 comme couche middleware pour intégrer perception, planification et contrôle. L’intégration avec Nvidia Isaac Sim permet l’entraînement sim-to-real de politiques IA avancées.

micro-ROS : ROS 2 sur microcontrôleurs

micro-ROS étend ROS 2 aux microcontrôleurs (ESP32, STM32, Arduino), permettant d’intégrer des capteurs et actionneurs bas niveau directement dans le graphe ROS 2. Un capteur de force sur un préhenseur peut publier ses données comme un nœud ROS 2 standard, même s’il tourne sur un microcontrôleur à quelques euros. Cette architecture « du microcontrôleur au cloud » unifie la communication à tous les niveaux du système robotique.

micro-ROS utilise une version légère du middleware DDS (Micro XRCE-DDS) adaptée aux contraintes de mémoire et de calcul des systèmes embarqués. Le nœud micro-ROS communique avec un agent sur le processeur principal du robot, qui fait le pont avec le reste du graphe ROS 2.

La communauté ROS

La force de ROS réside autant dans sa communauté que dans son code. L’écosystème comprend le forum Zulip ROS (successeur de Discourse), Robotics Stack Exchange pour les questions techniques, ROSCon (conférence annuelle des développeurs, avec des événements régionaux comme ROSConJP et ROSConFr), et un réseau mondial de contributeurs, de l’académique à l’industriel. Les enregistrements de ROSCon 2025 sont disponibles sur Vimeo. L’Open Source Robotics Alliance (OSRA) coordonne les contributions industrielles et assure la pérennité du projet.

Conseil Polydesk Si vous débutez en robotique, commencez par installer ROS 2 Jazzy Jalisco sur Ubuntu 24.04 et suivez les tutoriels officiels sur docs.ros.org. Utilisez Gazebo pour simuler un robot avant d’acheter du matériel. Le TurtleBot 4 est un excellent point d’entrée hardware. Pour les projets nécessitant de l’IA avancée (vision, navigation), explorez Nvidia Isaac ROS. Et rejoignez la communauté : le forum Zulip ROS et Robotics Stack Exchange sont des ressources précieuses.

Questions fréquentes sur ROS

ROS est-il un système d’exploitation ?

Non, malgré son nom. ROS est un middleware robotique : une couche logicielle qui s’installe sur un système d’exploitation existant (principalement Ubuntu Linux) et fournit l’infrastructure de communication, les outils de développement et les bibliothèques nécessaires pour construire des applications robotiques. Il ne gère pas directement le matériel, la mémoire ou les processus comme un vrai OS. Le nom « Robot Operating System » reflète son ambition de fournir un « environnement complet » pour la robotique, à la manière d’un OS fournit un environnement complet pour les applications classiques.

Quelle est la différence entre ROS 1 et ROS 2 ?

ROS 2 est une réécriture complète qui corrige les limitations de ROS 1 pour les déploiements industriels. Les différences majeures : ROS 2 utilise DDS (un standard industriel) au lieu d’un protocole propriétaire, supporte le temps réel, inclut la sécurité (authentification, chiffrement), fonctionne sur Linux, Windows et macOS, et n’a pas de point de défaillance unique (pas de roscore). ROS 1 Noetic a perdu son support en mai 2025, donc ROS 2 est désormais la seule option activement maintenue.

Quelle distribution ROS 2 choisir ?

En 2026, ROS 2 Jazzy Jalisco (LTS) est recommandé pour tous les nouveaux projets. Il est supporté jusqu’en mai 2029 sur Ubuntu 24.04 (Noble). Si vous avez besoin des toutes dernières fonctionnalités, Kilted Kaiju (support jusqu’à novembre 2026) est une option. Rolling Ridley est réservé aux contributeurs et développeurs qui veulent le code le plus récent. Si vous êtes encore sur Humble Hawksbill (supporté jusqu’en mai 2027), planifiez la migration vers Jazzy.

Peut-on utiliser ROS sans robot physique ?

Absolument, et c’est même recommandé pour débuter. Gazebo (le simulateur intégré à ROS) permet de simuler des robots dans des environnements 3D réalistes, avec des capteurs virtuels et une physique simulée. Vous pouvez développer et tester des algorithmes de navigation, de SLAM, de manipulation et de perception sans aucun matériel physique. La simulation est aussi un outil professionnel : les équipes industrielles valident leurs algorithmes en simulation avant le déploiement sur le terrain.

ROS est-il utilisé en production industrielle ?

Oui, de plus en plus. ROS 2 a été conçu spécifiquement pour les exigences industrielles (temps réel, sécurité, fiabilité). Des entreprises comme Amazon (robots de logistique), Bosch, ABB, et des fabricants de véhicules autonomes utilisent ROS 2 en production. Les intégrateurs du Technical Steering Committee (TSC) de ROS 2 incluent des acteurs industriels majeurs. L’intégration avec des RTOS industriels (VxWorks de Wind River) renforce la crédibilité de ROS 2 pour les applications critiques.

Polydesk.ai — Footer