VINS_Fusion 框架
VINS_Fusion简介
VINS即Visual-Inertial navigation Systems),港科大在2019年1月12号发布了Vins-fusion,从2017年发布的Vins-mono:单目+IMU,这次晋级了vins-fusion,demo中主要给出了四个版本:单目+imu/纯双目/双目+imu/双目+imu+GPS.
VINS-Fusion是基于优化的多传感器状态估计器,可为自主应用(无人机,汽车和AR/VR)实现准确的自定位。
VINS-Fusion是VINS-Mono的扩展,它支持多种视觉惯性传感器类型(单摄像机+IMU,立体摄像机+IMU,甚至纯双目摄像机)。
系统特征
- 支持多种传感器组合(双目相机/单目相机+IMU/双目相机+IMU)
- 支持在线空间校准(可校准相机和IMU之间的外参)
- 支持在线时间校准(可校准相机和IMU之间的时间偏移)
- 支持视觉闭环,具有闭环检测的功能
Github地址
- VINS_mono:原版VINS_mono
- VINS_Fusion:VINS_mono的双目版本,也是要学习的重点
- VINS_mobile:VINS_mono使用与移动设备的版本
- VINS_RGBD:基于VINS_Fusion改进的RGBD相机版本
- VINS_Fusion_gpu:VINS_Fusion的GPU版本
系统结构框架
系统流程图如下所示:
如上图所示,VINS_Fusion系统主要分为三个部分:
- 前端
- 初始化
- 后端非线性优化
文件目录
* camera_models
* config
* docker
* global_fusion
* loop_fusion
* support_files
* vins_estimator
安装与运行测试
环境配置
Ubuntu 64-bit 16.04 or 18.04.
ROS Kinetic or Melodic. [ROS Installation](http://wiki.ros.org/ROS/Installation)
Ceres Solver(Follow [Ceres Installation](http://ceres-solver.org/installation.html)).
可直接参考VINS_Fusion的安装文件
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
在EuRoC数据集上测试VINS_Fusion
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml
rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag
测试结果
接下来需要重点研究的几个工作