欧拉角,旋转矩阵和四元数之间的转换关系

引言

因为关于欧拉角、旋转矩阵、四元数之间的转换关系有网上有很多人在讲,但是都比较乱,我专门自己梳理了一下。

基本概念

两个坐标系之间的转换关系的表示方法分别为欧拉角、旋转矩阵和四元数。

欧拉角转旋转矩阵

假设参考坐标系 O − X r Y r Z r O-X_rY_rZ_r OXrYrZr,和本体坐标系 O − X b Y b Z b O-X_bY_bZ_b OXbYbZb,它们之间成一定角度,如果用欧拉角描述这个旋转关系的时候一定要说明旋转的顺序和旋转方式,旋转方式又分为外旋和内旋两种情况。
1.内旋:参考坐标系 O − X r Y r Z r O-X_rY_rZ_r OXrYrZr 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 ZrYrXr时的参考坐标系到本体坐标系之间的转换矩阵就是:在这里插入图片描述
实际上 Z r − Y r − X r Z_r-Y_r-X_r ZrYrXr的转动顺序更加常用,下变我们在介绍旋转矩阵转四元数和欧拉角时也使用这种转动顺序。
总之,在说欧拉角时候一定要指明旋转顺序,同样的欧拉角,旋转顺序不同,得到的旋转矩阵也不同。
2外旋:参考坐标系 O − X r Y r Z r O-X_rY_rZ_r OXrYrZr X r X_r Xr轴转动 α \alpha α角度,然后再绕着原来的 Y r Y_r Yr轴旋转 β \beta β角,最后绕着最初的 Z r Z_r Zr轴旋转 γ \gamma γ角度与本体坐标系重合。外旋与内旋的主要区别就是每次旋转围绕的轴是固定轴还是转动以后的新轴,在这种情况下三次旋转,每次的旋转矩阵分别为:
在这里插入图片描述

由于旋转方式不同,每次旋转的旋转矩阵也不同,这种旋转方式下参考坐标系到本体坐标系之间的转换矩阵为:
在这里插入图片描述
本体坐标系到参考坐标系之间的转换矩阵依然是它的转置: 在这里插入图片描述

注意几点:
一是内旋方式下按照某一顺序的旋转矩阵等于外旋方式下按照反着顺序来的旋转矩阵,比如说参考坐标系内旋顺序为 X r − Y r − Z r X_r-Y_r-Z_r XrYrZr时的旋转矩阵 C b r C^r_b Cbr等于参考坐标系外旋顺序为 Z r − Y r − X r Z_r-Y_r-X_r ZrYrXr时的旋转矩阵 C b r C^r_b Cbr
二是欧拉角转换旋转矩阵或者四元数的时候,一定要搞清楚旋转方式和旋转顺序。
三是姿态角和欧拉角的区别,其实我们可以理解为姿态角就是欧拉角的特殊情况,姿态角是描述运载体坐标系和地理坐标系之间的转换关系。 X X X轴为运载体的(纵)长轴,那么绕着 X X X轴转动的角度(横轴与水平面之间的夹角)就是横滚角 ϕ \phi ϕ Y Y Y轴为运载体的横轴,绕 Y Y Y轴转动的角度(纵轴与水平面的夹角)是俯仰角 θ \theta θ Z Z Z轴指向地面,绕Z轴转动的角度(纵轴与北向之间的夹角)就是航向角 ψ \psi ψ,姿态角默认情况下指的是按照内旋的方式地理坐标系按照 Z − Y − X Z-Y-X ZYX的旋转顺序分别旋转 ψ \psi ψ θ \theta θ ϕ \phi ϕ角以后就会与运载体坐标系重合。
四是很多场合我们说的欧拉角都使用的是 Z − Y − X Z-Y-X ZYX的内旋方式表示两个坐标系之间的转换关系,如果没有特殊说明的话就默认是这种方式。

旋转矩阵转欧拉角

对于一个旋转矩阵而言,不同的旋转顺序和旋转方式对应不同的欧拉角,旋转矩阵唯一,而欧拉角不唯一,这里给出最常用的一种转换关系。
参考坐标系为 O − X r Y r Z r O-X_rY_rZ_r OXrYrZr,本体坐标系为 O − X b Y b Z b O-X_bY_bZ_b OXbYbZb
如果已知参考坐标系到本体坐标系的旋转矩阵为
在这里插入图片描述
旋转矩阵转欧拉角的转换公式为:
在这里插入图片描述
此时计算出来的欧拉角 γ , β , α \gamma,\beta,\alpha γ,β,α的含义就是参考坐标系以内旋的方式按照 Z r − Y r − X r Z_r-Y_r-X_r ZrYrXr的顺序分别旋转 γ , β , α \gamma,\beta,\alpha γ,β,α角,这是旋转矩阵和欧拉角的对应关系,这个对应关系很重要,比如,如果说计算的时候使用的旋转矩阵是 C b r C^r_b Cbr而不是 C r b C^b_r Crb,那再使用这个转换公式计算出来的欧拉角就不是这个含义了,这一点值得注意。

旋转矩阵转四元数

参考坐标系为 O − X r Y r Z r O-X_rY_rZ_r OXrYrZr,本体坐标系为 O − X b Y b Z b O-X_bY_bZ_b OXbYbZb
四元数 q r b q^b_r qrb为参考坐标系到本体坐标系的四元数。
四元数 q b r q^r_b qbr为本体坐标系到参考坐标系的四元数。
q r b q^b_r qrb q b r q^r_b qbr之间是共轭关系。
如果我们已知旋转矩阵 C r b C^b_r Crb
在这里插入图片描述

那么可以根据计算以下公式计算四元数 q r b q^b_r qrb q r b = q 0 + q 1 i + q 2 j + q 3 k q^b_r=q_0+q_1i+q_2j+q_3k qrb=q0+q1i+q2j+q3k

在这里插入图片描述

四元数转旋转矩阵

如果我们已知四元数 q r b q^b_r qrb,旋转矩阵 C r b C^b_r Crb的计算公式如下:
在这里插入图片描述

四元数转欧拉角

参考坐标系为 O − X r Y r Z r O-X_rY_rZ_r OXrYrZr,本体坐标系为 O − X b Y b Z b O-X_bY_bZ_b OXbYbZb
四元数 q r b q^b_r qrb为参考坐标系到本体坐标系的四元数,
q r b = q 0 + q 1 i + q 2 j + q 3 k q^b_r=q_0+q_1i+q_2j+q_3k qrb=q0+q1i+q2j+q3k
使用以下公式得到的欧拉角的含义为:参考坐标系以内旋的方式按照 Z r − Y r − X r Z_r-Y_r-X_r ZrYrXr的顺序分别旋转 γ , β , α \gamma,\beta,\alpha γ,β,α角。

在这里插入图片描述

欧拉角转四元数

参考坐标系为 O − X r Y r Z r O-X_rY_rZ_r OXrYrZr,本体坐标系为 O − X b Y b Z b O-X_bY_bZ_b OXbYbZb
已知欧拉角的含义为参考坐标系以内旋的方式按照 Z r − Y r − X r Z_r-Y_r-X_r ZrYrXr的顺序分别旋转 γ , β , α \gamma,\beta,\alpha γ,β,α角,那么可以计算得到参考坐标系到本体坐标系的四元数 q r b q^b_r qrb,其中 q r b = q 0 + q 1 i + q 2 j + q 3 k q^b_r=q_0+q_1i+q_2j+q_3k qrb=q0+q1i+q2j+q3k
计算公式为
在这里插入图片描述

总结

在转化的时候一定要搞清楚旋转方式和旋转顺序。

猜你喜欢

转载自blog.csdn.net/weixin_42411702/article/details/124155009