北冰洋以北 发表于 2025-11-5 14:19:04

VINS-Mono源码阅读(一)步伐简介、编译调试、设置文件

一、VINS-Mono 简介

1、步伐概述

与双目相机和 RGB-D 相机相比,单目相机具有布局简单、本钱低和处理惩罚速率快的优点。然而,单目 VSLAM 存在标准不确定性、无法对齐位姿和重力方向的自身缺点和快速活动导致的活动暗昧的情况下容易跟踪丢失等不敷。为增补此题目,可将单目相机和 IMU 相联合的传感器融合,这种融合方案被称为单目视觉惯性里程计(Visual Inertial Odometry,VIO)或单目视觉惯性 SLAM(Visual-inertial SLAM,VINS)。


[*] IMU 也可以增补视觉 SLAM 在短时间、快速活动上的不敷,别的由于 IMU 不依赖外界情况信
息,对情况变革不敏感,也可以在少纹理、明暗变革较大大概光线较弱场景内提供短期的定位方案以及位姿估计方案。
[*] 较之惯性信息,视觉里程计可以提供丰富的外界信息,在低速安稳的活动中位姿估计稳固,而且视觉里程计在长时间运行后的漂移较小,而且可以通过回环检测修正自身位置以减小累积毛病。
因此,在 SLAM 的浩繁分支中,无论在理论还是实践上,视觉-惯性融合为导航定位的研究工作提供了一个非常有远景的、小型化和低本钱化的改进方案。
香港科技大学沈劭劼团队开辟的 VINS 体系,用了一种紧耦合的非线性优化方法。该团队在 2017 年发布的 VINS-Mono 通过在四元数上举行 IMU 的预积分,而且采取滑动窗口法融合 IMU 信息和相机观测到的特性数据,实现了数据的紧耦合。而且采取四自由度的图优化方法实现了回环检测模块,来得到全局束缚。在 2019 年,该团队又发布了 VINS-Fusion,在 VINS-Mono 的根本上又加入了双目、双目+IMU 等更多的传感器范例,以及支持了 VINS 和 GPS 的融合。它支持在线标定相机及 IMU 参数及鱼眼相机模子,而且支持生存当前舆图和加载过往舆图。在与 IMU 的联合上,它采取了四元数积分方案,与视觉信息举行紧耦合,具有很强的鲁棒性和定位精度。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9pbWdfY29udmVydC81NTY1NjZmMGE4ZjQ0YzIzYWY0NjM3MDhlMTI0N2UxYS5wbmc=
2、资源获取



[*]GitHub 上开源了 VINS-mono,VINS-Fusion 和 VINS-mobile
3、代码分析

文件布局如下:


[*] ar_demo:一个ar应用demo
[*] benchmark_publisher:吸取并发布数据集的基准值
[*] camera_model

[*]calib:相机参数标定
[*]camera_models:各种相机模子类
[*]chessboard:检测棋盘格
[*]gpl
[*]sparse_graph
[*]intrinsic_calib.cc:相机标定模块main函数

[*] config:体系设置文件存放处
[*] feature_trackers:

[*]feature_tracker_node.cpp ROS 节点函数,回调函数
[*]feature_tracker.cpp 图像特性光流跟踪

[*] pose_graph:

[*]keyframe.cpp 关键帧选取、形貌子盘算与匹配
[*]pose_graph.cpp 位姿图的创建与图优化
[*]pose_graph_node.cpp ROS 节点函数,回调函数,主线程

[*] support_files:资助文档、Bow字典、Brief模板文件
[*] vins_estimator:

[*]factor:实现IMU、camera等残差模子
[*]initial:体系初始化,外参标定,SFM
[*]utility:相机可视化,四元数等数据转换
[*]estimator.cpp:紧耦合的VIO状态估计器实现
[*]estimator_node.cpp:ROS 节点函数,回调函数,主线程
[*]feature_manager.cpp:特性点管理,三角化,关键帧等
[*]parameters.cpp:读取参数

4、步伐功能

步伐紧张分为五部门:


[*]传感器数据处理惩罚:Camera 特性提取追踪、IMU 预积分
[*]初始化:
[*]基于滑动窗口的非线性优化:
[*]闭环检测:
[*]全局位姿图优化:
5、步伐实验流程图

ROS 节点图如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9pbWdfY29udmVydC81ZWRkMmFlY2Y0ZTRkYWYxMTA3MDEwYWJjNzVjNWZlNC5wbmc=
二、编译调试

三、launch 启动文件

在文件夹 VINS-Mono/vins_estimator/launch 中,启动时直接读取 euroc.launch 同时打开三个节点
四、YAML 设置文件


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: VINS-Mono源码阅读(一)步伐简介、编译调试、设置文件