Utiliser turtlesim
et rqt
Objectif : Installez et utilisez le package turtlesim et les outils rqt pour vous préparer aux prochains didacticiels.
Niveau du tutoriel : Débutant
Durée : 15 minutes
Contenu
Arrière-plan
Turtlesim est un simulateur léger pour apprendre ROS 2. Il illustre ce que fait ROS 2 au niveau le plus élémentaire, pour vous donner une idée de ce que vous ferez plus tard avec un vrai robot ou une simulation de robot.
rqt est un outil graphique pour ROS 2. Tout ce qui est fait dans rqt peut être fait sur la ligne de commande, mais il offre un moyen plus simple et plus convivial de manipuler les éléments ROS 2.
Ce didacticiel aborde les concepts de base de ROS 2, comme la séparation des nœuds, des sujets et des services. Tous ces concepts seront développés dans des tutoriels ultérieurs ; pour l’instant, vous allez simplement configurer les outils et vous en faire une idée.
Conditions préalables
Le didacticiel précédent, Configuration de l’environnement, vous montrera comment configurer votre environnement.
Tâches
1 Installer tortuesim
Comme toujours, commencez par rechercher vos fichiers d’installation dans un nouveau terminal, comme décrit dans le tutoriel précédent.
Installez le package turtlesim pour votre distribution ROS 2 :
sudo apt update
sudo apt install ros-rolling-turtlesim
Tant que l’archive à partir de laquelle vous avez installé ROS 2 contient le référentiel ros_tutorials
, vous devriez déjà avoir installé turtlesim.
Tant que l’archive à partir de laquelle vous avez installé ROS 2 contient le référentiel ros_tutorials
, vous devriez déjà avoir installé turtlesim.
Vérifiez que le package installé :
ros2 pkg executables turtlesim
La commande ci-dessus devrait renvoyer une liste des exécutables de turtlesim :
turtlesim draw_square
turtlesim mimic
turtlesim turtle_teleop_key
turtlesim turtlesim_node
2 Démarrer tortuesim
Pour démarrer turtlesim, saisissez la commande suivante dans votre terminal :
ros2 run turtlesim turtlesim_node
La fenêtre du simulateur devrait apparaître, avec une tortue aléatoire au centre.

Dans le terminal sous la commande, vous verrez les messages du nœud :
[INFO] [turtlesim]: Starting turtlesim with node name /turtlesim
[INFO] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
Ici, vous pouvez voir que le nom de votre tortue par défaut est turtle1
, et les coordonnées par défaut où elle apparaît.
3 Utiliser tortuesim
Ouvrez un nouveau terminal et sourcez à nouveau ROS 2.
Vous allez maintenant exécuter un nouveau nœud pour contrôler la tortue dans le premier nœud :
ros2 run turtlesim turtle_teleop_key
À ce stade, vous devriez avoir trois fenêtres ouvertes : un terminal exécutant turtlesim_node
, un terminal exécutant turtle_teleop_key
et la fenêtre turtlesim. Disposez ces fenêtres de manière à voir la fenêtre de turtlesim, mais activez également le terminal exécutant turtle_teleop_key
afin que vous puissiez contrôler la tortue dans turtlesim.
Utilisez les touches fléchées de votre clavier pour contrôler la tortue. Il se déplacera sur l’écran, en utilisant son « stylo » attaché pour tracer le chemin qu’il a suivi jusqu’à présent.
Note
Si vous appuyez sur une touche fléchée, la tortue ne se déplacera que sur une courte distance, puis s’arrêtera. En effet, de manière réaliste, vous ne voudriez pas qu’un robot continue à exécuter une instruction si, par exemple, l’opérateur perdait la connexion avec le robot.
Vous pouvez voir les nœuds et leurs services, sujets et actions associés à l’aide de la commande list
:
ros2 node list
ros2 topic list
ros2 service list
ros2 action list
Vous en apprendrez plus sur ces concepts dans les prochains tutoriels. Étant donné que le but de ce didacticiel est uniquement d’obtenir un aperçu général de turtlesim, nous utiliserons rqt (une interface utilisateur graphique pour ROS 2) pour examiner les services d’un peu plus près.
h Installer
Ouvrez un nouveau terminal pour installer rqt
et ses plugins :
sudo apt update
sudo apt install ~nros-rolling-rqt*
sudo apt update
sudo apt install ros-rolling-rqt*
L’archive standard pour l’installation de ROS 2 sur macOS contient rqt
et ses plugins, vous devriez donc déjà avoir installé rqt
.
L’archive standard pour l’installation de ROS 2 sur Windows contient rqt
et ses plugins, donc vous devriez déjà avoir rqt
installé.
Il fonctionne :
rqt
5 Ils économisent
Après avoir exécuté rqt la première fois, la fenêtre sera vide. Pas de soucis; sélectionnez simplement Plugins > Services > Service Caller dans la barre de menu en haut.
Note
Cela peut prendre un certain temps à rqt pour localiser tous les plugins lui-même. Si vous cliquez sur Plugins, mais ne voyez pas Services ou toute autre option, vous devez fermer rqt, entrez la commande rqt --force-discover
dans votre terminal.

Utilisez le bouton d’actualisation à gauche de la liste déroulante Service pour vous assurer que tous les services de votre nœud turtlesim sont disponibles.
Cliquez sur la liste déroulante Service pour voir les services de turtlesim, et sélectionnez le service /spawn
.
5.1 Essayez le service de spawn
Utilisons rqt pour appeler le service /spawn
. Vous pouvez deviner d’après son nom que /spawn
créera une autre tortue dans la fenêtre turtlesim.
Donnez à la nouvelle tortue un nom unique, comme turtle2
en double-cliquant entre les guillemets simples vides dans la colonne Expression. Vous pouvez voir que cette expression correspond à la valeur name et est de type string.
Entrez de nouvelles coordonnées pour que la tortue apparaisse, comme x = 1.0
et y = 1.0
.

Note
Si vous essayez de faire apparaître une nouvelle tortue avec le même nom qu’une tortue existante, comme votre turtle1
par défaut, vous obtiendrez un message d’erreur dans le terminal exécutant turtlesim_node
:
[ERROR] [turtlesim]: A turtle named [turtle1] already exists
Pour faire apparaître turtle2, vous devez appeler le service en cliquant sur le bouton Appeler en haut à droite de la fenêtre rqt.
Vous verrez une nouvelle tortue (encore une fois avec un design aléatoire) apparaître aux coordonnées que vous avez saisies pour x et y.
Si vous actualisez la liste des services dans rqt, vous verrez également qu’il existe désormais des services liés à la nouvelle tortue, /turtle2/…
, en plus de /turtle1/…
.
5.2 Essayez le service set_pen
Donnons maintenant à turtle1 un stylet unique en utilisant le service /set_pen
:

Les valeurs de r, g et b, entre 0 et 255, définiront la couleur de la plume que la tortue1 dessine, et width définit l’épaisseur de la ligne.
Pour que turtle1 dessine avec une ligne rouge distincte, changez la valeur de r à 255 et la valeur de width à 5. N’oubliez pas d’appeler le service après avoir mis à jour les valeurs.
Si vous revenez au terminal où turtle_teleop_key
est en cours d’exécution et appuyez sur les touches fléchées, vous verrez que le stylo de turtle1 a changé.

Vous avez probablement remarqué qu’il n’y a aucun moyen de déplacer turtle2. Vous pouvez accomplir cela en remappant le sujet cmd_vel
de turtle1 sur turtle2.
6 Remappage
Dans un nouveau terminal, sourcez ROS 2 et exécutez :
ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel
Vous pouvez maintenant déplacer la tortue2 lorsque ce terminal est actif, et la tortue1 lorsque l’autre terminal exécutant la turtle_teleop_key
est actif.

7 Fermer tortuesim
Pour arrêter la simulation, vous pouvez entrer Ctrl + C
dans le terminal turtlesim_node
, et q
dans le terminal teleop.
Prochaines étapes
Maintenant que turtlesim et rqt sont opérationnels et que vous avez une idée de leur fonctionnement, plongeons-nous dans le premier concept de base de ROS 2 avec le prochain tutoriel, ../Understanding-ROS2-Nodes/Understanding-ROS2 -Nœuds.