Loading [MathJax]/jax/output/CommonHTML/jax.js

2021年11月29日 星期一

三維空間轉換與李理論(五)

先複習以前寫過的相關文章:

本文將以參考資料 [1, 2, 3, 4] 的內容為基礎整理出一份完整的筆記。

切線空間的另一個例子:三維旋轉 SO(3)

SO(3) 的 identity 為 I3,因此我們想要找的是在 I3 的切線空間。於前文李群、李代數與三維空間旋轉 Lie Group & Lie Algebra中已經推導過式子: ˙R=ω×=[0ωzωyωz0ωxωyωx0]so(3)此李代數對應的向量空間為 R3ω=[ωx,ωy,ωz]T 來表示。在此例子中我們可以定義其 hat 與 vee operators:

  • hat:  ω=ω×
  • vee: ω×=ω

Exponential map & logarithmic map

前面提過 exp map 為李代數至李群的轉換,而 log map 是李群至李代數的轉換,以下用 SO(2) 的例子來解釋 exp map 及 log map。

SO(2) 的李群為 R_{2 \times 2},李代數為 θ×=θ1×,因此 exp map 及 log map 的關係為:

  • R=exp(θ×)
  • θ×=log(R)

我們可以用泰勒展開式來展開 exp(θ×),會得到以下結果: exp(θ×)=I cosθ+1× sinθ=[cosθsinθsinθcosθ]另外在 [2] 中用了大寫的記號 Exp 及 Log,代表了連著 hat/vee operators 將李群與李代數對應的向量空間直接做轉換。下圖為 [2] 中的示意圖:

Exp and Log map

SO(3) 與 SE(3) 的 exp map & log map

我們想要算的是由李代數 so(3) 的向量空間 ω 映射至其李群 SO(3)。把 ω 分解成 θn,而 θ 是此向量的 norm,在前文中已經推導出結果: exp(ω)=cosθI+(1cosθ)nnT+sinθnI3+sinθθω+1cosθθ2(ω)2也可以直接從 ω 轉換至 quaternion,當 ω0 時 exp map 後的 quaternion 為 [1,0,0,1]T,而一般式為:(Eq. 11) eωq=[cos|ω|2,sin|ω|2|ω|ω]T而從旋轉矩陣及 quaternion 的 log map 分別為 [1] 中的式 (9.16) 與 (9.17)。

SE(3) 的 exp map 及 log map 在 [1] 中的式 (9.22) 與 (9.24-9.25) 有詳細解說。

李群的運算子

由於有了 exp map 以及李群本身的運算子,我們可以定義李群的加法與減法運算子:

  • 加法:XωXExp(ω)
  • 減法:YXLog(X1Y)

利用這兩個運算子,我們便可以直接將李群與一個向量相加或相減了。

Adjoint 矩陣

我們用 [2] 的示意圖來解釋 adjoint 的概念:

Adjoint

由上圖的第二式可知 X 之左側與右側會對應到不同的向量才會變成相同的李群 Y。Adjoint 便是這兩個不同向量之間的變換關係式。Adjoint 與 adjoint matrix 的詳細推導可以參考 [2] 的式 (29) 至 (34)。

 

參考資料

[2] A micro Lie theory for state estimation in robotic

[3] Lie theory cheat sheet 

[4] Lie theory for the roboticis

 

沒有留言:

張貼留言