【ROS2】 Jazzy 实战 TurtleBot3 仿真与 SLAM 建图全流程指南(含避坑详解)

发布时间:2026/7/13 10:26:09
【ROS2】 Jazzy 实战 TurtleBot3 仿真与 SLAM 建图全流程指南(含避坑详解) 【ROS2】 Jazzy 实战 TurtleBot3 仿真与 SLAM 建图全流程指南含避坑详解 前言最近在折腾 ROS2 Jazzy (Ubuntu 24.04) 下的 TurtleBot3 仿真发现由于新版本变动较大很多旧教程已经失效。特别是在安装功能包和启动 SLAM 时很容易遇到“找不到包”或“KeyError”等报错。本文基于最新的ROS2 Jazzy环境整理了一套从下载依赖到 Gazebo 仿真、再到 Cartographer/Slam_toolbox 建图的完整实操流程并附带了常见报错的解决方案。️ 第一阶段环境准备与依赖安装1. 解决“无法定位软件包”的问题如果你在执行sudo apt install时报错E: 无法定位软件包 ros-jazzy-turtlebot3-slam说明你的 ROS2 软件源可能未正确配置或未更新。请先执行以下命令确保源是最新的sudoaptupdate如果依然报错请检查是否添加了 ROS2 Jazzy 的官方源针对 Ubuntu 24.04 Noblesudocurl-sSLhttps://raw.githubusercontent.com/ros/rosdistro/master/ros.key-o/usr/share/keyrings/ros-archive-keyring.gpgechodeb [arch$(dpkg --print-architecture)signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu$(lsb_release-cs)main|sudotee/etc/apt/sources.list.d/ros2.list/dev/nullsudoaptupdate2. 一键安装核心功能包确认源正常后执行以下命令安装 Gazebo 仿真、SLAM 算法库及导航包sudoaptinstallros-jazzy-turtlebot3-gazebo ros-jazzy-turtlebot3-slam ros-jazzy-turtlebot3-navigation2 ros-jazzy-turtlebot3-teleop ros-jazzy-slam-toolbox注意如果turtlebot3_slam依然提示找不到可能是该版本尚未完全发布可以尝试只安装ros-jazzy-turtlebot3-gazebo和ros-jazzy-slam-toolbox后续通过源码编译补充 SLAM 启动文件。3. 永久配置环境变量防坑关键为了避免每次打开终端都报KeyError: TURTLEBOT3_MODEL或模型加载失败请将配置写入.bashrcechoexport TURTLEBOT3_MODELburger~/.bashrcechoexport GAZEBO_MODEL_PATH\$GAZEBO_MODEL_PATH:/opt/ros/jazzy/share/turtlebot3_gazebo/models~/.bashrcsource~/.bashrc 第二阶段启动 Gazebo 仿真世界【终端 1】用于运行物理仿真环境。ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py现象Gazebo 窗口弹出显示 Burger 小车和带有障碍物的房间。作用提供激光雷达Lidar、里程计Odometry等传感器数据。⌨️ 第三阶段键盘控制与数据采集【终端 2】用于手动驾驶小车进行建图。ros2 run turtlebot3_teleop teleop_keyboard操作技巧w/x前进 / 后退a/d左转 / 右转s紧急停止建议在建图初期尽量让小车贴着墙壁走一圈这有助于算法更好地闭合回环。️ 第四阶段启动 SLAM 建图【终端 3】实时构建地图并可视化。这里推荐使用Slam Toolbox它是目前 ROS2 中维护最好、效果最稳定的 2D SLAM 方案。ros2 launch turtlebot3_slam turtlebot3_slam.launch.py slam_methods:slam_toolbox use_sim_time:true参数解释slam_methods:slam_toolbox指定使用 Slam Toolbox 算法也可以换成cartographer。use_sim_time:true非常重要必须开启否则节点时间戳与 Gazebo 仿真时间不同步会导致建图卡死或报错。此时系统会自动弹出一个 RViz2 窗口你应该能看到黑色的激光扫描线正在逐渐勾勒出房间的轮廓。 第五阶段保存地图当你在 RViz2 中看到完整的地图且没有重影后可以保存地图供后续导航使用。【终端 4】执行保存命令ros2 run nav2_map_server map_saver_cli-f~/my_map成功后你的主目录下会生成两个文件my_map.pgm地图图片文件。my_map.yaml地图配置文件包含分辨率、原点坐标等。 常见问题排查 (Troubleshooting)报错信息原因分析解决方案Package turtlebot3_slam not found未安装对应包或源未更新执行sudo apt update并重新安装ros-jazzy-turtlebot3-slam。KeyError: TURTLEBOT3_MODEL环境变量未设置执行export TURTLEBOT3_MODELburger并写入.bashrc。Gazebo 中模型全黑或消失模型路径错误检查GAZEBO_MODEL_PATH是否包含了/opt/ros/jazzy/share/turtlebot3_gazebo/models。SLAM 建图卡顿/不更新时间不同步启动 SLAM 时必须加use_sim_time:true。