旋转矩阵R 的构成过程
坐标旋转矩阵R构成过程为:首先将坐标轴绕X轴逆时针旋转φ,得旋转矩阵RX;再将坐标轴绕新的Y轴逆时针旋转ψ,得旋转矩阵RY,最后将坐标轴绕新的Z轴逆时针旋转θ,得旋转矩阵RZ;将以上3次旋转合并即可得坐标旋转矩阵R。
其中:
旋转(出自维基百科)
主条目:Tait-Bryan角
生成旋转矩阵的一种简单方式是把它作为三个基本旋转的序列复合。关于右手笛卡尔坐标系的x-, y- 和 z-轴的旋转分别叫做 pitch, yaw 和 roll 旋转。因为这些旋转被表达为关于一个轴的旋转,它们的生成元很容易表达。
这里的 是 roll 角。
这里的 是 pitch 角。
这里的 是 yaw 角。
下边是常用的几种形式:
形式1:先绕 X,再绕Y,再绕Z,即X-Y-Z型
R1=RzRyRx 1-2-3
[ cosy*cosz, cosz*sinx*siny - cosx*sinz, sinx*sinz +cosx*cosz*siny]
[ cosy*sinz, cosx*cosz + sinx*siny*sinz, cosx*siny*sinz - cosz*sinx]
[ -siny, cosy*sinx, cosx*cosy]
· 形式2:Yaw(偏航):欧拉角向量的y轴
· Pitch(俯仰):欧拉角向量的x轴
· Roll(翻滚): 欧拉角向量的z轴
想象一下飞机,yaw指水平方向的机头指向,它绕y轴旋转。Pitch指与水平方向的夹角,绕x轴旋转。Roll指飞机的翻滚,绕z轴旋转。
Y-Z-X型 1-3-2
R2=RxRzRy
[cosy*cosz, -sinz, cosz*siny]
[ sinx*siny +cosx*cosy*sinz, cosx*cosz, cosx*siny*sinz - cosy*sinx]
[ cosy*sinx*sinz -cosx*siny, cosz*sinx, cosx*cosy + sinx*siny*sinz]
形式三:出自维基百科
在三维空间中,旋转可以通过三个欧拉角 来定义。有一些可能的欧拉角定义,每个都可以依据 roll, pitch 和 yaw 的复合来表达。依据 "z-x-z" 欧拉角,在右手笛卡尔坐标中的主动旋转矩阵可表达为:
进行乘法运算生成:
3 Z-X-Z R4=RzRxRz 3-1-3
R3=Rz(r)RxRz(y)
[ cosz_ya*cosz_ro -cosx*sinz_ya*sinz_ro, - cosz_ya*sinz_ro - cosx*cosz_ro*sinz_ya, sinx*sinz_ya]
[ cosz_ro*sinz_ya +cosx*cosz_ya*sinz_ro, cosx*cosz_ya*cosz_ro- sinz_ya*sinz_ro, -cosz_ya*sinx]
[sinx*sinz_ro, cosz_ro*sinx, cosx]
4 Y-X-Z R4=RzRxRy 2-1-3
[ cosy*cosz -sinx*siny*sinz, -cosx*sinz, cosz*siny + cosy*sinx*sinz]
[ cosy*sinz +cosz*sinx*siny, cosx*cosz, siny*sinz -cosy*cosz*sinx]
[-cosx*siny, sinx, cosx*cosy]