SLAM建图案例
SLAM建图最常用的工具是slam_toolbox,以下案例展示了完整的建图流程。

  1. TurtleBot3 + Gazebo仿真建图
    这是一个入门级的经典案例,使用TurtleBot3机器人在Gazebo仿真环境中运行SLAM建图,通过Rviz2实时观察地图构建效果。
    环境配置(Ubuntu 22.04 + ROS2 Humble):
    bash

安装SLAM Toolbox和TurtleBot3

sudo apt install ros-humble-slam-toolbox
sudo apt install ros-humble-turtlebot3* ros-humble-gazebo-ros-pkgs

启动仿真环境

export TURTLEBOT3_MODEL=burger
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

启动SLAM建图(另一终端)

ros2 launch slam_toolbox online_sync_launch.py

启动Rviz2可视化(第三终端)

ros2 launch turtlebot3_bringup rviz2.launch.py
技术要点:
• SLAM-Toolbox支持online_sync(同步建图)和async(异步建图)两种模式
• 建图完成后可通过nav2_map_server的map_saver命令行保存地图文件(.pgm + .yaml)
2. 基于ARtag的导航系统(含SLAM静态地图)
该项目使用静态地图(预先通过SLAM构建)进行导航,结合AprilTag视觉标记实现目标位姿识别,适用于室内自主导航场景。
项目地址:Virgilczy/AutoNavigation on GitHub
结构要点:
text
my_robot_navigation2/
├── maps/ # 预存的地图文件(.pgm/.yaml)
├── param/ # Nav2参数配置
└── launch/ # Nav2启动入口


🤖 Navigation2自主导航案例
Navigation2是ROS2官方的导航框架,支持路径规划、避障、行为树等完整功能。

  1. PlanSys2巡逻导航示例
    这是官方示例项目,展示了如何结合PlanSys2(规划系统)与Navigation2实现机器人多目标巡逻功能。
    项目地址:plansys2/ros2_planning_system_examples
    bash

启动示例

ros2 launch plansys2_patrol_navigation_example patrol_example_launch.py

启动巡逻控制节点(另一终端)

ros2 run plansys2_patrol_navigation_example patrolling_controller_node
核心逻辑:通过PDDL定义巡逻目标和状态机,调用Nav2 API执行点到点导航。
2. Unitree-Go2四足机器人SLAM+Nav2
该项目在Unitree-Go2四足机器人上实现了RTAB-Map(基于图优化的SLAM) 与Nav2导航集成,传感器融合了RGB-D深度相机和激光雷达点云。
项目地址:h-naderi/unitree-go2-slam-nav2
关键特性:
• 室内外环境实时建图
• Nav2避障与自主路径规划
• 人脸识别(导航过程中识别目标人员)


MoveIt2机械臂控制案例
MoveIt2是ROS2中机械臂运动规划的标准框架。以下案例涵盖从仿真到实物的完整控制链路。

  1. 六自由度机械臂仿真控制(保姆级教程)
    这是一个面向初学者的完整教程项目,包含URDF建模、MoveIt配置、FakeSystem仿真控制的全流程。
    项目地址:Rachel-eee/ros2-moveit2-arm-control-tutorial on GitHub
    bash

克隆并编译

cd ~/ros2_ws/src
git clone https://github.com/Rachel-eee/ros2-moveit2-arm-control-tutorial.git
cd ~/ros2_ws && colcon build

启动仿真(RViz + 虚拟控制器)

ros2 launch my_robot_bringup my_robot.launch.xml

启动Commander节点(发送目标位姿)

ros2 run my_robot_commander_cpp commander_template
控制链路:MoveIt2 → ros2_control控制器 → FakeSystem仿真硬件 → /joint_states → RViz可视化
2. UR5e动态抓取系统(深度感知+OctoMap避障)
这是一个较高级的项目,集成了深度相机感知、OctoMap动态环境建图和MoveIt2避障规划,实现了UR5e机械臂在动态环境中的自主抓取。
项目地址:Nackustb/ros2_moveit2_ur5e_grasp on GitHub
核心技术栈:
• 感知模块(vision):RealSense深度相机,目标物体3D定位
• 建图模块(octo_bringup):OctoMap实时生成环境三维占据栅格地图
• MoveIt配置(ur5e_octomap_moveit):集成OctoMap进行动态避障路径规划
• Docker容器化部署:快速复现实验环境
功能包结构:
text
ur_bringup/ # UR5e启动与驱动
vision/ # 目标检测与3D定位
octo_bringup/ # OctoMap建图
ur5e_octomap_moveit/ # MoveIt避障规划配置
ur5e_gripper_control/# 夹爪控制
3. 人形机器人集成项目(Nav2 + MoveIt2 + SLAM)
这是一个综合项目,将SLAM建图、Nav2导航和MoveIt2机械臂控制集成到同一台人形机器人上。
项目地址:The-Kriz/Project_Eva_Humanoid_Robot on GitHub
项目亮点:
• 自定义驱动运动学:针对非标准轮式底盘编写了project_eva_drive节点,将cmd_vel转换为各轮电机指令
• Micro-ROS嵌入式固件:机械臂由运行Micro-ROS的微控制器控制,通过串口桥接MoveIt2的关节指令
• 传感器融合:RPLidar A2、RealSense深度相机、BNO055 IMU用于导航定位
硬件架构:Raspberry Pi & Jetson(ROS2主控)+ Teensy(Micro-ROS执行器)


快速对照表
方向 项目/案例 关键工具 适用场景
SLAM建图 TurtleBot3 + Gazebo仿真 slam_toolbox 入门学习,仿真验证
SLAM建图 Unitree-Go2 RTAB-Map RTAB-Map + Nav2 四足机器人室内外建图
Navigation2 PlanSys2巡逻导航 Nav2 + PlanSys2 多目标巡逻任务
Navigation2 ARtag码导航系统 Nav2 + AprilTag 视觉标记导航
MoveIt2 六轴机械臂仿真教程 MoveIt2 + ros2_control 机械臂控制入门
MoveIt2 UR5e动态避障抓取 MoveIt2 + OctoMap 动态环境抓取
全栈集成 EVA人形机器人 Nav2 + MoveIt2 + Micro-ROS 整机系统集成


使用建议

  1. 入门顺序:从TurtleBot3 SLAM建图 → Navigation2导航 → 六轴机械臂仿真 → 逐步尝试抓取和集成项目
  2. 环境一致性:大部分项目基于Ubuntu 22.04 + ROS2 Humble,建议保持相同版本以避免兼容性问题
  3. 硬件适配:仿真项目可直接运行;实物项目需根据实际硬件(激光雷达型号、电机驱动协议)调整驱动层代码
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐