慣性導航之認識四元數(四)

2021-07-05 18:21:09 字數 2809 閱讀 8051

之前說到,使用尤拉角積分和方向余弦積分求得角度並不合適,而比較合適的是四元數。

在討論「四元數」之前,我們來想想對三維直角座標而言,在物體旋轉會有何影響,可以擴充三維直角座標系統的旋轉為三角度系統(three-angle system),在game programming gems中有提供這麼一段:

簡單地說,三角度系統無法表現任意軸的旋轉,只要一開始旋轉,物體本身即失去對任意軸的自由性。(引自四元數與旋轉)

工具:

四元數是簡單的超複數。 複數是由實數加上虛數單位 i 組成,其中i^2 = -1。 相似地,四元數都是由實數加上三個虛數單位 i、j、k 組成,而且它們有如下的關係: i2

=j2=

k2=−

1 ,i0

=j0=

k0=1

, 每個四元數都是 1、i、j 和 k 的線性組合,即是四元數一般可表示q=

a+bk

+cj+

di

四元數的表示式:

虛數單位滿足:

我們可以從複數來認識四元數,順便說一下四元數的來歷。在二維空間中,複數可以和復平面中的點一一對應,並且可以表示二維空間中的旋轉。但是到了三維空間中呢?愛爾蘭數學家哈密頓在將複數延伸到三維空間中時,想使用q=a+bi+cj來表示和三維空間中的點對應,但是遇到了乙個問題,這個『三元數』的乘法和除法該怎麼計算呢?例如,i*j應該等於多少?而最終,哈密頓犧牲了乘法交換律創造了四元數,虛數單位可以得到完整的乘法表:–1

ijk11ij

kii-1k

-jjj

-k-1

ikkj-i

-1 這樣,相應的加減乘除也得到了解決。

四元數的運算:

設有兩個四元數:

加法定義為:

乘法遵循分配律:

單位四元數,範數(模長)為1:

定義四元數q=

w1+x

1i+y

1j+z

1k的共軛為:

四元數的倒數為:

具體的四元數的運算在這裡就不說了,維基百科四元數里有比較詳細的解釋。

總之,四元數是類似複數的超複數,有三個虛數單位。為了延伸到三維空間產生,可以表示三維空間裡的點,三維空間的旋轉。

用四元數來表示旋轉要解決兩個問題,一是如何用四元數表示三維空間裡的點,二是如何用四元數表示三維空間的旋轉。

四元數表示空間中的點

若三維空間裡的乙個點的笛卡爾座標為 (x,y,z),則它用純四元數(類似於純虛數,即實部為0的四元數)xi

+yj+

zk表示。

單位四元數表示乙個三維空間旋轉

設 q 為乙個單位四元數,而 p 是乙個純四元數,定義 rq

(p)=

qpq−

1

則 rq(p)) 也是乙個純四元數,可以證明 rq 確實表示乙個旋轉,這個旋轉將空間的點 p 旋轉為空間的另乙個點 rq(p))。(引自維基百科:四元數與空間旋轉)

看了上面的解釋還是不是很好理解,那麼,四元數是怎樣表示空間中的旋轉的呢?先從二維空間中的複數看起。

複數的表達形式:

我們還需要知道一點,尤拉公式:

尤拉公式證明可以有泰勒級數或者求導證得,這裡不多說。

由複數的各種表現形式和尤拉公式,可以推導出:

則對於複數z和單位複數ei

θ=cosθ+i

sinθ

的乘積ze

iθ可以解讀為點

z 在二維復平面中逆時針旋轉了

θ經度,或者向量(a

,b) 在復平面中逆時針旋轉了

θ 度。即:z=

a+bi

可以表示為向量(a,b)旋轉了

θ 度,θ=

arctan(b

/a) 。

模擬於此,四元數z=

a+bi

+cj+

dk=r

eiθ 也可以表示乙個旋轉,不過不如複數那樣明確,難以想象在r4

中的四元數是對r3

中的向量怎樣執行運算的。

仿照關於單位複數的尤拉公式的證明方法,可以得到單位四元數的尤拉公式: eθ

2(xi

+yj+

zk)=

cosθ2+

(xi+

yj+z

k)sinθ2,

for x,

y,z∈

rs.t. x2

+y2+

z2=1

(引自維基百科:四元數與空間旋轉)

這裡直接給出四元數表示旋轉的約定。首先明確一點:

乙個有固定點的剛體通過繞該軸旋轉特定角度就可以達到任何姿態。

轉軸可以表示成為乙個單位向量:

描述該轉動的四元數為:

最終表示為:

四元數可以表示旋轉的轉軸和角度。

慣性導航之四元數與歐垃角互轉(五)

雖然還沒有搞得特別明白,這一次說一下四元數與尤拉角之間的轉換。單位四元數 unit quarternion 可以用於表示三維空間裡的旋轉 1 它與常用的另外兩種表示方式 三維正交矩陣和尤拉角 是等價的,但是避免了尤拉角表示法中的萬向鎖問題。比起三維正交矩陣表示,四元數表示能夠更方便地給出旋轉的轉軸與...

四元數乘法 旋轉之四 四元數

用 表示四元數是為了紀念其發明者 hamilton.其中 可以根據 來推導以下式子 跟複數類似,我們可以把四元數寫成 它的基是 或者 類似複數,四元數的模長 範數norm 定義為 也可寫成 同複數的乘法不同,四元數乘法不遵守交換律,所以有左乘和右乘的說法,結合律和分配律還是滿足的。類似的,我們也可以...

四元數基礎

以下內容摘自 3d數學基礎 圖形與遊戲開發 清華大學出版社 四元數 繞軸n旋轉 角 n是乙個向量,根據左手或右手法則定義旋轉的正方向,角表示旋轉的量。那麼表示這個旋轉的四元數為 幾何上存在兩個單位四元數,它們代表沒有角位移 任意四元數乘以乙個幾何單位四元數得到的角位移相同 雖然乘以兩種形式得到q和 ...