核心
歐拉角
描述的是一種變換,只關注變換后的結果,不關注變換過程中的運動
而四元數
不僅良好地表示了一種變換,也很好地表示了一種運動過程,又避免了萬向節死鎖Gimbal Lock- 變換順序,是歐拉角變換的一部分,僅僅說明三個軸的角度是不完整的;在用歐拉角說明某一個物體的姿態時,一定要加上先后順序
- 無論是歐拉角還是四元數,它們都只描述旋轉,不包含任何拉伸平移
從低維開始
參考3B1B的四元數視頻
在復頻域分析中,我們常見的 j j j 或者 i i i 其實就是一種旋轉表示
如 e π i e^{\pi i} eπi 表示繞某一個軸旋轉180°
即:(歐拉公式,可從三角函數推得) e i θ = s i n θ + i c o s θ e^{i \theta} = sin\theta + icos\theta eiθ=sinθ+icosθ
令: w = s i n θ w = sin\theta w=sinθ, x = c o s θ x = cos\theta x=cosθ
進而: e i θ = w + x i e^{i \theta} = w + x i eiθ=w+xi
也就是說,我們用兩個量描述了一個在二維平面中的旋轉,但是這兩個量滿足某種約束關系(本質上是一個量分解出的兩個量,用一維的量描述了二維的旋轉)
舉例來說, 0 + 1 i 0+1i 0+1i表示逆時針旋轉90°, 2 2 ? 2 2 i \frac{\sqrt2}{2}-\frac{\sqrt2}{2}i 22???22??i表示順時針旋轉45°
進入高維
就像常規復數描述二維旋轉時,一個二維單位圓覆蓋了整個一維空間,一個三維單位球覆蓋了整個二維空間,同樣的,一個四維的單位超球也會覆蓋整個三維空間;
相應的,我們用一維量描述二維旋轉,用二維量描述三維旋轉,那么我們用三維量描述四維旋轉就合乎情理了
事實上,四元數描述的是四維中單位超球的旋轉,三維坐標系的原點是 1 + 0 i + 0 j + 0 k 1+0i+0j+0k 1+0i+0j+0k,這是由超球的投影決定的,球上的該點投影下來,正好落在原點處
對于四元數來說:
q = w + x i + y j + z k q = w+xi+yj+zk q=w+xi+yj+zk
w ∈ [ 0 , 1 ] , x , y , z ∈ [ ? 1 , 1 ] w∈[0, 1], \ \ x, y, z∈[-1, 1] w∈[0,1],??x,y,z∈[?1,1]的部分(正實部的部分)被映射到了三維坐標系中的單位球中,其他部分(負實部的部分)映射到了三維單位球以外的空間
但請時刻記住:無論這個四元數的點映射到三維空間的哪里,它原本所在的位置都是那個四維單位超球,滿足 w 2 + x 2 + y 2 + z 2 = 1 w^2+x^2+y^2+z^2=1 w2+x2+y2+z2=1
此外,等價于普通復數的虛軸表示二維中的一個圓,在四元數中, i , j , k i, j, k i,j,k 每個軸都代表超球上的一個圓環,進一步的,三維中的每一個平面,都代表了超球上的一個球面
四元數運算
運算的本質
讓我們回憶一下文章開頭所講的:
四元數不僅是變換,也是一種狀態
因此,四元數乘法可以類比于矩陣向量運算
當兩個四元數相乘時,可以認為是一個四元數狀態應用了另一個四元數變換,從而得到下一個四元數狀態,
換而言之,變換將狀態量的四個基分別應用了該變換,再重新組成了新的狀態量
對應的幾何含義
四元數變換所描述的旋轉方向符合右手螺旋定則
舉例來說:右手拇指從1指向 i ,當應用 i 變換時,jk圓會繞著手指蜷曲的方向旋轉;
推廣:右手拇指從1指向變換四元數,當應用該變換時,垂直于該四元數向量的圓會繞著手指蜷曲的方向旋轉
每應用一次單位四元數變換,相當于繞某一個軸旋轉90度,連續應用4次就轉回來了
由此,我們可以簡單得出一個性質:四元數運算不滿足乘法交換律