Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

Pour une première expérience Nav2, séparez la cartographie de la navigation sur une carte enregistrée à l'aide de la simulation officielle TurtleBot. Cette procédure suit la documentation Jazzy, consultée le 7 septembre 2026. Gazebo n'a pas été utilisé dans cet environnement.

Configuration de l'environnement

Utilisez Ubuntu 24.04 avec une interface graphique, ROS 2 Jazzy et son environnement Gazebo compatible. ROS 2 étant déjà installé, préparez les paquets en suivant le guide de démarrage rapide Nav2 (https://docs.nav2.org/jazzy/getting_started/quickstart/quickstart/). N'utilisez pas les instructions de Gazebo Classic (ancienne version) dans cette configuration.

source /opt/ros/jazzy/setup.bash
sudo apt update
sudo apt install ros-jazzy-navigation2 ros-jazzy-nav2-bringup ros-jazzy-slam-toolbox ros-jazzy-nav2-minimal-tb3-sim
dpkg-query -W ros-jazzy-navigation2 ros-jazzy-nav2-bringup ros-jazzy-slam-toolbox ros-jazzy-nav2-minimal-tb3-sim
ros2 launch nav2_bringup tb3_simulation_launch.py --show-args

Enregistrez les versions installées et vérifiez les arguments slam, map et use_sim_time par rapport au code source de lancement de Jazzy (https://raw.githubusercontent.com/ros-navigation/navigation2/jazzy/nav2_bringup/launch/tb3_simulation_launch.py).

Démarrer le mode cartographie

Diagram 1 · Use the button to switch views
Connectez Gazebo, SLAM Toolbox et Nav2, enregistrez la carte, puis redémarrez avec AMCL

Utilisez un environnement ROS dédié, sans robots physiques. L'ID de domaine ci-dessous est un exemple ; assurez-vous qu'aucun robot physique ne l'utilise. Utilisez la même configuration dans chaque nouveau terminal.

source /opt/ros/jazzy/setup.bash
export ROS_DOMAIN_ID=73
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=True headless:=False use_sim_time:=True

Dans la procédure SLAM officielle, SLAM fournit /map et map → odom. N'ajoutez pas AMCL comme second éditeur de cette transformation pendant la cartographie.

Essayer des objectifs proches

Dans un autre terminal, initialisez l'environnement et définissez export ROS_DOMAIN_ID=73, puis examinez les interfaces.

ros2 topic list
ros2 topic hz /scan
ros2 run tf2_ros tf2_echo map base_link

Vérifiez que la carte, le LaserScan et la pose du robot concordent dans RViz. Définissez un objectif Nav2 dans l'espace libre observé à proximité, puis déplacez-vous vers la zone suivante. Un objectif situé profondément dans un espace inconnu peut entraîner un échec de planification, même si le SLAM fonctionne correctement.

Sauvegarder la carte et redémarrer

Depuis un autre terminal avec le même environnement, enregistrez la carte dans un nouveau répertoire de travail. Choisissez un nom de fichier qui ne remplacera pas une carte dont vous avez besoin.

mkdir -p nav2-map-lab
cd nav2-map-lab
ros2 run nav2_map_server map_saver_cli -f map --ros-args -p use_sim_time:=true

Conservez map.yaml et son image référencée. Arrêtez le lancement initial avec Ctrl+C et attendez l'arrêt complet. Depuis le répertoire nav2-map-lab, redémarrez avec la carte sauvegardée.

ros2 launch nav2_bringup tb3_simulation_launch.py slam:=False map:="$PWD/map.yaml" headless:=False use_sim_time:=True

Utilisez l'estimation de pose 2D de RViz pour définir la position et le cap simulés actuels du robot. Demandez un objectif proche et vérifiez la génération de la trajectoire et l'arrivée. La localisation à partir d'une carte sauvegardée a une fonction différente de la mise à jour d'une carte avec le SLAM.

Diagnostiquer les échecs par interface

Symptôme Première vérification
Robot ou monde manquant Journaux du simulateur et modèles installés
Carte manquante /scan , nœud SLAM et horloge de simulation
TF manquant Domaine partagé, horodatages et noms d'images
Carte enregistrée mal alignée Référence d'image YAML et pose initiale
Aucun chemin Objectif en espace libre et dégagement de l'empreinte du robot connus

Conservez les versions, les commandes, les cartes et les journaux de réussite ou d'échec à chaque étape. Le document d'implémentation de newbot inclut un LiDAR 3D et une source d'odométrie différente ; identifiez chaque modification par rapport à cette configuration minimale lors de sa lecture.

Related reading

Evaluate accuracy after bringupComment évaluer le SLAM — ATE, RPE, temps d’exécution et défaillancesExplore another aspect of this fieldPourquoi ICP échoue : initialisation, valeurs aberrantes et géométrie symétriqueExplore another aspect of this fieldTransformations de coordonnées du robot : matrices, quaternions et TF