前言:視覺 SLAM 存在輸出頻率低、旋轉運動時、或運動速率加快時定位易失敗等問題,而 IMU 有輸出頻率高、能輸出6DoF測量資訊等優點。是以現階段的一個研究熱點是将視覺 SLAM 與 IMU 得到的位姿估計結果進行融合,得到更加魯棒的輸出結果。通過二者的融合,可以解決視覺位姿估計輸出頻率低的問題,同時位姿估計精度有一定的提高,整個系統也更加魯棒。這也是一個 VIO (Visual Inertial Odometry) 問題。
一. IMU基本原理
慣性測量單元(Inertial Measurement Unit,簡稱 IMU)一般由三個單軸加速度計和陀螺儀組成。慣導解算主要是通過加速度計測得的載體加速度和陀螺測得的載體相對于導航坐标系的角速度來對載體的位置、 姿态及速度進行解算。
1. 坐标系
慣性導航中常用的坐标系有地心慣性坐标系、導航坐标系以及載體坐标系。坐标軸一般指向載體正前、正右及正下方。
2. 狀态模型
慣導系統的狀态量包括 IMU 的位置、姿态、速度以及加速度計和陀螺儀的兩個零偏,其中姿态采用四元數表示,狀态量可表示為 16 維的列向量。具體可參考以下連結:
IMU模型推導
二. 融合方式概述
同SLAM發展過程類似,視覺融合IMU問題也可以分成基于濾波和基于優化兩大類。
同時按照是否把圖像特征資訊加入狀态向量來進行分類,可以分為松耦合和緊耦合兩大類。
1. 基于濾波的融合方法
1.1 松耦合
松耦合将視覺傳感器和 IMU 作為兩個單獨的子產品,兩個子產品均可以計算得到位姿資訊,然後一般通過 EKF 進行融合。
可參考的算法有ethz的Stephen Weiss的ssf和msf
1.2 緊耦合
緊耦合則是指将視覺和 IMU 得到的中間資料通過一個優化濾波器進行處理,緊耦合需要把圖像特征加入到特征向量中,最終得到位姿資訊的過程。由于這個原因,系統狀态向量最終的次元也會非常高,同時計算量也很大。
可參考的算法有MSCKF,ROVIO
2. 基于優化的融合算法
2.1 松耦合
基于松耦合優化的工作不多,這裡隻給出一篇文章作為參考:
Inertial Aided Dense & Semi-Dense Methods for Robust Direct Visual Odometry
2.2 緊耦合
提到基于優化的緊耦合,就不得不提okvis了,主體思想是建立一個統一的損失函數同時優化視覺與IMU的位姿,用到了sliding window的思想。(這方面部落客也需要再深入研究一下)
可參考okvis的github首頁:
okvis
以及港科大今年上半年剛剛開源的VINS:
VINS
3. 總結
總體來看,松耦合算法相對簡單,且擴充性很強,可以加入多種傳感器資訊進行融合,但融合得到的位姿估計精度相對較差;緊耦合算法實作起來相對複雜,可擴充性差,但融合得到的位姿估計精度較高。
資料參考:
http://www.cnblogs.com/hitcm/p/6327442.html