ORB_SLAM3 IMU初始化(Inertial-only MAP estimation)


學習ORB_SLAM3時在IMU初始化時,有些疑問故以筆記的形式記錄下來:

ORB_SLAM3 IMU初始化是基於論文《Inertial-Only Optimization for Visual-Inertial Initialization》分3步:第一步把冰箱門打開。。。。

1.Vision-only MAP estimation(純視覺的最大后驗估計)

2.Inertial-only MAP estimation(純慣導的最大后驗估計)

3.Visual-inertial MAP estimation(視覺&慣導的最大后驗估計)

1.Vision-only MAP estimation(純視覺的最大后驗估計):

初始化純單目SLAM,在初始的兩幀使用FAST提取和ORB描述子做2D-2D匹配,然后使用本質矩陣和單應矩陣模型計算變換矩陣,然后使用評分高的模型進行初始化運動和三角化特征點,初始化成功后以比較高的頻率(4 Hz to 10 Hz)插入關鍵幀,在關鍵幀之間需要進行IMU的預積分。要進行IMU的外參標定。

2.Inertial-only MAP estimation(純慣導的最大后驗估計):

僅使用IMU數據,通過軌跡被固定,也就是關鍵幀的位姿被固定,對IMU的參數進行優化。

關鍵幀狀態,除了位置其他參數定義如下:

 

 放縮尺度 

 重力方向的旋轉 

 6軸的零偏:三軸(X,Y,Z)加速度零偏,三軸角(Pitch,Yaw,Roll)速度零偏 

   0~K幀關鍵幀除去尺度的3軸(X,Y,Z)速度

 

 

     第0到第k關鍵幀幀的IMU積分 

  從第0到第k幀的IMU測量值固定,第k關鍵幀數據分布概率

  第k關鍵幀數據固定, 從第0到第k幀的可能的IMU測量值分布概率

  第k關鍵幀數據分布概率 

 

最大后驗估計:

 

第二行,log函數單調性

第三行,最大值=取反最小值

第四行,根據貝葉斯公式:

 

第五行,log展開

第六行,刪除無關項

第七行,似然展開

  

如果IMU預積分和先驗的滿足高斯誤差分布,最大后驗問題等效於:

   

  先驗殘差 

幀間殘差 

對應代碼部分:

Optimizer::InertialOptimization

圖優化對應3種類型的邊:

EdgePriorAcc =>先驗加速度零偏殘差

EdgePriorGyro=>先驗角速度零偏殘差

EdgeInertialGS=>幀間殘差

 

TODO:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM