当前位置: 首页 > ai >正文

VINS-Fusion 简介、安装、编译、数据集/相机实测

目录

VINS-Fusion 简介

安装

VINS-Fusion 源码安装

运行数据集

双目模式

单目+IMU 模式

双目+IMU 模式

D455 相机实际运行

双目+IMU 模式


VINS-Fusion 简介

VINS-Fusion 是继 VINS-Mono 和 VINS-Mobile(单目视觉惯导 SLAM 方案)后,香港科
技大学沈劭劼老师团队开源的双目视觉惯导 SLAM 方案,VINS-Fusion 是一种基于优化的
多传感器状态估计器,可实现自主应用(无人机,汽车和 AR / VR)的精确自定位。 VINS
Fusion 是 VINS-Mono 的扩展,支持多种视觉惯性传感器类型(单目摄像机+ IMU,双目摄
像机+ IMU,甚至仅限双目摄像机)。开源项目组还展示了将 VINS 与 GPS 融合的模组示例。

安装

安装好 Ubuntu 及其对应的 ROS 版本,这里我们使用的是 Ubuntu18.04,ROS melodic
ceres 安装
1、先安装所有的依赖项
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev
2、再下载、安装 Ceres
建议下载稳定版本 ceres
不要追求下载最新版本,因为最新版对编译器要求较高。比如 Ceres Solver 2.2 需要 C++17
编译器。我这里使用的是 ceres-solver-1.14.0
tar zxf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..
make -j3
make test # 可选,用于测试
sudo make install
3、测试是否正常
Ceres 自带有测试数据,我们在 build 目录输入
bin/simple_bundle_adjuster ../data/problem-16-22106-pre.txt
功能是用 DENSE_SCHUR 线性优化器迭代优化
成功运行后,输出如下所示,表示成功安装 ceres

VINS-Fusion 源码安装

cd ~/vins_catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ../
catkin_make
将工作空间添加到环境变量,这样就不用每次打开一个终端都要 source 一次了,可以一劳
永逸的解决环境问题
打开终端,执行
echo "source ~/vins_catkin_ws/devel/setup.bash" >> ~/.bashrc
#这样就不用每次打开一个新终端都要 source 一次了
相当于打开 gedit ~/.bashrc 在文件末尾添加
source ~/vins_catkin_ws/devel/setup.bash
然后在终端,输入 source ~/.bashrc

运行数据集

双目模式

ROS 模式运行双目数据集,以 EuROC 为例
# 启动
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_stereo_config.yaml
rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_stereo_config.yaml # 带闭环检测,可选
rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag

单目+IMU 模式

ROS 模式运行单目数据集,以 EuROC 为例
# 启动
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_mono_imu_config.yaml
rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_mono_imu_config.yaml # 带闭环检测,可选
rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag

双目+IMU 模式

ROS 模式运行单目数据集,以 EuROC 为例
# 启动
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_stereo_imu_config.yaml
rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_stereo_imu_config.yaml # 带闭环检测,可选
rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag

D455 相机实际运行

首先需要利用前面介绍的相机-IMU 标定方法提前标定好相机。
VINS-Fusion/config 文件夹下面有作者提供的很多配置文件,包括 realsense_d435i,我们复
制后改名为 realsense_d455 并修改其中的配置文件
cam0:T_cam_imu 表示的是 IMU 到相机 0 的变换矩阵,
body_T_cam0 表示相机 0 到 IMU 矩阵,所以它的值应该是 T_cam_imu 矩阵取逆
可以使用在线计算矩阵的逆 http://www.yunsuan.info/cgi-bin/matrix_inverse.py
source ~/realsense_catkin_ws/devel/setup.bash
标定参数数字和逗号之间不要有空格,否则可能会报错误 OpenCV Error: Parsing
error
准备好标定文件,路径改好,topic 改好

双目+IMU 模式

启动相机
roslaunch realsense2_camera rs_camera.launch
#启动 rviz
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins_catkin_ws/src/VINS
Fusion/config/realsense_d455/realsense_stereo_imu_config.yaml
rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS
Fusion/config/realsense_d455/realsense_stereo_imu_config.yaml # 带闭
环检测,可选
参考:https://blog.csdn.net/qq_40186909/article/details/113104595
http://www.xdnf.cn/news/14257.html

相关文章:

  • 传统数据仓库正在被 Agentic AI 吞噬
  • 超高速总线CDCTL01A 芯片在机器人领域的应用解析
  • SLB、Nginx、Gateway 与 ECS 的关系详解
  • Node.js 中的 Token 认证机制详解
  • 【Docker 05】Container - 容器
  • volatile 对 int 和 long 修改的区别
  • 如何制定适用于多项目的统一流程规范
  • 关于AUTOSAR AP 开发流程的研究
  • (83)课102:过程里的条件判断 IF 条件1 THEN .. ELSEIF 条件2 THEN .. ELSE .. END IF;
  • # 把 ISO 写入 U 盘(相关了解)
  • VBA使用字典统计
  • 金蝶云星空BOS开发
  • 搜索问答技术概述:基于知识图谱与MRC的创新应用
  • OAC: Output-adaptive Calibration for Accurate Post-training Quantization
  • 痉挛性斜颈:认识颈部的 “异常挛动”
  • Java-String
  • 如何快速提升英文听力?
  • PCB设计杂谈之一
  • Amazon Q in QuickSight 实战:自然语言秒级生成数据报表与深度洞察
  • 打牙祭是什么意思
  • 快速读取数据
  • 006__C++类的特殊用法
  • 2.3.3 07年T2
  • GeoTools:gt-referencing模块
  • LoadRunner 2023 安装部署
  • 如何稳定地更新你的大模型知识(算法篇)
  • DataX HdfsReader 插件:快速上手与深入解析
  • 《P1878 舞蹈课》
  • 基于Docker编译运行orb-slam2_with_semantic_labelling
  • 36. 有效的数独