一、准备工作(环境搭建)
1. 安装 ROS 2 Humble
Ubuntu 22.04 上支持 ROS 2 Humble 的二进制安装,先安装基础环境并更新系统(参考 ROS 官方说明)
sudo apt update
sudo apt install ros-humble-desktop
确保环境变量在 shell 中自动加载:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
二、安装必要导航与 SLAM 软件包
在安装完成 ROS2 Humble 后,继续安装导航系统和 SLAM 工具:
sudo apt update
sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup
sudo apt install ros-humble-slam-toolbox


上述命令会安装:
-
Navigation2(Nav2) --- ROS2 主流导航栈
-
slam_toolbox --- 实时 2D SLAM 建图工具
三、准备机器人模型(以 TurtleBot3 为例)
使用仿真结构(Gazebo),推荐安装 TurtleBot3:
sudo apt install ros-humble-turtlebot3*

并设置机器人模型:
echo "export TURTLEBOT3_MODEL=waffle" >> ~/.bashrc
source ~/.bashrc

四、SLAM 建图
1) 启动机器人仿真(Gazebo)
在一个终端中启动机器人仿真:
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py


此命令会启动 Gazebo、机器人模型,以及相关传感器仿真。
2) 启动 SLAM 工具
在另一个终端里运行 slam_toolbox 来实时建图:
ros2 launch slam_toolbox online_sync_launch.py

这个节点将处理传入的 /scan 激光数据,增量生成地图(Occupancy Grid)。
3) 在 RViz2 可视化地图
在另一个终端启动 RViz2:
rviz2

在 RViz 中:
-
选择 Fixed Frame 为 map
-
显示 LaserScan 映射(/scan)
-
显示 OccupancyGrid(地图)
-
使用 2D Pose Estimate 估计机器人初始位姿
这样你可以看到实时的地图在生成。

五、保存生成的地图
当你完成地图生成并且满意时,可以保存地图文件(包括 .pgm 和 .yaml):
ros2 run nav2_map_server map_saver_cli -f ~/my_map

运行后,在你的主目录下会得到:
my_map.pgm
my_map.yaml

地图被保存后可用于后续导航定位。
六、启动导航(定位 + 自动导航)
1) 启动 Nav2 导航节点并加载地图
ros2 launch nav2_bringup navigation_launch.py map:=~/my_map.yaml


该启动文件会启动:
-
AMCL 定位节点
-
全局/局部规划
-
生成速度控制指令
2) 在 RViz2 中发送目标导航命令
在 RViz2 中:
-
使用 2D Pose Estimate(初始定位)
-
使用 2D Nav Goal(目标位置)
-

此时 Nav2 会自动规划路径并发布 /cmd_vel,机器人将自动导航到指定目标位置。
七、总结流程图
