天天看点

VINS-Mono论文学习与代码解读——目录与参考前言目录!(不断更新中)

前言

港科大的VINS-Mono作为目前state of the art的开源VIO项目,是研究视觉与IMU融合的必读算法,网上的论文解读与代码实现也非常丰富(感谢!)。为更好地进行学习,本人将在学习之余逐步整理自己对算法的论文和实现的相关解读,欢迎大家一起讨论。

原文:VINS-Mono A Robust and Versatile Monocular Visual-Inertial State Estimator

VINS代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono

目前已经在github上放出了相关代码注释:

https://github.com/ManiiXu/VINS-Mono-Learning

后续也会持续修改,欢迎大家共同交流,指出错误,star一下~

PS. 本人参考的VINS-Mono是171229版本,代码结构有所区别,将原来的"/vins_estimator"拆分出了一个"/pose_graph"节点。部分代码实现也有修改,并添加了一些新功能。

from github:

29 Dec 2017: New features: Add map merge, pose graph reuse, online temporal calibration function, and support rolling shutter camera.

其中 map reuse 可以参考文章:

Relocalization, Global Optimization and Map Merging for Monocular Visual-Inertial SLAM

目录!(不断更新中)

VINS-Mono论文翻译

VINS-Mono代码解读——启动文件launch与参数配置文件yaml介绍

VINS-Mono代码解读——各种数据结构 sensor_msgs measurements

VINS-Mono代码解读——视觉跟踪 feature_trackers

VINS-Mono理论学习——IMU预积分 Pre-integration

VINS-Mono代码解读——状态估计器流程 estimator

VINS-Mono代码解读——视觉惯性联合初始化 initialStructure sfm

VINS-Mono理论学习——视觉惯性对齐与外参标定

VINS-Mono理论学习——后端非线性优化

VINS-Mono理论学习——边缘化

VINS-Mono代码解读——滑动窗口的非线性优化流程 optimization slideWindow

VINS-Mono代码解读——回环检测与重定位 pose graph loop closing

VINS-Mono代码解读——四自由度位姿图优化 pose_graph optimize4DoF

TUM VIO数据集介绍与尝试

Realsense D435i如何拿到IMU数据并顺利运行VINS-Mono

VINS介绍:

VINS是一种具有鲁棒性和通用性的单目视觉惯性状态估计器。

该算法主要有以下几个模块:

  1. 预处理

    图像特征光流跟踪

    IMU数据预积分

  2. 初始化

    纯视觉Sfm

    Sfm与IMU积分的松耦合

  3. 基于滑动窗口的非线性优化实现紧耦合
  4. 回环检测与重定位
  5. 四自由度位姿图优化
VINS-Mono论文学习与代码解读——目录与参考前言目录!(不断更新中)

rqt_graph

node only

VINS-Mono论文学习与代码解读——目录与参考前言目录!(不断更新中)

node all

VINS-Mono论文学习与代码解读——目录与参考前言目录!(不断更新中)

代码的文件目录

1、ar_demo:一个ar应用demo

2、benchmark_publisher:接收并发布数据集的基准值

3、camera_model

   calib:相机参数标定

   camera_models:各种相机模型类

   chessboard:检测棋盘格

   gpl

   sparse_graph

   intrinsic_calib.cc:相机标定模块main函数

4、config:系统配置文件存放处

5、feature_trackers:

   feature_tracker_node.cpp ROS 节点函数,回调函数

   feature_tracker.cpp 图像特征光流跟踪

6、pose_graph:

   keyframe.cpp 关键帧选取、描述子计算与匹配

   pose_graph.cpp 位姿图的建立与图优化

   pose_graph_node.cpp ROS 节点函数,回调函数,主线程

7、support_files:帮助文档、Bow字典、Brief模板文件

8、vins_estimator

   factor:实现IMU、camera等残差模型

   initial:系统初始化,外参标定,SFM

   utility:相机可视化,四元数等数据转换

   estimator.cpp:紧耦合的VIO状态估计器实现

   estimator_node.cpp:ROS 节点函数,回调函数,主线程

   feature_manager.cpp:特征点管理,三角化,关键帧等

   parameters.cpp:读取参数

参考笔记:

VINS论文推导及代码解析 by 崔华坤

VINS技术路线与代码详解 by 五行缺帅wangshuailpp

VINS-Mono 学习笔记 by 童哲航

VINS-Mono 代码解读 by Rain-XIA

VINS-mono详细解读 by 极品巧克力

VINS代码注释:

https://github.com/castiel520/VINS-Mono by castiel520

https://github.com/QingSimon/VINS-Mono-code-annotation by QingSimon

继续阅读