Introduction


ROS (Robot Operating System) fournit des bibliothèques et des outils pour aider les développeurs de logiciels à créer des applications robotiques. Il fournit une abstraction matérielle, des pilotes de périphériques, les bibliothèques, les visualiseurs, le passage de messages, la gestion des paquets, et plus encore. ROS est sous licence open source.

ROS offre une architecture souple de communication inter-processus et inter-machine. Les processus ROS sont appelés des nœuds et chaque nœud peut communiquer avec d'autres via des topics. La connexion entre les nœud est gérée par un maître et suit le processus suivant :

  • Un premier nœud (Nœud 1)avertit le maître qu'il a une donnée à partager,
  • Un deuxième nœud (Nœud 1) avertit le master qu'il souhaite avoir accès à une donnée,
  • Une connexion entre les deux nœuds est créée,
  • Le premier nœud peut envoyer des données au second.

Un nœud qui publie des données est appelé un publisher et un nœud qui souscrit à des données est appelé un subscriber. Un nœud peut être à la fois publisher et subscriber. Les messages envoyés sur les topics sont pour la plupart standardisés ce qui rend le système extrêmement flexible.

ROS permet une communication inter-machine, des nœuds s'exécutant sur des machines distinctes, mais ayant connaissance du même maître peuvent communiquer de manière transparente pour l'utilisateur.


Les outils


  • Gazebo :

Gazebo est un outil de simulation bien conçu qui est directement intégré à ROS. Il permet de tester rapidement des algorithmes, de concevoir des robots, de réaliser des tests de régression et de former un système d'IA à l'aide de scénarios réalistes. Gazebo offre la possibilité de simuler avec précision et efficacité des populations de robots dans des environnements intérieurs et extérieurs complexes. À votre portée de main, vous trouverez un moteur physique robuste, des graphiques de haute qualité et des interfaces programmatiques et graphiques pratiques. Le meilleur de tous, Gazebo est gratuit avec une communauté dynamique.

  • Rviz:

Rviz (visualisation ROS) est un visualiseur 3D permettant d'afficher les données de capteur et les informations d'état à partir de ROS.

En utilisant rviz, vous pouvez visualiser la configuration actuelle de Pepper sur un modèle virtuel du robot. Vous pouvez également afficher des représentations en direct des valeurs de capteurs provenant de sujets ROS, notamment les données de la caméra, les mesures de distance infrarouge, les données du sonar, etc.

  • Rosbag:

Le paquet Rosbag fournit des outils pour écrire et lire des sacs de données qui peuvent contenir des topics et des nœuds enregistrés lors d’une manipulation sur le robot réel. On peut aussi enregistrer seulement les données des topics qu’on souhaite.

Une fois ce sac est enregistré, on l’utilisera pour simuler le robot sans qu’il soit sous tension.

Cette commande permet d’enregistrer tous les nœuds lancés :

 rosbag record -a 

Ou enregistrer seulement les topics 1, 2 et 3 par exemple :

 rosbag record topic1 topic2 topic3 
  • rqt_graph:

Une interface graphique permettant d’analyser le graphe d’applications et les transferts de données via les topics.



Gazebo-Pepper.png

ros1.png

Rviz-Pepper.png

frames.pdf

rqt_graph.png