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

首次进行 Nav2 实验时,请使用官方 TurtleBot 仿真在已保存的地图上将地图构建与导航分离。此步骤遵循 2026 年 9 月 7 日查阅的 Jazzy 文档。编写此文档时未运行 Gazebo。

记录环境

使用带有图形用户界面的 Ubuntu 24.04,以及 ROS 2 Jazzy 及其兼容的 Gazebo 环境。在 ROS 2 已安装的情况下,请按照 Nav2 快速入门 准备软件包。请勿将 Humble 时代的 Gazebo Classic 的说明混入此设置中。

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

保存已安装的版本,并根据 Jazzy 启动源代码 验证 slam 、map 和 use_sim_time 参数。

启动地图构建模式

Diagram 1 · Use the button to switch views
连接 Gazebo、SLAM Toolbox 和 Nav2,保存地图,然后使用 AMCL 重启

使用一个专用的 ROS 环境,不连接任何物理机器人。以下域 ID 仅为示例;请确认没有实际机器人共享此域。在每个新终端中使用相同的设置。

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

在官方 SLAM 流程 中,SLAM 提供 /map 和 map → odom。在地图构建过程中,请勿将 AMCL 添加为该变换的第二个发布者。

尝试附近的目标

在另一个终端中,加载环境并设置 export ROS_DOMAIN_ID=73,然后检查接口。

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

在 RViz 中检查地图、激光扫描和机器人位姿是否一致。在附近已观测到的自由空间中设置 Nav2 目标,然后向下一个区域移动。即使 SLAM 工作正常,位于未知空间深处的目标也可能导致规划失败。

保存地图并重启

在另一个具有相同环境的终端中,将地图保存到新的工作目录。选择一个不会覆盖所需地图的文件名。

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

保留 map.yaml 及其引用的图像。使用 Ctrl+C 停止初始启动并等待关机。从 nav2-map-lab 目录,使用已保存的地图重启。

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

使用 RViz 的 2D 位姿估计功能设置机器人的当前模拟位置和航向。请求一个附近的目标,并检查路径生成和到达情况。保存地图的定位与使用 SLAM 更新地图的目的不同。

通过界面诊断故障

症状 初步检查
缺少机器人或世界 仿真器日志和已安装模型
缺少地图 /scan、SLAM 节点和仿真时钟
缺少 TF 共享域、时间戳和帧名称
保存的地图未对齐 YAML 图像参考和初始位姿
无路径 已知自由空间目标和机器人占地面积

请在每个阶段保留版本、命令、地图以及成功或失败日志。newbot 实现记录 包含 3D LiDAR 和不同的里程计源;请在阅读时识别与此最小设置相比的每处更改。

Related reading

Evaluate accuracy after bringup如何评估SLAM——ATE、RPE、运行时间和故障Explore another aspect of this fieldICP 失败的原因:初始化、异常值和对称几何Explore another aspect of this field机器人坐标变换:矩阵、四元数和TF