旋转矩阵
所谓旋转,是指一个坐标系到另一个坐标系的变换。一个坐标系,对应着一种描述世界的“尺度”和“角度”,这里我们描述的对象为向量(vector)。
假定存在目标向量α\alphaα,α\alphaα客观存在,客观静止。此时我想要去描述这个向量,那么我可以选定一个参考系(坐标系),以此为基准去描述该向量。假设此时有两个参考系W(大地坐标系)和B(机体坐标系),在W下α\alphaα为kw=(x0,y0,z0)k_w=(x0,y0,z0)kw=(x0,y0,z0),而在B下α\alphaα为kb=(x1,y1,z1)k_b=(x1,y1,z1)kb=(x1,y1,z1),那么这两个向量其实描述的是一个东西,只是参考系不同。
由于W和B之间存在一个相对位置关系,因此不难理解kw和kb之间也存在着一个“必然”的联系,而这个“联系”就是所谓的“旋转矩阵”。存在这样一个关系:
kb=Cwb∗kw k_b=C_w^b * k_w kb=Cwb∗kw
CwbC_w^bCwb便是“W坐标系到B坐标系”的旋转变化矩阵,CwbC_w^bCwb只跟W和B的相对位置关系有关,反映了W到B的一个“变化”,可以把它理解为一个“动作”。
那么具体拆解,CwbC_w^bCwb是一个3*3的矩阵∣abcdefghi∣\left|\begin{matrix} a & b & c \\ d & e & f \\ g & h & i \end{matrix} \right| adgbehcfi ,如果更具象一点理解它,该矩阵的每一列分别代表了W坐标系xyz三轴在B系的投影,比如说,原先XwX_wXw在W系下描述为(1,0,0),而XwX_wXw(仍如刚才所说,向量客观静止不变)在B系下的描述就为(a,d,g)。
事实上,正如刚才所说,CwbC_w^bCwb只跟W和B的相对位置关系有关,因此,对于任何一个向量,关于其在W和B下的描述,都存在上述的变换关系。
而想要将向量从B系的描述转为W系的描述,自然也存在一个CbwC_b^wCbw,而CwbC_w^bCwb与CbwC_b^wCbw又“恰巧”存在这样一个关系:
Cbw=(Cwb)T C_b^w = (C_w^b)^T Cbw=(Cwb)T
欧拉角
欧拉角在姿态的描述非常的常见,那么它与刚才的旋转矩阵又有什么样的关系呢?还记得刚才提过,旋转矩阵是描述W到B的“动作”,那么这个“动作”的具体分解其实就是欧拉角。
W到B的动作过程中,我们肯定希望动作的过程“有序”,“规范”,而不是“稀里糊涂”就过去了,这样显然更利于我们的理解和描述。自然而然的,我们想到W先绕某个轴旋转若干度,再绕某个轴旋转若干度。。。最后与B重合。这就与我们的欧拉角很接近了。
一般我们如下图建立坐标系,机头方向为X,机翼方向为Y,上下为Z。

默认地,称绕Z轴旋转的角为偏航角(yaw,ψ\psiψ),绕Y轴旋转的为俯仰角(pitch,θ\thetaθ),绕X轴旋转的角为横滚角(roll,ϕ\phiϕ)。建系的同时也规定了旋转的正方向,即:
从原点向轴的正方向看,顺时针为该轴旋转的正方向 从原点向轴的正方向看,顺时针为该轴旋转的正方向 从原点向轴的正方向看,顺时针为该轴旋转的正方向
那么假定W和B现在都确定了,我现在想要用欧拉角来描述W到B的变换,那么这个“描述”与什么有关呢?假设我有以下两次描述:
| 第一次: |
|---|

本文围绕旋转矩阵、欧拉角和四元数展开。介绍了旋转矩阵是描述坐标系变换的矩阵,欧拉角是对旋转动作的具体分解,二者可相互转换,但欧拉角存在万向节死锁问题。还引入轴角法构建四元数,四元数能消除死锁,且与旋转矩阵也有确定的转换关系。
最低0.47元/天 解锁文章
1011

被折叠的 条评论
为什么被折叠?



