Drobotics logo DROBOTICSTechnical Library

SLAM Guide

RGB-D SLAM 开发指南:Intel RealSense D435i + ROS2 Humble + RTAB-Map

All SLAM
RGB-D SLAM 开发指南 | RealSense D435i + ROS2 Humble + RTAB-Map

RGB-D SLAM 开发指南

Intel RealSense D435i · ROS2 Humble · RTAB-Map 完整 RGB-D SLAM 流水线

RealSense D435i ROS2 Humble RTAB-Map SLAM 视觉里程计 通过 室内定位
1. 概述

RGB-D SLAM 是室内机器人和无人机定位的常用方法。系统使用 RGB-D 相机(如 Intel RealSense D435i)获取 RGB 图像、深度图像和相机标定信息。RGB 图像提供视觉特征,深度图像提供距离信息。结合 RGB 和深度数据,系统可以估计相机运动并构建环境的 3D 地图。

Intel RealSense D435i | | v ROS2 RealSense Driver | | +----------------+ | | v v RGB Image Depth Image | | +-------+--------+ | v RGB-D Odometry | v RTAB-Map SLAM | +---------+---------+ | | v v Camera Trajectory 3D Map
2. 系统组件
RGB-D 相机
硬件: Intel RealSense D435i

RGB 流: /camera/camera/color/image_raw
包含普通彩色图像(物体、纹理、角点、视觉特征)

深度流: /camera/camera/depth/image_rect_raw
包含距离信息(像素距离 = 1.25 米),深度使系统理解环境的 3D 结构。
3. Terminal 1 — 启动 RealSense 驱动
source /opt/ros/humble/setup.bash ros2 launch realsense2_camera rs_launch.py \ depth_module.depth_profile:=640x480x15 \ rgb_camera.color_profile:=640x480x15
功能: 启动相机驱动,连接 ROS2 与 D435i。

D435i → RGB (/camera/camera/color/image_raw) + Depth (/camera/camera/depth/image_rect_raw)

错误 无 SLAM · 错误 无地图 · 错误 无位置估计
通过 仅有相机数据
系统只知道“这些是来自相机的图像”,不知道相机在哪里、如何移动、环境结构如何。
4. Terminal 2 — 验证相机数据
source /opt/ros/humble/setup.bash # 检查 RGB ros2 topic hz /camera/camera/color/image_raw # 检查深度 ros2 topic hz /camera/camera/depth/image_rect_raw
预期:~14-15 Hz

目的:仅确认相机正在发布图像。
错误 无 SLAM · 错误 无轨迹 · 错误 无地图
通过 相机通信已验证
5. Terminal 3 — 启动 RTAB-Map SLAM
source /opt/ros/humble/setup.bash ros2 launch rtabmap_launch rtabmap.launch.py \ rgb_topic:=/camera/camera/color/image_raw \ depth_topic:=/camera/camera/depth/image_rect_raw \ camera_info_topic:=/camera/camera/color/camera_info \ frame_id:=camera_color_optical_frame \ approx_sync:=true
6. RTAB-Map 内部工作
RGB Image | | Depth Image | v rgbd_odometry | | | Camera motion estimation | v /rtabmap/odom | v RTAB-Map | +----------------+ | | v v Feature Matching 3D Mapping | | Loop Closure
rtabmap
7. RGB-D 里程计
组件: rgbd_odometry

估计相机运动(旋转 + 平移)

示例:
相机位置:X=0 → X=0.5m

输出:/rtabmap/odom(位置 + 方向 + 坐标变换)
这就是视觉里程计。
8. RTAB-Map SLAM
特征匹配
检测视觉特征(角点、纹理、物体)并比较图像,估计相机运动。
回环检测
识别先前访问过的位置,修正累积漂移。
3D 地图生成
使用 RGB 图像、深度信息和估计运动创建点云、3D 重建和占据栅格地图。
通过 9. RGB-D SLAM 运行中
通过 视觉里程计
通过 相机轨迹
通过 3D 重建
通过 SLAM 数据库
通过 环境地图
10. 重要术语
术语说明
RGB-D 相机Intel RealSense D435i,提供 RGB 图像 + 深度图像
RGB-D 里程计RGB + Depth → 相机运动估计,输出 /rtabmap/odom
RGB-D SLAM里程计 + 建图 + 回环检测 → 轨迹 + 3D 地图 + 定位
11. 下一步开发方向
仅建图
调优 RTAB-Map 参数 · 改善点云质量 · 保存/加载地图
机器人导航
RTAB-Map → /rtabmap/odom → Navigation Stack → Robot Controller
无人机集成
RealSense D435i → RTAB-Map → Visual Odometry → MAVROS/MAVSDK → Pixhawk EKF2 → Indoor Autonomous Flight
下一步工程是将视觉里程计连接到飞控,使无人机无需 GPS 即可保持位置。
通过 当前工作配置
组件规格
硬件Intel RealSense D435i
连接USB 3.x
RGB640x480 @ 15 FPS
深度640x480 @ 15 FPS
操作系统Ubuntu 22.04
ROS2Humble
通过 相机驱动工作
通过 RGB 流工作
通过 深度流工作
通过 RGB-D 里程计工作
通过 RTAB-Map SLAM 工作

平台:Jetson Orin · Ubuntu 22.04 · ROS2 Humble · D435i · RTAB-Map
(c) 卓博泰科技 · RGB-D SLAM 开发指南