Qu’est-ce que ROS (Robot Operating System) ?
Introduction technique à ROS
ROS (Robot Operating System) est un environnement open source de développement logiciel pour la robotique. Son développement est aujourd’hui mené par l’Open Robotics. ROS est un méta-système d’exploitation standardisé qui apporte différentes fonctionnalités pour la robotique :
- l’abstraction de la couche « matériel » (hardware),
- le contrôle des périphériques de bas niveau,
- la mise en œuvre simplifiée de fonctionnalités couramment utilisées,
- la transmission de messages entre processus,
- la gestion de packages installés sous ROS.
Son utilisation
Chez INNOWTECH nous utilisons l’environnement ROS pour les systèmes robotiques nécessitant des mini-ordinateurs pour effectuer des tâches trop complexes pour des petits microcontrôleurs (compression vidéo, traitement d’image…). Il sera ainsi utiliser sur nos robots-capteurs.
Sa simplicité permet de développer rapidement des briques technologiques par la standardisation de tâches basiques grâce à l’utilisation des Nodes.
Les Nodes
Qu’est ce qu’un node ?
Un Node est un petit software exécutant une tâche (Ex : piloter des moteurs). Les nodes peuvent être programmés en C++ ou en Python et sont disponibles via des packages ROS regroupant différentes fonctions et librairies libres. La communication entre ces différents nodes s’effectue à l’aide d’un protocole « Publish/Suscribe ».
ROS Master
Les nodes communiquent entre eux grâce au « ROS Master » qui est le chef d’orchestre du système. Comme illustré sur la figure (1), la routine maître (« ROS Master ») gère la transmission des messages entre les nodes grâce à des topics dont le rôle est d’identifier les liaisons entre les nodes publishers et les nodes subscribers.
Conclusion
ROS permet donc d’intégrer rapidement des briques standards pour les fonctions génériques puis de développer nos propres packages pour des fonctions spécifiques de nos robots-capteurs.
