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

Für ein erstes Nav2-Experiment trennen Sie Kartierung und Navigation auf einer gespeicherten Karte mithilfe der offiziellen TurtleBot-Simulation. Diese Vorgehensweise folgt der Jazzy-Dokumentation (Stand: 7. September 2026). Gazebo wurde in der Testumgebung nicht ausgeführt.

Umgebung einrichten

Verwenden Sie Ubuntu 24.04 mit grafischer Benutzeroberfläche, ROS 2 Jazzy und die kompatible Gazebo-Umgebung. ROS 2 ist bereits installiert. Bereiten Sie die Pakete gemäß der Nav2-Schnellstartanleitung vor. Verwenden Sie keine Anweisungen für Gazebo Classic aus der Humble-Ära.

Speichern Sie die installierten Versionen und überprüfen Sie die Argumente slam, map und use_sim_time anhand der Jazzy-Startquelle.

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

Kartierungsmodus starten

Diagram 1 · Use the button to switch views
Gazebo, SLAM Toolbox und Nav2 verbinden, Karte speichern und anschließend mit AMCL neu starten

Verwenden Sie eine dedizierte ROS-Umgebung ohne physische Roboter. Die unten angegebene Domänen-ID ist ein Beispiel; stellen Sie sicher, dass kein realer Roboter diese verwendet. Verwenden Sie in jedem neuen Terminal dieselbe Konfiguration.

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

Im offiziellen SLAM-Verfahren stellt SLAM /map und map → odom bereit. Fügen Sie AMCL während der Kartierung nicht als zweiten Publisher dieser Transformation hinzu.

Ziele in der Nähe testen

In einem anderen Terminal die Umgebung laden und export ROS_DOMAIN_ID=73 festlegen. Überprüfen Sie anschließend die Schnittstellen.

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

Überprüfen Sie, ob Karte, LaserScan und Roboterposition in RViz übereinstimmen. Setzen Sie ein Nav2-Ziel im nahegelegenen, beobachteten freien Raum und bewegen Sie sich dann zum nächsten Bereich. Ein Ziel tief im unbekannten Raum kann die Planung beeinträchtigen, selbst wenn SLAM korrekt funktioniert.

Karte speichern und neu starten

Speichern Sie die Karte in einem anderen Terminal mit derselben Umgebung in einem neuen Arbeitsverzeichnis. Wählen Sie einen Dateinamen, der keine benötigte Karte überschreibt.

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

Behalten Sie sowohl map.yaml als auch das zugehörige Bild. Beenden Sie den ursprünglichen Start mit Strg+C und warten Sie, bis das System heruntergefahren ist. Starten Sie das System aus dem Verzeichnis nav2-map-lab mit der gespeicherten Karte neu.

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

Verwenden Sie die 2D-Positionsbestimmung von RViz, um die aktuelle simulierte Position und Richtung des Roboters festzulegen. Fordern Sie ein nahegelegenes Ziel an und überprüfen Sie sowohl die Pfadgenerierung als auch die Ankunft. Die Lokalisierung anhand gespeicherter Karten dient einem anderen Zweck als die Aktualisierung einer Karte mit SLAM.

Fehlerdiagnose über die Schnittstelle

Symptom Erste Überprüfung
Fehlender Roboter oder fehlende Welt Simulatorprotokolle und installierte Modelle
Fehlende Karte /scan, SLAM-Knoten und Simulationsuhr
Fehlendes TF Gemeinsame Domäne, Zeitstempel und Frame-Namen
Falsch ausgerichtete gespeicherte Karte YAML-Bildreferenz und Ausgangsposition
Kein Pfad Bekanntes Freiraumziel und Roboter-Fußabdruckabstand

Speichern Sie Versionen, Befehle, Karten und Erfolgs-/Fehlerprotokolle in jeder Phase. Der newbot-Implementierungsdatensatz enthält 3D-LiDAR und eine andere Odometriequelle; identifizieren Sie jede Änderung gegenüber dieser minimalen Konfiguration beim Lesen.

Related reading

Evaluate accuracy after bringupWie man SLAM bewertet – ATE, RPE, Laufzeit und FehlerExplore another aspect of this fieldWarum ICP fehlschlägt: Initialisierung, Ausreißer und symmetrische GeometrieExplore another aspect of this fieldRoboterkoordinatentransformationen: Matrizen, Quaternionen und TF