VINS-Mono源码解析(一)系统框架
1. VINS-Mono 简介
VINS-Mono是HKUST的Shen Shaojie团队开源的一套Visual-Inertial融合定位算法. 介绍见(https://github.com/HKUST-Aerial-Robotics/VINS-Mono), 论文里面也有.
此外,他们还开源了ios版本(https://github.com/HKUST-Aerial-Robotics/VINS-Mobile), 有兴趣可以去下载源码跑一跑, 好像已经有国外团队基于这套开源代码开发了一些AR的App.
VINS-Mono是目前开源SLAM里面效果非常不错的Visual和Inertial融合SLAM算法, 通过Sliding Windows优化进行视觉和IMU的紧耦合实现VIO, 此外还加了DBoW做Loop Closure, 算是一套完整的SLAM系统. 该算法的前端比较简单,就Harris角点加LK光流跟踪, Loop Closure也挺常规, 算法的厉害之处在于后端Visual Inertial融合优化部分, 也就是VIO部分, 这是VINS算法的核心,也是后面VINS-Mono代码阅读的重点.
目前视觉和IMU融合分为松耦合和紧耦合, 松耦合的性能要逊色于紧耦合. 紧耦合的主流融合框架有基于滤波的方法(MSCKF)和基于优化的方法(VINS-Mono).
VINS-Mono在ROS下开发的, 因此可以很方便的编译和使用,跟着readme安装就可以跑起来