引言
因为关于欧拉角、旋转矩阵、四元数之间的转换关系有网上有很多人在讲,但是都比较乱,我专门自己梳理了一下。
基本概念
两个坐标系之间的转换关系的表示方法分别为欧拉角、旋转矩阵和四元数。
欧拉角转旋转矩阵
假设参考坐标系 O − X r Y r Z r O-X_rY_rZ_r O−XrYrZr,和本体坐标系 O − X b Y b Z b O-X_bY_bZ_b O−XbYbZb,它们之间成一定角度,如果用欧拉角描述这个旋转关系的时候一定要说明旋转的顺序和旋转方式,旋转方式又分为外旋和内旋两种情况。
1.内旋:参考坐标系 O − X r Y r Z r O-X_rY_rZ_r O−XrYrZr绕 X r X_r Xr轴旋转 α \alpha α角度,然后再绕着新的 Y r Y_r Yr轴旋转 β \beta β角,最后再绕着新的 Z r Z_r Zr轴旋转 γ \gamma γ角度后与本体坐标系重合。
这三种旋转每次的旋转矩阵为分别为
那么参考坐标系到本体坐标系之间的转换矩阵为
本体坐标系到参考坐标系之间的转换矩阵是它的转置。
当然,如果你不按照这个顺序转动,比如,参考坐标系转动顺序为 Z r − Y r − X r Z_r-Y_r-X_r Zr−Yr−Xr时的参考坐标系到本体坐标系之间的转换矩阵就是:
实际上 Z r − Y r − X r Z_r-Y_r-X_r Zr−Yr−Xr的转动顺序更加常用,下变我们在介绍旋转矩阵转四元数和欧拉角时也使用这种转动顺序。
总之,在说欧拉角时候一定要指明旋转顺序,同样的欧拉角,旋转顺序不同,得到的旋转矩阵也不同。
2外旋:参考坐标系 O − X r Y r Z r O-X_rY_rZ_r O−XrYrZ