這篇文章要講的東西比較抽象一點,我在讀的時候也是參考了非常多材料,希望能把李群與李代數的原理給整理明白。
我們上一篇文章中講到在機器人中常用單位四元數 unit quaternion 來表示旋轉,但用 unit quaternion 表示旋轉的問題是什麼呢?在解機器人的問題時,我們常常想要找出一個最好的旋轉角度,比如說三維空間中的機器手臂該怎麼旋轉才能抓到物品。找出最好的旋轉是一個最佳化的問題,因此通常都是用梯度下降法來找到 local minimum。這邊問題來了,如果用 unit quaternion 表示旋轉的話,那每一次用梯度更新參數以後,必須再做一次 normalization,因此在計算過程中會慢不少。另外一個原因是我們在上一篇文章中提到兩個 unit quaternion 會對應到一個旋轉矩陣,因此在理論分析上沒有這麼理想。而近幾十年來科學家發現可以用李群與李代數來解決這個問題,因此就成為了最近最常見的方法之一。
以下我們一步步建構李群、李代數與三維空間旋轉的關係。
李群 Lie Group
李群是指具有群結構的光滑微分流形 [2],上一篇文章提到的 SO(3) (special orthogonal group) 在實數空間是連續的,所以 SO(3) 是李群。
李代數 Lie Algebra
李代數描述了李群在單位元素附近的局部性質,也就是在單位元素附近的正切空間 tangent space。因此以下我們從李群 SO(3) 對應的旋轉矩陣 R 的正切空間開始推導:
首先對於任何的旋轉矩陣 \(R\) 一定滿足以下性質:
\[
RR^T=I
\]
我們想要找出 R 的正切空間,因此先假設 R 為時間 t 的函數 \(R(t)\):
\[
R(t)R(t)^T = I
\]
兩邊對於 t 求導數:
\[
\overset{\cdot }{R}(t)R(t)^T + R(t)\overset{\cdot }{R}(t)^T = 0
\]
整理後得到:
\[
\overset{\cdot }{R}(t)R(t)^T = - (\overset{\cdot }{R}(t)R(t)^T)^T
\]
若我們假設 \(\overset{\cdot }{R}(t)R(t)^T\) 為 \(A\),則可以得到 \(A = -A^T\),也就是說 \(\overset{\cdot }{R}(t)R(t)^T\) 是個反對稱矩陣﹝skew-symmetric matrix﹞。這裡我們介紹一組運算子 hat operator 以及 vee operator:
\[
a^{\wedge} = A =
\begin{bmatrix}
0 & -a_3 & a_2\\
a_3 & 0 & -a_1\\
-a_2 & a_1 & 0
\end{bmatrix}
\\
A^{\vee } = a = [a_1, a_2, a_3]
\]
因此對於 \(\overset{\cdot }{R}(t)R(t)^T\) 來說,它是一個反對稱矩陣,所以我們可以假設一個三維向量 \(\phi (t)\) 使得 \(\phi (t)^{\wedge} = \overset{\cdot }{R}(t)R(t)^T\)。接著我們將等號兩邊乘以 \(R(t)\):
\[
\phi (t)^{\wedge}R(t) = \overset{\cdot }{R}(t)R(t)^T R(t) = \overset{\cdot }{R}(t)
\]
我們設 \(t_0 = 0\) 及 \(R(0) = I\),對 \(R(t)\) 用泰勒展開式展開:
\[
R(t) \approx R(t_0) + \overset{\cdot }{R}(t_0)(t - t_0) = I + \phi (t_0)^{\wedge}(t)
\]
因此 \(\phi\) 表示了 R 的局部導數關係,也就是說 \(\phi\) 就是 SO(3) 在單位元素(原點 I)附近的正切空間,因此 \(\phi\) 這個向量就是李群 SO(3) 對應的李代數。假設 \(\phi(t_0) = \phi_0\),則可以得到以下式子:
\[
\overset{\cdot }{R}(t) = \phi_0^{\wedge}R(t)
\]
這個微分方程的解為:
\[
R(t) = exp(\phi_0^{\wedge} t)
\]
SO(3) 的指數映射
我們剛剛導出來 \(R(t)\) 與 \(\phi\) 的關係為 \(exp(\phi^{\wedge}) = R\),而我們稱這個關係為指數映射。接下來的問題是 \(exp(\phi^{\wedge})\) 要怎麼計算呢?
我們先從任意矩陣的指數映射定義開始:
\[
exp(A)=\sum_{n=0}^{\infty}\frac{1}{n!}A^n
\]
因此把 \(\phi^{\wedge}\) 代入 A:
\[
exp(\phi^{\wedge})=\sum_{n=0}^{\infty}\frac{1}{n!}(\phi^{\wedge})^n
\]
在計算的時候我們要用到三個技巧:
- \(\phi\) 是一個三維向量,我們把它分解成 \(\phi=\theta n\),\(n\) 是方向向量 \([n_1, n_2, n_3]\),\(\theta\) 是此向量的長度。
- 先算出 \(n^{\wedge}n^{\wedge}\) 的值,之後可以用來化簡:
\[
n^{\wedge}n^{\wedge}=\begin{bmatrix}
-n_2^2 - n_3^2 & n_1n_2 & n_1n_3\\
n_1n_2 & -n1^2-n_3^2 & n_2n_3\\
n_1n_3 & n_2n_3 & -n_1^2-n_2^2
\end{bmatrix}
= nn^T-I
\]
- 也先算出 \(n^{\wedge}n^{\wedge}n^{\wedge}\) 的值: \[ n^{\wedge}n^{\wedge}n^{\wedge}=n^{\wedge}(nn^T-I)=-n^{\wedge} \]
接著把以上式子都代入:
\[
exp(\phi^{\wedge})=exp(\theta n^{\wedge})=\sum_{i=0}^{\infty}\frac{1}{i!}(\theta n^{\wedge})^i
\\
= I + \theta n^{\wedge} + \frac{1}{2!}\theta^2 n^{\wedge}n^{\wedge} + \frac{1}{3!}\theta^3 n^{\wedge}n^{\wedge}n^{\wedge} + \cdots
\\
= nn^T - n^{\wedge}n^{\wedge} + \theta n^{\wedge} + \frac{1}{2!}\theta^2 n^{\wedge}n^{\wedge} - \frac{1}{3!}\theta^3 n^{\wedge}n^{\wedge}n^{\wedge}+ \cdots
\\
= nn^T + (\theta - \frac{1}{3!}\theta^3 + \frac{1}{5!}\theta^5 - \cdots) n^{\wedge} - (1 - \frac{1}{2!}\theta^2 + \frac{1}{4!}\theta^4 - \cdots)n^{\wedge}n^{\wedge}
\\
= nn^T + sin\ \theta\ n^{\wedge} - cos\ \theta\ n^{\wedge}n^{\wedge}
\\
= n^{\wedge}n^{\wedge} + I + sin\ \theta\ n^{\wedge} - cos\ \theta\ n^{\wedge}n^{\wedge}
\\
= (1-cos\ \theta)n^{\wedge}n^{\wedge} + I + sin\ \theta\ n^{\wedge}
\\
= (1-cos\ \theta) (nn^T - I) + I + sin\ \theta\ n^{\wedge}
\\
= cos\ \theta I + (1-cos\ \theta)nn^T + sin\ \theta n^{\wedge}
\]
上式也就是在講三維空間旋轉的前文中提到的 Rodrigues' Formula。
SO(3) 指數映射的物理意義
經由上面的推導,我們得到了 SO(3) 這個李群中對應的李代數 so(3),so(3) 是由旋轉向量 \(\phi\) 所組成的空間,而通過指數映射,也就是 Rodrigues' Formula,我們能把 so(3) 中的旋轉向量對應至 SO(3) 中的一個旋轉矩陣。反之則能夠使用對數映射將 SO(3) 的旋轉矩陣對應至 so(3) 中的旋轉向量。
SU(2) 的指數映射
我們在前文提過 unit quaternion 與 SU(2) 是同構的關係,而 SU(2) 與 SO(3) 是 surjective group homomorphism 的關係。因此我們依然可以利用指數映射將李代數 so(3) 中的 \(\phi = \theta n\) 轉換成一個 unit quaternion \(q\):
\[
q =
\left\{\begin{matrix}
(1,0,0,0)^T\ \ \ \ \mathrm{,if}\ \mathbf{n} = \mathbf{0}
\\
(cos\frac{\theta}{2}, sin\frac{\theta}{2}\mathbf{n}) \ \ \ \mathrm{,otherwise}
\end{matrix}\right.
\]
以上式子跟 unit quaternion 與旋轉向量的關係式完全一樣。
參考資料
[1] SLAM學習之路#五 李群李代數, CK Wang
[2] 李群, 維基百科
沒有留言:
張貼留言