旋轉矩陣、尤拉角、四元數、軸/角之間的轉換
轉自:http://blog.csdn.net/xuehuafeiwu123/article/details/74942989
並做修改
參考:
http://blog.csdn.net/yc461515457/article/details/51126352
http://www.xieguofang.cn/Maths/3D_Rotation/Guofang_Xie%27s_Formulas_for_3D_Rotation_Ch.htm
https://en.wikipedia.org/wiki/Rotation_matrix
https://en.wikipedia.org/wiki/Axis%E2%80%93angle_representation
在機器人學中,表示旋轉的有四種方式。四種方式之間的轉換整理出來如下。
-
尤拉角(RPY)
繞
Z
軸旋轉稱為迴轉(Roll),繞Y
軸旋轉稱為俯仰(Pitch),繞X
軸旋轉稱為偏轉(Yaw)。{A}為參考座標系,將{A}分別按順序沿 xA,yA,zA 旋轉 γ,β,α 後,和{B}重合,{A}和{B}之間的旋轉方程:
ABRxyz=(γ,β,α)=R(zA,α)R(yA,β)R(xA,α) -
四元數
是角/軸的擴充套件。
-
軸/角
描述一個座標系沿某一條直線旋轉一定的角度,即與另一個座標系重合。
經常要用到他們之間的相互轉換。
一、旋轉矩陣
1、旋轉矩陣轉換為尤拉角
ABRxyz(γ,β,α)=⎡⎣⎢r11r21r31r12r22r32r13r23r33⎤⎦⎥
⎧⎩⎨⎪⎪⎪⎪β=atan2(−r31,r211+r221−−−−−−−√)∈[−π/2,π/2]α=atan2(r21,r11)γ=atan2(r32,r33)
⎧⎩⎨⎪⎪⎪⎪β=atan2(−r31,r211+r221−−−−−−−√)∈[π/2,3π/2]α=atan2(−r21,−r11)γ=atan2(−r32,−r33)
2、旋轉矩陣轉化為 角/軸
R=⎡⎣⎢r11r21r31r12r22r32r13r23r33⎤⎦⎥
θ=acos(r11+r22+r33−12)
r→=12sinθ⎡⎣⎢r32−r23r13−r31r21−r12⎤⎦⎥
3、旋轉矩陣轉化為四元數
R=⎡⎣⎢r11r21r31r12r22r32r13r23r33⎤⎦⎥
w=r11+r22+r33+12
v→=12⎡⎣⎢⎢sgn(r32−r23)r11−r22−r33+1−−−−−−−−−−−−−−√sgn(r13−r31)r22−r11−r33+1−−−−−−−−−−−−−−√sgn(r21−r12)r33−r22−r11+1−−−−−−−−−−−−−−√⎤⎦⎥⎥
二、尤拉角(RPY)
1、尤拉角轉換為旋轉矩陣
ABRxyz(γ,β,α)=⎡⎣⎢cαcβsαcβ−sβcαsβsγ−sαcγsαsβsγ+cαcγcβsγcαsβcγ+sαsγsαsβcγ−cαsγcβcγ⎤⎦⎥
三、四元數
1、四元數轉化為旋轉矩陣
R=⎡⎣⎢⎢2(w2+v2x)−12(vxvy+wvz)2(vxvz−wvx)2(vxvy−wvz)2(w2+v2y)−12(vyvz+wvx)2(vxvz+wvx)2(vyvz−wvx)2(w2+v2z)−1⎤⎦⎥⎥
四、軸/角
1、軸/角 轉化為旋轉矩陣
R=⎡⎣⎢r2x(1−cθ)+cθrxry(1−cθ)+rzsθrxrz(1−cθ)-rysθrxry(1−cθ)−rzsθr2y(1−cθ)+cθryrz(1−cθ)+rxsθrxrz(1−cθ)+rysθryrz(1−cθ)−rxsθr2z(1−cθ)+cθ⎤⎦⎥
相關文章
- 尤拉角和旋轉矩陣之間的轉換矩陣
- 旋轉矩陣與尤拉角的相互轉換矩陣
- 旋轉的數學表達:尤拉角、軸向角、四元數與矩陣矩陣
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- 角軸與反對稱矩陣矩陣
- 三維空間座標系變換-旋轉矩陣矩陣
- [轉]旋轉矩陣:點旋轉和座標系旋轉矩陣
- 空間旋轉矩陣怎麼表示矩陣
- 三維空間中物體兩次旋轉之間的連續旋轉矩陣計算矩陣
- three.js 尤拉角和四元數JS
- Unity開發中常用的基礎3D數學(向量,點乘,叉乘,矩陣,四元數,尤拉角)Unity3D點乘矩陣
- 第四個OpenGL程式,vector 向量 (矩陣變換之 旋轉,縮放)矩陣
- 三維旋轉矩陣推導矩陣
- 二維旋轉矩陣推導矩陣
- 尤拉角和萬向節鎖
- 圓角頭像加360旋轉效果
- 三維空間變換中旋轉矩陣左乘與右乘的區別矩陣
- THREE 矩陣優先原則和平移旋轉矩陣矩陣
- 3D旋轉矩陣的推導3D矩陣
- 單像空間後方交會計算旋轉矩陣矩陣
- 尤拉計劃621:把整數表示為三角數之和
- 圖形學 旋轉與投影矩陣—2矩陣
- 圖形學 旋轉與投影矩陣-3矩陣
- 圖形學 旋轉與投影矩陣—1矩陣
- 尤拉計劃747:三角披薩
- 矩陣旋轉-Eigen應用(QTCreator編輯器)矩陣QT
- 尤拉計劃705:除數序列的逆轉次數
- 三維旋轉矩陣 左乘和右乘分析矩陣
- 遊戲動畫中尤拉角與萬向鎖的理解遊戲動畫
- 【Go】IP地址轉換:數字與字串之間高效轉換Go字串
- Games101:繞任意軸旋轉GAM
- 矩陣轉置矩陣
- 指標-矩陣下三角元素之和指標矩陣
- LeetCode 1329按矩陣對角線排序(java)LeetCode矩陣排序Java
- 為什麼遊戲要提供視角X\Y軸反轉功能?遊戲
- blender python api -修改骨架中特定骨骼的變換,包括沿不同軸的旋轉、位置和縮放(旋轉為四元數運算WXYZ)PythonAPI
- 劍指offer:旋轉陣列的最小數字陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 每日一題/005/矩陣/數學歸納法/設A的順序主子式均不為0.則有下三角矩陣B,使得BA是上三角矩陣,每日一題矩陣