1. 程式人生 > >《視覺slam十四講》之第3講-三維剛體運動

《視覺slam十四講》之第3講-三維剛體運動

 

第三講:三維空間剛體運動

旋轉的幾種表達方式

向量

  • 關於向量:

注:其中e,e2,e3為線性空間下的一組基。

  • 向量的內積:

注:向量的內積表示向量間的投影關係。

  • 向量的外積

注:可以使用外積表示向量的旋轉。

注:^ 記成一個反對稱符號。

旋轉矩陣

假設某個單位正交基(e1; e2; e3) ,經過一次歐式變換,變成了(e′ 1; e′ 2; e′ 3),對於同一個向量 a (注意該向量並沒有隨著座標系的旋轉而發生運動),它在兩個座標系下的座標為 [a1; a2; a3]T 和 [a′ 1; a′ 2; a′ 3]T:

整理可得:

注:旋轉矩陣R是一個行列式為 1 的正交矩陣。反之,行列式為 1 的正交矩陣也是一個旋轉矩陣。

  • 特殊正交群

 

注:SO(n) 是特殊正交群( Special Orthogonal Group)的意思。

注:RT 刻畫了一個相反的旋轉。

變換矩陣和齊次座標

  • 特殊歐式群

注:變換矩陣T的逆表示反向的變換

旋轉向量

  1. SO(3) 的旋轉矩陣有九個量,但一次旋轉只有三個自由度。因此這種表達方式是冗餘的。
  2. 旋轉矩陣自身帶有約束:它必須是個正交矩陣,且行列式為 1。這些約束會使得優化求解變得更困難。

任意旋轉都可以用一個旋轉軸和一個旋轉角來刻畫。假設有一個旋轉軸為 n,角度為 θ 的旋轉,顯然,它對應的旋轉向量為 θn。由羅德里格斯公式可知:

  • 旋轉向量->旋轉矩陣

 

  • 旋轉矩陣->旋轉向量

注:轉軸 n 是矩陣 R 特徵值 1 對應的特徵向量。 

尤拉角

尤拉角則提供了一種非常直觀的方式來描述旋轉——它使用了三個分離的轉角,把一個旋轉分解成三次繞不同軸的旋轉。
假設一個剛體的前方(朝向我們的方向)為X 軸,右側為 Y 軸,上方為 Z 軸,見圖 3-3。那麼, ZY X 轉角相當於把任意旋轉分解成以下三個軸上的轉角:

  • 繞物體的 Z 軸旋轉,得到偏航角 yaw;
  • 繞旋轉之後的 Y 軸旋轉,得到俯仰角 pitch;
  • 繞旋轉之後的 X 軸旋轉,得到滾轉角 roll。

注:尤拉角的一個重大缺點是會碰到著名的萬向鎖問題( Gimbal Lock)

四元數

四元數是 Hamilton 找到的一種擴充套件的複數. 它既是緊湊的,也沒有奇異性

一個四元數 q 擁有一個實部和三個虛部。

人們也用一個標量和一個向量來表達四元數:

注:我們能用單位四元數表示三維空間中任意一個旋轉

四元數與旋轉向量的對應關係

  • 旋轉向量->四元數

  • 四元數->旋轉向量

注:在四元數中, 任意的旋轉都可以由兩個互為相反數的四元數表示。

四元數的運算

1. 加法和減法

2. 乘法

3. 共軛

4. 模長

5. 逆

6. 數乘與點乘

用四元數表示旋轉

注:p′表示為三維點 p經過四元數 q 旋轉後的三維點。

四元數與旋轉矩陣的關係

  • 四元數->旋轉矩陣

  • 旋轉矩陣->四元數

關於其他幾種變換

相似變換

相似變換比歐氏變換多了一個自由度,它允許物體進行均勻的縮放,其矩陣表示為:

 

仿射變換

與歐氏變換不同的是,仿射變換隻要求 A 是一個可逆矩陣,而不必是正交矩陣。仿射變換也叫正交投影。經過仿射變換之後,立方體就不再是方的了,但是各個面仍然是平行四邊形:

 

射影變換

射影變換是最一般的變換,它左上角為可逆矩陣 A,右上為平移 t,左下縮放 aT。2D 的射影變換一共有 8 個自由度, 3D 則共有 15 個自由度。

從真實世界到相機照片的變換可以看成一個射影變換。