从零到 RTAB-Map 3D 建图

从零到 RTAB-Map 3D 建图

一、环境配置(Windows + WSL 2)

1️⃣ Windows 端:USB 设备转发
powershell # 管理员 PowerShell usbipd list # 找到相机 BUSID (1-4) usbipd bind --busid 1-4 # 绑定设备 usbipd attach --wsl --busid 1-4 # 附加到 WSL
2️⃣ WSL 端:安装依赖
bash sudo apt-get update sudo apt-get install libusb-1.0-0-dev libudev-dev \ libssl-dev pkg-config libgtk-3-dev \ git wget cmake build-essential \ libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev \ python3-dev python3-distutils
3️⃣ 编译 librealsense(跳过内核补丁!)
bash cd ~/catkin_ws git clone https://github.com/IntelRealSense/librealsense.git cd librealsense # 设置 udev 规则 ./scripts/setup_udev_rules.sh # 编译(关键:FORCE_RSUSB_BACKEND=ON) mkdir build && cd build cmake .. -DFORCE_RSUSB_BACKEND=ON -DBUILD_PYTHON_BINDINGS=ON -DBUILD_EXAMPLES=false make -j4 sudo make install sudo ldconfig
4️⃣ 验证相机
bash export RSUSB_BACKEND=1 python3 -c " import pyrealsense2 as rs pipeline = rs.pipeline() config = rs.config() config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30) pipeline.start(config) frames = pipeline.wait_for_frames() print('✅ 相机工作正常!') pipeline.stop() "

二、安装 RTAB-Map

bash cd ~/catkin_ws/src git clone --depth 1 https://github.com/introlab/rtabmap_ros.git cd ~/catkin_ws catkin_make -j4 source devel/setup.bash

三、启动 ROS + RTAB-Map(三个终端)

终端 1:roscore(ROS 核心)
bash source /opt/ros/noetic/setup.bash roscore
终端 2:RealSense 相机驱动
bash export RSUSB_BACKEND=1 source /opt/ros/noetic/setup.bash roslaunch realsense2_camera rs_camera.launch
终端 3:RTAB-Map 建图
bash export RSUSB_BACKEND=1 source /opt/ros/noetic/setup.bash source ~/catkin_ws/devel/setup.bash roslaunch rtabmap_ros rtabmap.launch \ rtabmap_args:="--delete_db_on_start" \ rgb_topic:=/camera/color/image_raw \ depth_topic:=/camera/depth/image_rect_raw \ camera_info_topic:=/camera/color/camera_info \ visualization:=true

四、查看点云图

方法 1:RTAB-Map 自带可视化(自动打开)

启动命令加上visualization:=true,会自动打开rtabmap_viz窗口

方法 2:RVIZ

bash

# 新终端 source /opt/ros/noetic/setup.bash rviz

在 RVIZ 中:Add → By topic →/rtabmap/cloud_map→ PointCloud2

方法 3:查看数据库
bash rtabmap-databaseViewer ~/.ros/rtabmap.db