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的數據

圖解說明比較清晰:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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