偶然被问到一个问题:前右下为载体系轴向和北东地为导航坐标系轴向的组合导航系统中,输出的姿态角是内旋还是外旋。
刚被问到的时候有点懵,因为之前接触过的组合导航相关资料中,一般不会用内旋或外旋去形容欧拉角,更多是直接定义欧拉角和旋转矩阵的关系。
一开始以武大组合导航资料做参考时还被绕进去了,网上查了一些资料才大概搞清楚。
网上查到的对外旋和内旋的定义如下:
外旋:每次旋转是绕固定轴(一个固定参考系,比如世界坐标系)旋转,称为外旋。旋转矩阵左乘
内旋:每次旋转是绕自身旋转之后的轴旋转,称为内旋。旋转矩阵右乘
其中,基于Tait-Bryan 角旋转顺序的不同又可以分为(x-y-z,y-z-x,z-x-y,x-z-y,z-y-x,y-x-z)六种组合,在旋转角度相同的情况下,不同的旋转顺序得到的姿态不同。
基于以上前提,假设有三组旋转矩阵:
如果旋转顺序为Z->Y->X,那么内旋旋转矩阵应为,外旋则是
但是在参考组合导航教材时,却发现其欧拉角定义满足内旋,旋转顺序是ZYX,但是旋转矩阵却不是,而是
,与定义不符
后面又研究了一下相关资料与定义,发现网上针对内外旋的定义都是基于物体旋转是主动旋转,而大部分组合导航教材中对姿态角的定义则是基于坐标系旋转(被动旋转)。
因此上述教材中,向量本身未发生旋转,而是通过对坐标的旋转改变向量的投影,即被动旋转。
如果将姿态角的定义转换为刚体/向量旋转,即主动旋转,那么就可以和以上提到的内外旋定义匹配了。
可以参考下面这篇文章:
https://blog.csdn.net/rocachilles/article/details/101270768
下面将基于主动旋转对姿态角进行描述:
前右下为载体系b系轴向,北东地为导航坐标系n系轴向;将载体xyz轴与导航系xyz轴重合;将载体沿b系z轴正方向转动yaw度;再沿b系y轴正方向转动pitch度;最后沿b系x轴正方向转动roll度。
将姿态角的描述由坐标系之间的旋转,变为载体自身的旋转,即可与内外旋的定义匹配了。
按照以上描述,即可得到组合导航输出的姿态角为内旋,旋转顺序为zyx。其旋转矩阵为。
当然这里要注意,对坐标轴旋转的旋转矩阵与对物体旋转的旋转矩阵不同,需要对两者角度取反或是求逆。