RPY角和Euler角

randolf2022年8月9日
大约 3 分钟

RPY角和Euler角

RPY 角和 Euler 角

定义

假设存在两个坐标系 A、B,两者初始时完全重合。

RPY 角 (XYZ)

B 绕着 A 的 X 轴旋转 角,再绕 A 的 Y 轴旋转 角,最后绕着 A 的 Z 轴旋转 角。整个过程,A 不动 B 动。考虑得到的最终的旋转矩阵为 ,代表将 A 坐标系转换到 B。

应该注意到,这里有一点 trick。以第一次旋转为例,B 绕着 A 的 X 轴旋转 角。这里有两种思考方式:

  • 从坐标系的角度来看

    实际完成的坐标系变换是 ,也就是说需要让向量实现这样的变换,应该让对应坐标系实现反转,再将其转换为向量操作意义下的矩阵,应该有实际的操作矩阵为:

  • 从变换的角度来看

    对于一个纯粹的旋转变换 ,其意义就在于将向量实现旋转,将其直接作用在该向量上就成立了。

总之,考虑到整个过程 A 不动,那么对旋转矩阵 而言,更直观的理解方式是将其看成一个坐标系意义,即 。将 A 坐标系中一个向量 经过上述变换,应该有:,其中 代表变换后的向量在 A 坐标系下的表示。注意到,B 中的每一个向量都可以用上面形式表示,因此,旋转矩阵满足:


注意这里和 矩阵坐标意义和变换意义 的不同在于这里向量的变换直接作用到了基底上。前者中的向量变换和坐标系变换之间的关系在于前面的向量变换实质上是可以看成坐标系运动,而这个向量对应的真实空间中 (观察者坐标系 I) 的向量是不动的,只是不同坐标系下这个向量表示的变换,因此存在逆变关系。

这里的情况则是完全不同。这里向量是真的运动了,这里的向量是坐标系的基底,它导致了坐标系出现变换,因此是协变关系,从而直接得到了 而非

注意,上面的坐标转换关系 R 是在向量意义下的,其代表的变换关系为:

对变换后的动坐标系中的一个向量 r,可以通过矩阵 R 得到 Rr ,为其在原始坐标系下的表示

Euler 角 (ZYX)

B 绕 B 的 Z 轴旋转 角,再绕 B 的 Y 轴旋转 角,最后绕 B 的 X 轴旋转 角,完成旋转。整个过程,A 不动 B 动。使用常规的理解,应该满足旋转矩阵:


可以发现,上面两个最终得到的旋转矩阵形式相同,也就是说:

绕定轴 X-Y-Z 旋转(RPY 角) 等价于 绕动轴 Z-Y-X 旋转(Euler 角)

可以理解为:RPY 角一直围绕定轴 A 旋转,反过来看,将 B 作为观察系,则等价于一直对 A 做变换操作,也就是动轴操作。此外,由于这个反过来观察带来了一个逆矩阵,因此整体带了一个转置(对旋转矩阵而言是正交阵特性:逆=转置)。此外,每一次操作都是 B 对 A 轴转,因此每一次操作反过来看也额外带了一个转置(以 B 为定轴的话)。那么最终这个思路得到的旋转矩阵结果为:

参考

Loading...