視覺SLAM:視覺SLAM中的李羣與李代數、左乘擾動模型

爲什麼引入李羣與李代數?

SLAM中對矩陣求導數的應用場景?什麼情況下用到李代數左乘擾動模型求導數?

爲什麼不能用李羣求導?

李羣與李代數的關係?

李代數左乘擾動的理解?

0 爲什麼引入李羣與李代數?

slam中後端優化需要用到求解最小二乘問題,優化變量爲旋轉矩陣與平移矩陣。但是旋轉矩陣自身是帶有約束的,正交且行列式爲1,他們作爲優化變量時,會引入額外的約束,使優化變的困難,不加約束會使每一步迭代得到的結果不是旋轉矩陣。通過李羣李代數的轉換關係,把位姿估計變成無約束的優化問題。

1 李羣與李代數在SLAM中的用途

視覺SLAM中用李羣表示相機位姿T,用李代數求導數。

對於同一個特徵點,如果上一時刻得到該點相機座標系下的三維座標爲P,當前時刻觀測到相機座標系下的座標爲Z,則兩時刻相機位姿變化矩陣爲T,有如下公式:

                                                                                  Z = TP + \omega

\omega爲誤差。目的是求解矩陣T,得到相機的位姿變換,以此迭代下去得到相機的運動軌跡。

由於誤差不可避免,並且兩時刻之間可以觀測到很多匹配好的特徵點,因此一般用很多觀測到的特徵點構建優化問題,以減小求解誤差:

                                                                   minJ(T) =\sum_{i=1}^{N}\left \| Z_i - TP_i \right \|^2_2                           (1-2)

變化矩陣的形式如下:

                                                                                  T =\left [ \begin{matrix} R & t \\ 0 & 1 \\ \end{matrix} \right ]

變化矩陣T包含了旋轉R與平移t信息,其重要性質:兩個矩陣T相乘得到的同樣是一個變化矩陣。比如矩陣T1和T2表示兩個變化矩陣,則:

                                                     T_1\cdot T_2 =\left [ \begin{matrix} R_1\cdot R_2 & t_1+R_1t_2 \\ 0 & 1 \\ \end{matrix} \right ] = T =\left [ \begin{matrix} R & t \\ 0 & 1 \\ \end{matrix} \right ]

因此變化矩陣T恰好是一個李羣,即對乘法封閉的李羣。我們的目的是求解問題(1-2),即優化變量爲T,優化問題爲最小二乘問題,可以利用李羣的性質求解優化問題(1-2)。

2 不用李羣求導數的原因

對於最小二乘問題(1-2)求解辦法一般是梯度法,需要求解函數J對矩陣T的導數,並且每次迭代:T_{i+1} = T + \bigtriangleup T。但是李羣T對加法沒有封閉性。比如T1與T2都是變化矩陣,但是T1+T2一定不是變化矩陣,即無法求導得到。因此需要進行轉化,將該問題轉化爲對加法封閉,並且能夠表示變化矩陣信息。

李代數對應李羣,李代數滿足加法,因此可以利用李羣與李代數之間的關係求解導數。

3 李羣與李代數的關係

李羣 = 矩陣集合+運算,比如變化矩陣T對乘法封閉,即構成"實數+乘法"的羣。

李代數描述了李羣的導數,是向量。

旋轉矩陣R構成的李羣對應的李代數是旋轉向量,變化矩陣T構成的李羣對應的李代數是旋轉向量與平移向量組成的六維向量,slam中只用到這兩個羣的概念,其餘的不會。並且這兩個李羣與對應的李代數是一一對應的。(角度固定在\pm \pi之間。)

李羣轉化爲李代數通過對數映射,李代數轉化爲通過指數映射完成。具體如下:

 

a表示單位方向,\theta爲模長,即旋轉向量\phi = \theta \cdot a

4 左乘擾動模型理解

旋轉矩陣的左乘擾動模型求導:

假設對空間點P進行了旋轉R操作,需要求RP關於R的導數,求導方法是對R進行一次擾動\bigtriangleup R。設R的李代數爲\phi\bigtriangleup R的李代數爲\bigtriangleup \varphi。對\varphi求導:

                                             

理解:我們的目的是迭代求解出旋轉矩陣,只要能夠求解出優化方程中的旋轉矩陣,使目標函數逐漸減小即可。因此給旋轉矩陣乘以一個旋轉矩陣微小擾動,然後對該擾動求解導數,此時變量變成了微小擾動。如果能夠求解出該微小擾動,並且該微小擾動可以使目標函數減小,說明該微小擾動作爲更新量是可行的,迭代公式變爲\phi _{i+1} = \phi+\bigtriangleup \varphi

同理變化矩陣的左乘擾動模型求導如下:

 

 

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