VINS-Mono-Learning

VINS-Mono代码注释

VINS介绍:

VINS是一种具有鲁棒性和通用性的单目视觉惯性状态估计器。
该算法主要有以下几个模块:

  1. 预处理
       (1)图像特征光流跟踪
       (2)IMU数据预积分
  2. 初始化
       (1)纯视觉Sfm
       (2)Sfm与IMU预积分的松耦合
  3. 基于滑动窗口的非线性优化
  4. 回环检测与重定位
  5. 四自由度位姿图优化

代码的文件目录:

  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论文推导及代码解析》

  1. IMU预积分:
       VINS-Mono之IMU预积分,预积分误差、协方差及误差对状态量雅克比矩阵的递推方程的推导
       VINS-Mono理论学习——IMU预积分 Pre-integration (Jacobian 协方差)
  2. 视觉IMU联合初始化:
       VINS-Mono之外参标定和视觉IMU联合初始化
       VINS-Mono理论学习——视觉惯性联合初始化与外参标定
  3. 后端非线性优化:
       VINS-Mono之后端非线性优化
       VINS-Mono理论学习——后端非线性优化
  4. 边缘化:
       VSLAM之边缘化 Marginalization 和 FEJ (First Estimated Jocobian)
       VINS-Mono关键知识点总结——边缘化marginalization理论和代码详解
  5. 回环检测与重定位:
       vins-mono代码阅读之4自由度位姿图优化
       VINS-Mono代码解读——回环检测与重定位 pose graph loop closing

参考VINS代码注释:

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

posted @ 2025-07-17 13:27  安度因小王子  阅读(169)  评论(0)    收藏  举报