Back | << | Index | >> |
Pour résumer ROS2 est une surcouche logicielle permettant de formaliser les échanges entre processeurs.
Des outils et des bibliothèques sont fournis afin de faciliter le développement d’applications robotiques.
L’utilisation de ROS2 dans notre application peut paraitre disproportionnée, on s’imposera néanmoins cette contrainte
afin d’étudier cette norme dans un contexte simple.
Les NODES sont des instances de programmes exécutées sur un même processeur ou des processeurs différents.
Ces NODES peuvent s’abonner à un TOPIC ( Subscribe ).
Lorsqu’un NODE envoie un message ( Publish ) à un TOPIC, tous les noeuds abonnés à ce topic reçoivent ce message.
Documentation :
https://docs.ros.org/en/humble/index.html
Robot Operating System, Olivier Stasse
Dans ce qui suit, la version humble de ROS2 a été utilisée.
Il est nécessaire, afin d’utiliser ROS2, de mettre à jour des variables d’environnement, en exécutant la commande :
Il est conseillé d’inclure cette commande dans le fichier ~/.bashrc afin de l’exécuter automatiquement à chaque ouverture d’un terminal :
ROS_DOMAIN_ID
L’identifiant ROS_DOMAIN_ID permet d’identifier le réseau sur lequel communiquent différents noeuds.
Cet identifiant doit être le même pour tous les éléments devant s’échanger des messages.
Chaque Robot a un numéro devant correspondre à ROS_DOMAIN_ID.
Pour mettre à jour la variable d’environnement ROS_DOMAIN_ID pour chaque ouverture du terminal, on peut enrgistrer la commande suiante dans le fichier ~/.bashrc :
La cohabitation de plusieurs versions de python peut entrainer une série de warnings voire d’erreurs.
conda permet de gérer des environnements de développement, et les packages associés.
A faire une fois seulement :
Ouvrir à nouveau un terminal :
Pour désactiver conda :
Pour utiliser systématiquement cette configuration pour tout nouveau shell, la commande conda activate E021_3_6 peut être ajoutée au fichier ~/.bashrc ( à enlever pour les autres enseignements )
REMARQUE : Le répertoire de téléchargement des paquets peut devenir volumineux, si nécessaire exécuter :
Au final, pour que toutes les variables soient définies à l’ouverture d’un terminal :
Terminal 1 :
On publie un message toutes les secondes dans un topic ‘boite’.
Les messages sont de type std_msgs/msg/String.
REMARQUE : laisser un espace entre datat: et Hello !.
Pour envoyer un seul message :
Terminal 2 :
On écoute les messages arrivant dans boite :
Back | << | Index | >> |