VINS_mono 代码详细理解(一)

一、运行命令

在这里插入图片描述

二、简介

VINS_mono 的代码是基于ROS写的,将slam的各个功能都封装成一个个功能包,相互之间通过发布和订阅的方向进行通信。
具体的每个功能包的内容:
在这里插入图片描述
三、VINS_mono代码整体框架
在这里插入图片描述
VINS-mono是香港科技大学开源的VIO算法,单目相机+IMU
VINS的功能模块分为五个部分,分别是数据预处理、初始化、后端非线性优化、闭环检测、闭环优化。

四、feature_tracker 功能包

在这里插入图片描述

(注:对于img_callback这里没有完全展示,要是需要更具体的可以评论)

接下来是我自己总结的关于feature_tracker功能包实现的大致过程:
1.第一帧图像进行,角点没有速度信息,如果第一帧图像有特征点,调用opencv封装好的函数,进行光流追踪,最后可以输出当前帧提取到的角点,以及光流是否追踪成功的状态量status,之后利用status提出追踪失败的点,到这个位置如果不需要将信息发布给后端,那么这部分功能就结束,将当前帧的信息赋值给上一帧。
2. 若信息需要发布,则需要进行接下来的操作,利用随机采样一致性,在此对追踪的角点进行剔除,即利用opencv封装好的函数计算F矩阵,函数输出status,利用status剔除部分错误的点;接下来利用setMask函数,达到特征点均匀化的目的;最后,调用opencv的goodFeatureToTrack()函数提取感兴趣区域的角点,将提取出的角点加入到当前帧特征点容器中forw_pts,至此,将信息封装发布。

五、vins_estimator功能包

在这里插入图片描述

未完。。。。

  • 8
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Vins Mono是一种视觉惯性里程计(Visual Inertial Odometry)的开源代码库,它能够通过摄像头和惯性测量单元(IMU)等传感器来实现定位和导航功能。 Vins Mono代码详细注释可以帮助理解其内部实现逻辑和功能,以下是一些注释的示例: 1. 数据预处理:首先对从IMU和相机获得的原始数据进行预处理,包括去除噪声、校准和同步。 2. 特征提取和跟踪:通过使用光流算法或特征提取算法,从相机的图像中提取可以用于定位和导航的特征点,并跟踪这些特征点在连续图像帧之间的位置变化。 3. 同步和融合:将来自IMU和相机的数据进行同步,并通过卡尔曼滤波或优化算法等方法,对其进行融合,从而得到更加准确的位置和姿态估计。 4. 回环检测:通过对连续图像帧的特征点进行匹配和识别,检测出回环(Loop Closure)情况,用于纠正可能发生的累积误差。 5. 姿态估计和优化:使用惯性测量单元(IMU)的数据来估计相机的姿态,并通过优化算法对姿态进行优化,提高估计的精度和稳定性。 6. 位移估计和建图:通过对特征点和相机姿态的估计,计算相机在三维空间中的位移,并根据这些位移信息进行地图构建和更新。 总而言之,Vins Mono代码详细注释包含了视觉惯性里程计的各个核心模块,包括数据处理、特征提取、姿态估计、优化算法和地图构建等步骤。通过阅读注释,用户可以深入了解每个模块的功能和实现方式,从而更好地理解代码的工作原理并进行相关的定位导航应用开发。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值