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,甚至纯双目摄像机)。

系统特征

  1. 支持多种传感器组合(双目相机/单目相机+IMU/双目相机+IMU)
  2. 支持在线空间校准(可校准相机和IMU之间的外参)
  3. 支持在线时间校准(可校准相机和IMU之间的时间偏移)
  4. 支持视觉闭环,具有闭环检测的功能

Github地址

  1. VINS_mono:原版VINS_mono
  2. VINS_Fusion:VINS_mono的双目版本,也是要学习的重点
  3. VINS_mobile:VINS_mono使用与移动设备的版本
  4. VINS_RGBD:基于VINS_Fusion改进的RGBD相机版本
  5. VINS_Fusion_gpu:VINS_Fusion的GPU版本

系统结构框架

系统流程图如下所示:

如上图所示,VINS_Fusion系统主要分为三个部分:

  1. 前端
  2. 初始化
  3. 后端非线性优化

文件目录

* 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

测试结果

接下来需要重点研究的几个工作

  1. 系统的初始化
  2. 前端特征追踪策略
  3. 后端的优化
  4. 相机模型
posted @ 2020-04-23 20:08  少年笔谈  阅读(10095)  评论(3编辑  收藏  举报