Comment construisez-vous un robot ROS?
Pour que le système fonctionne bien et pour que vous puissiez suivre ce que l'appareil fera dans certaines situations, vous avez besoin de définitions standard pour chaque partie. En ROS, ces composants sont des nœuds, des services et des sujets. En bref, vous créez un nœud pour chaque besoin majeur. Par exemple, le mouvement est un nœud, la vision est un autre nœud et la planification est un troisième nœud. Les nœuds contiennent des services qui peuvent envoyer des informations à d'autres nœuds, et les services peuvent également traiter les demandes et les réponses. Un sujet peut diffuser des valeurs à de nombreux autres nœuds. Adapter ces termes et comment les utiliser est la première clé pour maîtriser le développement ROS2.
Imiter la navigation avec Turtlesim
Lorsque vous commencez à ROS, vous achèterez probablement un robot qui se promène ou se déroule dans votre maison. Pour ce faire, le robot doit avoir une vue de la zone où elle navigue. Pour ce faire, vous pouvez utiliser une application de type carte pour tester le comportement de votre robot. Les concepteurs derrière le Turtlebot ont proposé une application, appelée Turtlesim, qui peut le faire pour vous. Comme pour toutes les autres parties de ROS2, vous pouvez démarrer ces outils avec une sous-commande de la ligne de commande. Vous avez ensuite des activités pour différentes fonctions. La première partie consiste à démarrer la fenêtre où vous pouvez voir la simulation, et cela s'appelle un nœud.
$ ros2 Run Turtlesim Turtlesimnode
Une fenêtre apparaîtra avec une tortue au centre. Pour contrôler la tortue avec votre clavier, vous devez exécuter une deuxième commande qui reste ouverte et continuez d'appuyer sur certaines touches. Ceci est un deuxième nœud qui communique avec le premier.
$ ROS2 Run Turtlesim Turtleteleopkey
Maintenant, vous pouvez déplacer la tortue et voir comment elle bouge. Vous pouvez également obtenir des erreurs, comme frapper le mur. Ces erreurs apparaissent dans le terminal où la turtlesimnode fonctionne. C'est l'utilisation la plus simple du module de simulation. Vous pouvez également courir des formes, un carré est fourni et ajouter plus de tortues. Pour ajouter plus de tortues, vous pouvez utiliser la commande RQT.
Définir les services avec RQT
Le programme RQT fournit des services pour la simulation. Le Q signifie Qt, qui est pour gérer l'interface. Dans cet exemple, vous engendrez une nouvelle tortue.
$ rqt
L'interface RQT est une longue liste de services pour la simulation que vous exécutez. Pour créer une nouvelle tortue, choisissez le menu déroulant 'Spawn', donnez un nouveau nom à la tortue et cliquez sur 'Appeler.'Vous verrez immédiatement une nouvelle tortue à côté du premier. Si vous cliquez sur le menu déroulant «Spawn», vous verrez également un nouveau groupe d'entrées liées à la tortue nouvellement créditée.
Vous pouvez également remapter les commandes pour exécuter la nouvelle tortue. La commande pour le faire est la suivante:
$ ROS2 Run Turtlesim Turtleteleopkey -ROS-Args -remap Turtle1 / Cmdvel: = Turtle2 / Cmdvel
Définissez le nom «Turtle2», selon votre choix précédent.
Visualisation avancée avec RViz
Pour une visualisation plus avancée et 3D, utilisez RVIZ. Ce package simule tous les nœuds de votre conception.
$ ros2 run rviz2 rviz2
Dans l'interface graphique, vous avez trois panneaux, avec la vue au centre. Vous pouvez créer des environnements à l'aide du panneau «Affichages». Vous pouvez ajouter des murs, des forces de vent et d'autres propriétés physiques. C'est aussi là que vous ajoutez vos robots.
Sachez qu'avant d'arriver à ce point, vous devrez comprendre comment utiliser le format URDF. Le format URDF définit un robot, vous permettant de régler le corps, les bras, les jambes et, surtout, les zones de collision. Les zones de collision sont là afin que la simulation puisse décider si le robot est entré en collision.
Apprendre à créer un robot au format URDF est un grand projet, alors utilisez un code open-source existant pour expérimenter les émulateurs.
Simuler la physique avec un gazebo
Dans Gazebo, vous pouvez simuler la physique de l'environnement entourant votre robot. Gazebo est un programme de complément qui fonctionne bien avec RViz. Avec Gazebo, vous pouvez voir ce qui se passe réellement; Avec Rviz, vous gardez une trace de ce que le robot détecte. Lorsque votre logiciel détecte un mur qui n'est pas là, Gazebo affichera vide et RViz montrera où dans votre code le mur a été créé.
Conclusion
La simulation de votre robot et de ses environnements est nécessaire pour trouver des insectes et fournir des améliorations nécessaires dans le fonctionnement de votre robot avant de le mettre dans la nature. Il s'agit d'un processus fastidieux qui continue longtemps après avoir commencé à tester le bot, dans les deux environnements contrôlés et la vie réelle. Avec une connaissance adéquate de l'infrastructure des systèmes internes de votre robot, vous pouvez donner un sens à ce que vous avez bien fait et mal fait. Apprenez rapidement à apprécier tous les défauts que vous trouvez, car ils peuvent rendre votre système plus robuste à long terme.