Visualiser dans RViz
S’applique à : Simulation Robot réel
RViz est le visualiseur de ROS 2. Il ne simule rien et ne commande rien : il affiche ce que le robot perçoit et ce qu’il estime — sa position, les mesures du lidar, la carte en construction, le chemin qu’il compte suivre. C’est l’outil principal pour comprendre ce que fait le robot, et pour lui donner des buts de navigation.
En simulation, comparer RViz à Gazebo est instructif : Gazebo montre où le robot est, RViz où il croit être. Un écart entre les deux est une erreur de localisation.
Les configurations fournies
RViz n’est pas lancé à la main : chaque commande l’ouvre avec une configuration adaptée, qui choisit les affichages et le repère de référence.
Ouvert par |
Repère de référence |
Contenu |
|---|---|---|
la simulation ( |
|
les robots 1 à 4, le lidar du robot 1, les repères |
la cartographie |
|
en plus : la carte en construction |
la navigation, l’exploration |
|
la carte chargée, la position estimée du robot, le chemin planifié, les zones d’obstacles ; outils de pose et de but |
|
|
le robot |
le modèle seul ( |
|
le modèle 3D du robot, sans simulation |
La cartographie, la navigation et l’exploration acceptent l’option
rviz:=false, qui les lance sans RViz : utile sur une machine sans écran.
Où le lancer
RViz s’ouvre sur la même machine que la simulation, avec
./scripts/ratbot up rviz:=true, puis avec la cartographie ou la
navigation. Pour voir les robots dès le lancement, la simulation doit
garder sa vérité terrain (voir La simulation en détail).
RViz s’ouvre sur le PC, jamais sur le Raspberry Pi du robot, qui n’a
pas d’écran. Les commandes ./scripts/ratbot slam et
./scripts/ratbot nav l’ouvrent d’elles-mêmes (voir Faire une carte et
Navigation autonome).
Pour simplement regarder un robot qui tourne, sans cartographie ni navigation, depuis la racine du dépôt :
./scripts/ratbot rviz 1
La commande vérifie que le robot répond, puis ouvre RViz centré sur son
odométrie (ratbot_1/odom) : le modèle du robot et son lidar, sans carte.
Elle convient au robot réel comme à la simulation.
Elle ne montre que ce robot. L’affichage TF, décoché, dessine au besoin
tous les repères reçus, ceux des autres robots compris. La vue de tous les
robots ensemble est celle de la simulation (rviz:=true).
Les outils de la barre du haut
En navigation, deux outils servent à donner des ordres au robot :
- 2D Pose Estimate
Indique au robot où il se trouve. Cliquer sur sa position réelle, puis faire glisser dans la direction de son avant. Sert quand la localisation s’est trompée, ou au démarrage, si le robot n’est pas à l’origine de la carte.
- 2D Goal Pose
Donne au robot un but : cliquer sur le point d’arrivée, puis faire glisser pour l’orientation finale. Voir Navigation autonome.
Les autres outils servent à la vue : clic gauche glissé pour tourner, molette pour zoomer, clic du milieu (ou Maj + clic gauche) pour déplacer.
Un RViz par robot
La cartographie, la navigation, l’exploration et ./scripts/ratbot rviz N
ouvrent RViz pour le robot choisi : ./scripts/ratbot slam 2 montre le
robot 2, son lidar et sa carte.
Avec plusieurs robots, chacun a sa fenêtre ; son numéro figure dans la barre
de titre (ratbot_2_slam.rviz).
La configuration de la simulation (rviz:=true), elle, montre tous les
robots à la fois.
En cas de souci
- « No transform from … » ou robot absent de l’affichage
Le repère de référence n’existe pas, ou pas encore : la cartographie ou la localisation n’ont pas démarré, ou le numéro du robot ne correspond pas. Vérifier le champ Fixed Frame.
- Carte grise, « No map received »
La cartographie ou le serveur de carte ne tournent pas, ou n’ont pas encore publié. Attendre quelques secondes après le lancement.
- Les points du lidar ne tombent pas sur les murs
En simulation : accès à la carte graphique manquant dans le conteneur (voir Environnement Docker). Sur le robot réel : montage du lidar à vérifier (voir Le lidar).