歐拉角、旋轉矩陣、四元數、萬向死鎖

描述一個三維物體方向的變化,可以用歐拉角來表示,參考https://www.cnblogs.com/flyinggod/p/8144100.html

歐拉角有兩種: 
靜態:即繞世界座標系三個軸的旋轉,由於物體旋轉過程中座標軸保持靜止,所以稱爲靜態。 
動態:即繞物體座標系三個軸的旋轉,由於物體旋轉過程中座標軸隨着物體做相同的轉動,所以稱爲動態。 
使用動態歐拉角會出現萬向鎖現象;靜態歐拉角不存在萬向鎖的問題。

旋轉矩陣:

  • 對於兩個三維點 p1(x1,y1,z1),p2(x2,y2,z2),由點 p1 經過旋轉矩陣 R 旋轉到 p2,則有

 

注:旋轉矩陣爲正交矩陣R·R^T=E,其中R^T是R的轉置

以上三種旋轉變化,都是針對固定於自身的座標系來說的,如果一個物體先繞自己的X轉、再繞自己的Y轉,最後繞自己的Z轉,旋轉後的座標P2與P1的關係就是:,需要注意的是,矩陣的點乘運算極大多數情況下並不滿足交換律,也即:A·B≠B·A

也即,例如:

 

     而如果繞y軸旋轉不等於90°(1°也好89°也好),只要選擇適當的繞x和z的角度,就可以讓手機指向三維空間中的任何一個方向,手機是自由的,也就不會遇到萬向鎖現象。

 

 

三維旋轉中的萬向死鎖

現象描述:在描述前,先做幾個定義,繞X轉稱爲偏航、繞Y轉稱爲俯仰、繞Z轉稱爲滾轉,上述三個軸指的是固定於飛機上的座標軸。初始t0時,飛機水平飛行中,我們把此刻飛機的姿態(θx, θy, θz)定義爲(0,0,0),接下來t1時刻,飛機依次分別繞自己的三個軸XYZ轉過了一定角度,假設爲(30,80,-40),這個座標就稱爲t1時刻飛機的姿態(相對於t0時刻的姿態),飛機繼續做特技,t2時刻其姿態角爲(30,90,-40),這個姿態也是相對於t0時刻的姿態。

在t0到t1的這段時間內,飛機是均勻的從s1姿態變爲s2姿態的的,t1到t2時間段內也是均勻變化的。如果飛機從s3姿態變爲s2姿態,也是可以均勻變化的。

按照t1到t2均勻變化的情況,在t2-Δt這一時刻(Δt無限小),飛機的姿態s_3肯定=(30,90-Δθ,-40),其中Δθ爲一個無限小的角度。

下面再看另一種飛行過程,只給出3個關鍵幀:s1‘=(0,0,0),s2’=(70,80,0),s3‘=(70,90,0)

那麼在t2’-Δt這一時刻(Δt無限小),飛機的姿態s_3‘肯定=(70,90-Δθ,0),其中Δθ爲一個無限小的角度。

我們要注意的是,s3姿態和s3’姿態,其實是同一個姿態,這是因爲把Y轉動90度以後的Z軸,和Y轉動90度以前的X軸,是平行的或者說共線的,也即,繞Z的旋轉,可以用繞X的反旋轉來代替,也即當a-b=c-d時,姿態(a,90,b)和姿態(c,90,d)就是同一個姿態。

這時問題來了,看下面這種姿態變化情況

s3和s3’其實是同一個姿勢,那麼s_3 ----- s3-------s3' ---------s_3',就簡化爲s_3 ----- s3 ---------s_3',s_3和s3幾乎是同一個姿態,再次簡略一下,上圖的4次姿態變化,其實就是s_3 ------s_3'。

也即,飛機要在2*Δt的時間段內(Δt無限小),把姿態由(30,90-Δθ,-40)變爲(70,90-Δθ,0),可以看到,繞X和繞Z的角度必須要突變才能完成這個動作

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章