VINS-Fusion+RTABMap的三维稠密重建
2025-12-17
XTDrone
00

启动容器:

bash
展开代码
docker run -it \ --network host \ --privileged \ -e DISPLAY=$DISPLAY \ -e QT_X11_NO_MITSHM=1 \ -e LIBGL_ALWAYS_INDIRECT=0 \ -e LIBGL_ALWAYS_SOFTWARE=1 \ -v /tmp/.X11-unix:/tmp/.X11-unix:rw \ -v $HOME/go_ros:/home/go_ros:rw \ -v $HOME/catkin_ws:/home/catkin_ws:rw \ hx920/deeplearning:xtdrone_v1 \ /bin/bash

安装深度支持:

bash
展开代码
sudo apt install ros-noetic-rtabmap* sudo apt install ros-noetic-octomap*

将这个配置放到深度支持的配置文件中:

bash
展开代码
mkdir /opt/ros/noetic/share/rtabmap_ros/launch/config cd /opt/ros/noetic/share/rtabmap_ros/launch/config cp ~/XTDrone/sensing/slam/vio/VINS-Fusion/config/xtdrone_sitl/rgbd.rviz .

之前是(别先执行):

bash
展开代码
roslaunch px4 indoor1.launch

里面用的:iris_stereo_camera.sdf 模型

前面的步骤与VINS-Fusion的启动仿真一致,注意把仿真launch文件的 iris_stereo_camera 换成 iris_realsense_camera ,这样才能有深度图数据。而后启动rtabmap

找一下这个文件在哪里:

bash
展开代码
Wed Dec 17 # 22:01:18 # /root # find . -name indoor1.launch ./PX4_Firmware/launch/indoor1.launch

然后编辑文件里的摄像头:

查找 iris_stereo_camera

改为 iris_realsense_camera

然后开始一系列的启动工作:

启动gazebo px4:

bash
展开代码
roslaunch px4 indoor1.launch

VINS-Fusion启动:

bash
展开代码
cd ~/catkin_ws bash scripts/xtdrone_run_vio.sh

由于VINS-Fusion发布的是Odometry类型的话题,我们要将其对应转为PX4所需的话题 现在视觉定位信息就通过mavros发到PX4,查看/iris_0/mavros/local_position/pose可以看到有正确的数据

bash
展开代码
cd ~/XTDrone/sensing/slam/vio python3 vins_transfer.py iris 0

然后建立通信,键盘控制起飞即可

bash
展开代码
cd ~/XTDrone/communication python3 multirotor_communication.py iris 0

启动键盘:

bash
展开代码
cd ~/XTDrone/control/keyboard python3 multirotor_keyboard_control.py iris 1 vel

启动rtabmap

bash
展开代码
roslaunch vins rtabmap_vins.launch

本文作者:cc

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!