VINS-Fusion环境搭建与使用
VINS-Fusion 是港科大开源的视觉惯性里程计(VIO),支持单目、双目、RGB-D 等多种相机配置,也可以融合 GPS。本文记录它在 ROS 2 Humble 下的编译、EuRoC 数据集测试,以及接入 RealSense D435i 的实机测试。
详细的安装步骤也可以参考这篇 CSDN 教程。
一、环境搭建
1. 安装依赖
1 | sudo apt update |
2. 编译
1 | # 创建工作空间 |
二、EuRoC 数据集测试
1. 下载数据集
下载 ROS 2 bag 格式的 EuRoC 数据集(EuRoC Data Sets),推荐先用 V1_01_easy,也可以试 V1_02_medium、MH_01_easy。解压到例如 ~/code/vins_ws/src/vins_fusion_ros2/data/V1_01_easy/。
2. 运行
终端 1:启动 RViz2。
1 | source ~/code/vins_ws/install/setup.bash |
终端 2:启动 VINS-Fusion。
1 | source ~/code/vins_ws/install/setup.bash |
终端 3:播放数据集。
1 | ros2 bag play ~/code/vins_ws/src/vins_fusion_ros2/data/V1_01_easy/V1_01_easy.db3 |
RViz2 中应能看到位姿估计轨迹和特征点云。
三、RealSense D435i 实机测试
1. 启动相机
发布双目红外图像和 IMU 数据:
1 | ros2 launch realsense2_camera rs_launch.py \ |
使用被动双目时(例如在室外),关闭激光投影器,避免红外斑点干扰特征跟踪:
1 | ros2 param set /camera/camera depth_module.emitter_enabled 0 |
相机驱动的安装见《RealSense D435i 安装与使用教程》。
2. 启动 VINS-Fusion 和 RViz2
1 | source ~/code/vins_ws/install/setup.bash |
1 | rviz2 -d ~/code/vins_ws/src/vins_fusion_ros2/config/vins_rviz_config.rviz |
四、配置文件
配置文件位于 ~/code/vins_ws/src/vins_fusion_ros2/config/:
| 配置文件 | 用途 |
|---|---|
stereo_euroc_config.yaml |
EuRoC 数据集双目 |
stereo_realsense_config.yaml |
RealSense 双目 |
rgb_d_realsense_config.yaml |
RGB-D |
需要按自己的设备修改的关键参数:
1 | # 相机话题 |
相机内参、相机与 IMU 的外参都需要针对自己的设备标定后填写,不能直接沿用示例值。
五、常见问题
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
| 初始化失败 | 运动过快或特征点不足 | 初始化时缓慢移动相机,保证场景纹理丰富、光照充足,必要时调整特征检测参数 |
| 时间戳不同步 | IMU 与图像时间戳没有对齐 | 设置 unite_imu_method:=2,检查各话题时间戳 |
| 实时性不够 | 计算量过大 | 降低图像分辨率,减少特征点数量 |
| 长时间运行漂移 | 纹理单一或没有回环 | 启用回环检测,有条件时融合 GPS |
参考资源
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dreamer Island!

