VINS-FUSION中基于视差Parallax关键帧,主要是在函数addFeatureCheckParallax中完成,其结果作为滑窗去除帧的依据。
在滑动窗口中,总是保持窗口总体大小不变,当新进来一帧,通过函数addFeatureCheckParallax判断,如果属于关键帧,则去除窗口中最老帧,置标志MARGIN_OLD;如果不属于关键帧,则去除窗口中次新帧,置标志MARGIN_SECOND_NEW。通过该种策略完成滑窗过程。
函数addFeatureCheckParallax
bool FeatureManager::addFeatureCheckParallax(int _frameCount,
const map<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> &_image, double td) {
输入参数:
_frameCount:滑窗中帧数;
_image:特征点结构,{FeatureID, vector<{CameraID, (x, y, z, u, v, vx, vy)}>};
td: camera和IMU数据时间偏移。
1. 函数首先遍历特征点
a.如果是双目则将左右目特征信息放入类型为FeaturePerFrame的变量f_per_fra中; 在文章“VINS-Fusion features特征点管理”中,知