2020年8月2日 星期日

李群、李代數與三維空間旋轉 Lie Group & Lie Algebra

這篇文章要講的東西比較抽象一點,我在讀的時候也是參考了非常多材料,希望能把李群與李代數的原理給整理明白。

我們上一篇文章中講到在機器人中常用單位四元數 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 與旋轉向量的關係式完全一樣。

參考資料

[2] 李群, 維基百科

沒有留言:

張貼留言