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 (rviz:=true)

world

les robots 1 à 4, le lidar du robot 1, les repères

la cartographie

ratbot_N/map

en plus : la carte en construction

la navigation, l’exploration

map

la carte chargée, la position estimée du robot, le chemin planifié, les zones d’obstacles ; outils de pose et de but

./scripts/ratbot rviz N

ratbot_N/odom

le robot N seul : son modèle et son lidar ; sans carte

le modèle seul (display.launch.py)

base_footprint

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).