VINS mono 系统学习 二
转载:白眼哥哥
目的: 学习 存档
========================
vins是今年刚开源的vio系统,跑了数据集效果挺好的,所以看了paper和代码。
视频地址:https://www.youtube.com/watch?v=I4txdvGhT6I
github:https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
在上一篇博文中,我已经简单介绍了整个系统框架,这一篇对数据预处理做了简单的笔记。
1、图像获取(feature_tracker节点)
a) 通过直方图均匀化的方法使得原本过亮或过暗的图像能够提取更多的特征点
b) 用Harris角点为特征,采用KLT光流法对图像进行跟踪,从而实现特征的匹配
这里光流法有一个特点:只跟踪前一帧已知的特征点,所以不会存在第1帧和第3帧有某个特征点,而第2帧没有这个特征点的情况。所以程序中的feature管理就很好的利用了这一点,去找每个特征点在每一个帧上出现的情况
c)用PUB_THIS_FRAME作为标志,以10hz的频率向estimator节点发送点云内容,这里每一帧发送的图像包含足够多的特征点(150个角点)
d)向estimator发布的点云内容包括:
1)特征点在相机坐标系的归一化坐标
3)特征点的ID号
1、IMU预积分(代码中用的是mid-point方法,也就是用平均值代替整个时间范围内的值)
作用:1)通过分段的积分,减少漂移
2)如果长期积分,那么在通过图像对pose矫正之后需要重新修改imu位姿,这就很麻烦
3)将重力加速度g提取到了积分外面,减少了计算量
a) 位姿、速度的传递
b)协方差和雅克比矩阵传递
假设:测量量p、v、θ服从高斯正态分布;漂移量ba、bw服从高斯游走分布(高斯游走分布:前后时刻的值的差服从正态分布)。
有不对的地方欢迎指正!
参考文献:Technical Report: VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator