相機IMU融合四部曲(一):D-LG-EKF詳細解讀


相機IMU融合四部曲(一):D-LG-EKF詳細解讀

極品巧克力

前言

前兩篇文章《Google Cardbord的九軸融合算法》,《Madgwick算法詳細解讀》,討論的都是在SO3上的傳感器融合,即,輸出的只是純旋轉的姿態。只有旋轉,而沒有位移,也就是目前的一些普通的VR盒子的效果。

而《相機IMU融合四部曲》要討論的是,在SE3上面的傳感器融合,在既有旋轉又有位移的情況下,該如何對多傳感器進行融合。也就是,工程實踐中的,如何把基於相機算出來的位姿,與IMU的位姿融合在一起。既有旋轉又有位移,可以反映玩家在三維空間中的運動,也就是目前的高端VR的效果,比如HTC Vive,Oculus以及微軟的Hololens, MR頭盔。

本系列文章分為四篇,分別從理論和實踐層面進行詳細闡述。

理論部分主要介紹相機和IMU在SE3上的融合,基於誤差狀態的卡爾曼濾波,IMU的在線標定,松耦合方法,緊耦合方法等。實踐部分,則是這些理論的具體實現,在VR中的實際融合效果,以及針對實驗結果的改進方案,實踐中總結的經驗等。

以下為第一篇,我結合參考文獻《Discrete extended Kalman filter on lie groups》,對SE3的融合理論進行詳細推導,總結成本文,與各位分享。

本文目標讀者:傳感器融合算法工程師。

一.基礎理論

首先,有SE3上的伴隨性質,這與《視覺SLAM十四講》里面的公式4.48一樣。伴隨性質與BCH近似的目的一樣,都是要讓相乘的李代數融成一個李代數。

還可以轉換成其它的形式。

然后是BCH公式。

另外一個公式。

關於的計算,參考《機器人狀態估計》。

不過,我覺得,上面這個公式,作者可能寫錯了,比如,當很大,而時,代入上式,得到,這樣就得到了,這樣就可以進一步得出,所以上面的公式是有錯誤的。

所以,作者想表達的應該是,BCH近似公式。應該寫成如下形式,當都為小量時,

然后,假設在均值0附近的李代數滿足高斯分布,均值處的李群為

又因為,參考《on-manifold詳細解讀》,把的中的表示旋轉的的范圍限制住,可以得出是一一對應的關系,,所以,

而,如果是在位姿的附近進行同樣的誤差分布呢,則可以表示為,用公式表示如下,

還可以推導出,

但不能認為,是繞着進行高斯分布的。因為李代數也都是相對的,根據BCH公式,

因為不一定是個微小值,所以不能用BCH近似。所以,通過上面公式可以看出,如果沒有的話,則服從的分布和一樣,會是高斯分布。但是,在的情況下,會隨着值的改變而改變。在不同位置對高斯曲線會有不同的改變,所以,也就不會服從高斯分布,並且對應的協方差也會隨之改變。參考《李代數及其協方差都是相對的》。

二.D-LG-EKF

2.1系統模型

是第時刻的狀態,是外界輸入,是噪聲,則對下一個狀態的預測為,

其中,表示的是,這個輸入所造成的位姿變換的李代數。要注意的是,並不直接代表上的噪聲,雖然它的來源是上的噪聲,它需要根據上的噪聲,通過的實際表達式,轉換出來。

因為都是已知的,假設只在的作用下,狀態變成了。則,

所表示的就是,

因為都是已知的,所以可以通過這個狀態變換,計算得到。參考《視覺SLAM十四講》的圖4-1,可以將轉換為。所以,也就可以得到了。

測量方程。

2.2傳播

假設在時刻的狀態的后驗概率分布服從,。即,

如果沒有噪聲的話,則對下一個狀態均值的預測為,

而根據之前的公式,對預測的分布滿足,

所以,設下一個狀態的誤差分布為,則它要滿足,

可以得出,

參考《李代數擾動的理解》,當時,,所以,上式可以轉換為,

要注意的是,,因為這里的其實表示的是一種分布,,所以,,所以,原式還可以轉換成,

上式的右邊都是已知的,所以就是代表了從的變換關系。首先,根據伴隨性質,得到,

再根據BCH近似公式,上式可以轉換為,

,則直接使用BCH公式,上式可以轉換為,

又因為都是小量,所以可以忽略掉,上式可以轉換為,

所以, 的關系又可以表示為,

對上面的變換關系,在處進行線性化,也就是進行一階泰勒展開,

則,

因為,所以,代入上式,得到,

所以,最終得到,

而另外一個,

所以,

然后,根據實際的運動方程,的表達式,算出的解析式,再求出。(或者,也可以用數值擾動的方法,求。),然后得到

繼續之前的變換關系進行一階泰勒展開,

其中,是一個微小量,可以忽略掉。所以,就得到了之間的線性轉換關系。

表示,得到,

再計算擾動的均值

然后,再計算的協方差。協方差的計算,參考《機器人狀態估計》的第二章。

所以,最后得到,

2.3更新

對預測出來的擾動和實際測量出來的擾動,進行融合。

對測量值的處理,可以直接是傳感器的測量值,比如加速度計的測量值,然后再考慮這個測量值上的高斯噪聲。將預測出來的測量值與實際的測量值進行融合,然后再反饋給狀態。

對測量值的處理,也可以轉換成李代數的形式。就像是madgwick算法一樣,以之前的姿態為初值,優化姿態,使得通過姿態計算出來的測量值與實際測量值最接近。而在本文中,采用的就是這種方法。(如果測量值只是加速度計或磁場計的測量向量的話,就更簡單了,因為madgwick要優化出四元數,而本文只要李代數就可以了。以之前的姿態為初值,優化姿態,使得通過姿態計算出來的加速度計向量與實際加速度計向量最接近,而這兩個向量之間的相對位姿變化,只需要叉乘一下就可以了,不需要通過優化。如果測量值是其它的,比如圖像上的特征點位置,那就只能通過優化的方法,優化出測量位姿,或者采用上一種測量值融合的方法。或者,也可以與視覺SLAM結合起來,直接以圖像計算出來的姿態或位姿為測量值。)

設第k時刻位姿的真實值為

首先,有個預測的位姿,它的協方差為。則意味着概率,

基於這個預測的位姿,預測出來的傳感器的測量值,然后有傳感器的實際測量值。用作為位姿初值,優化(或叉乘)出新的位姿,使得預測測量值與實際測量值最接近。用,表示優化出來的位姿相對於預測位姿的位姿。所以,實際測量值位姿可以表示為,

其中,是傳感器的測量值的噪聲,傳遞到之后,再分離到右邊去。可以通過這個過程中的變換,從實際傳感器的測量值協方差,轉換過來。

所以,這就意味着,

所以,綜合目前的信息,可以得到,,就是要求一個,使得最大。

其中,是個未知數,用,轉換成用未知數來表示。然后,上式就可以轉換為,

但這樣子也解不出來。參考《李代數高斯分布的求導》,對上式中的部分,在處進行線性化,一階泰勒展開。則可以轉換為,

同理,

其中,的計算,用數值擾動的方法。當然,也可以用解析的方法,把公式都展開來推導。(或者,參考《MSF詳細解讀》里面的方法,為了算H矩陣,直接就認為,這樣子算H矩陣很方便,其余的與原來方法一樣。如果是上式的話,則)。

 

接下來,為了轉換成卡爾曼濾波的形式,用來表示。

所以,原式就可以表示為,

這樣子,參考《從貝葉斯到卡爾曼濾波》,就可以轉換成卡爾曼濾波的形式了。

所以,得到了融合后的擾動

同時,滿足,

所以,預測出來的位姿,乘以這個融合后的擾動均值,就得到了融合后的位姿

所以,新的位姿的李代數為

則新位姿附近的李代數擾動要滿足,

所以,新的擾動的均值和協方差

協方差,

所以,

三.總結

總結起來,流程就是,

四.參考文獻

  1. Bourmaud G, Megret R, Giremus A, et al. Discrete Extended Kalman Filter on Lie groups[C]// Signal Processing Conference. EURASIP, 2013:1-5.

 


免責聲明!

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



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