Visualiser dans RViz ==================== **S'applique à :** :bdg-info-line:`Simulation` :bdg-warning-line:`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. .. list-table:: :header-rows: 1 :widths: 30 22 48 * - 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. .. Capture d'écran à insérer : RViz en navigation, avec les éléments numérotés (carte, robot, chemin, zones d'obstacles). Déposez _static/rviz/rviz-navigation-annotee.png puis décommentez le bloc ci-dessous (retirez le préfixe « .. ») : .. .. image:: _static/rviz/rviz-navigation-annotee.png .. :align: center .. :width: 90% Où le lancer ------------ .. tab-set:: :sync-group: env .. tab-item:: Simulation :sync: sim 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 :doc:`simulation`). .. tab-item:: Robot réel :sync: reel 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 :doc:`carte` et :doc:`navigation`). Pour simplement **regarder** un robot qui tourne, sans cartographie ni navigation, depuis la racine du dépôt : .. code-block:: bash ./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 :doc:`navigation`. 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 :doc:`docker`). Sur le robot réel : montage du lidar à vérifier (voir :doc:`lidar`).