Comment planifier un simple robot à l'aide de Linux

Comment planifier un simple robot à l'aide de Linux
Une fois que vous avez installé des ROS, vous voudrez peut-être construire un robot. Une bonne façon de réussir dans ce projet est de planifier ce que vous voulez faire. Dans ce cas, Ros vient à la rescousse. Avec ROS, vous pouvez configurer ce que vous avez construit et visualiser le tout. Lorsque vous travaillez avec des robots, il y aura de nombreux scénarios que vous devrez peut-être considérer. Le robot doit interagir avec l'environnement, comme éviter le canapé et retrouver son chemin de la cuisine. Le robot doit également avoir des bras et des jambes si vos besoins en ont besoin. Vous pouvez simuler tout cela à l'aide de ROS, et pour la partie codante, vous pouvez également simuler les internes de votre système.

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.