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

Per un primo esperimento con Nav2, separare la mappatura dalla navigazione su una mappa salvata utilizzando la simulazione ufficiale di TurtleBot. Questa procedura segue la documentazione di Jazzy verificata il 7 settembre 2026. Gazebo non è stato eseguito nell'ambiente di scrittura.

Registrazione dell'ambiente

Utilizzare Ubuntu 24.04 con interfaccia grafica, ROS 2 Jazzy e il suo ambiente Gazebo compatibile. Con ROS 2 già installato, preparare i pacchetti seguendo la Guida rapida di Nav2. Non utilizzare le istruzioni di Gazebo Classic dell'era Humble in questa configurazione.

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

Salvare le versioni installate e verificare gli argomenti slam , map e use_sim_time con il codice sorgente di avvio di Jazzy.

Avvia la modalità di mappatura

Diagram 1 · Use the button to switch views
Connetti Gazebo, SLAM Toolbox e Nav2, salva la mappa, quindi riavvia con AMCL

Utilizza un ambiente ROS dedicato senza robot fisici. L'ID di dominio riportato di seguito è un esempio; verifica che nessun robot reale lo condivida. Utilizza la stessa configurazione in ogni nuovo terminale.

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

Nella procedura SLAM ufficiale, SLAM fornisce /map e map → odom . Non aggiungere AMCL come secondo publisher di questa trasformazione durante la mappatura.

Prova gli obiettivi vicini

In un altro terminale, carica l'ambiente e imposta export ROS_DOMAIN_ID=73 , quindi ispeziona le interfacce.

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

Verifica che la mappa, LaserScan e la posa del robot siano coerenti in RViz. Imposta un obiettivo Nav2 in uno spazio libero vicino e visibile, quindi muoviti verso l'area successiva. Un obiettivo situato in profondità in uno spazio sconosciuto può causare un errore di pianificazione anche se SLAM funziona correttamente.

Salva la mappa e riavvia

Da un altro terminale con lo stesso ambiente, salva in una nuova directory di lavoro. Scegli un nome file che non sovrascriva una mappa di cui hai bisogno.

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

Mantieni sia map.yaml che l'immagine di riferimento. Interrompi l'avvio originale con Ctrl+C e attendi lo spegnimento. Dalla directory nav2-map-lab, riavvia con la mappa salvata.

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

Usa la funzione di stima della posizione 2D di RViz per impostare la posizione e la direzione simulate correnti del robot. Richiedi un obiettivo vicino e verifica sia la generazione del percorso che l'arrivo. La localizzazione tramite mappa salvata ha uno scopo diverso dall'aggiornamento di una mappa con SLAM.

Diagnostica i guasti per interfaccia

Sintomo Primo controllo
Robot o mondo mancanti Log del simulatore e modelli installati
Mappa mancante /scan , nodo SLAM e orologio di simulazione
TF mancante Dominio condiviso, timestamp e nomi dei frame
Mappa salvata non allineata Riferimento immagine YAML e posa iniziale
Nessun percorso Obiettivo di spazio libero noto e spazio libero per l'impronta del robot

Conservare versioni, comandi, mappe e log di successo o fallimento in ogni fase. Il record di implementazione di newbot include LiDAR 3D e una diversa sorgente di odometria; identificare ogni modifica rispetto a questa configurazione minima durante la lettura.

Related reading

Evaluate accuracy after bringupCome valutare SLAM: ATE, RPE, tempo di esecuzione e guastiExplore another aspect of this fieldPerché ICP fallisce: inizializzazione, valori anomali e geometria simmetricaExplore another aspect of this fieldTrasformazioni di coordinate robotiche: matrici, quaternioni e TF