3D數學基礎————EulerAngles類數學原理

 1.歐拉角的限制

//變成"限制集"歐拉角
void canonize();

(1)歐拉角的表達方式不唯一,會有別名問題。

例如:

pitch:135° 可以轉換爲pitch:45°,heading:180°,bank:180°.

方案:

應該將pitch限制在[-90°,+90°],heading[-180°,+180°],bank[-180°,+180°];

(2)歐拉角會產生萬向鎖的問題

當pitch = 90°時,繞y軸的旋轉和繞z軸的旋轉會相同。

方案

規定當歐拉角處於反向鎖時將繞z軸(bank)的旋轉角度全部賦給y軸(heading)

heading += bank;bank = 0;

2.從矩陣轉換到歐拉角

■(cos⁡h cos⁡b+sin⁡h sin⁡b&-cosh⁡⁡sinb+sin⁡h sin⁡p cos⁡b&sin⁡h cos⁡p@sin⁡b cos⁡p&cos⁡〖b cos⁡p 〗&-sin⁡p@-sin⁡〖h cos⁡〖b+cos⁡〖h sin⁡〖p sin⁡b 〗 〗 〗 〗&sin⁡〖b sin⁡〖h+cos⁡〖h sin⁡〖p cos⁡b 〗 〗 〗 〗&cos⁡〖h cos⁡p 〗 )(1)由慣性—物體歐拉角轉換成的慣性—物體矩陣反推出歐拉角

M = \begin{bmatrix} \cos h\cos b+\sin h\sin b&-\cos h\sin b+\sin h\sin p\cos b &\sin h\cos b \\ \sin b\cos p&\cos b\cos p &-\sin p \\ -\sin h \cos b+\cos h\sin p\sin b& \sin b\sin h+\cos h\sin p\cos b&\cos h\cos p \end{bmatrix}

可得公式

p =\arcsin (-m23)

當cos(p) != 0時(歐拉角不爲萬向鎖時):

h = \arctan (m13/\cos p,m33/\cos p) = \arctan (m13,m33);

b = \arctan (m21/\cos p,m22/\cos p) = \arctan (m21,m22);

當cos(p) == 0時(歐拉角爲萬向鎖時):

b = 0; sin b = 0; sinp  = 1;cosp = 0

 

 

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