VINS_MONO getMeasurements()同步imu数据以及相机特征点帧数据代码逻辑

getMeasurements代码逻辑

imubuf空 或特征点buf空,返回结果
满足两个条件,才进行装载数据:
1.当最新的imu帧(imu_buf.back()) 新过 图像帧(feature_buf.front()+ td )的时间戳(保证了图像帧之前已经没有imu数据了)
2.最旧的imu帧(imu_buf.front()) 旧过 图像帧(feature_buf.front()+ td )的时间戳的(保证了图像帧之前一定要有imu帧)

当最新的imu帧(imu_buf.back()) 没有新过 图像帧(feature_buf.front()+ td )的时间戳的时候, 返回结果。

当最旧的imu帧(imu_buf.front()) 没有旧过 图像帧(feature_buf.front()+ td )的时间戳的时候, 去掉最旧的图像帧。重新进入循环(这种情况只会出现在程序的开头,即,有图像的时候,没有imu,突然来了Imu,这时候,第一帧图像太旧了,就不要这个第一帧的数据)

此时是什么情况?
imu的数据全部在图像帧数据的前面,且至少有一帧IMU帧比图像帧新。有即Imu早于图像帧,现在要把这些比图像帧数据早的imu数据装载到IMUs 的vector里面

接着开始装载IMU的数据

图解说明比较清晰:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章