概念解析:欧拉角、姿态角、旋转矩阵、方向余弦矩阵、四元数、万向死锁

任意物体绕自己的各个轴旋转,其【姿态的变化】情况可以用旋转矩阵R来表示。所谓【姿态的变化】情况,可以这样理解:

前提:大地坐标系G系与大地固连,物体坐标系B系与飞机固连(X轴的方向为机头方向,Y轴的方向为左翼,Z轴方向朝天),初始状态下,令两个坐标系完全重合。

问题:现在我在飞机上任取一点A,该点在大地系的坐标为A0=(x0,y0,z0),(显然此时该点在机体系的坐标是一模一样的),那么当飞机绕自己的X轴旋转θ弧度后,问该点在大地系的新坐标A1?

答:A1=Rx * A0,这就是【旋转矩阵】所代表的【姿态变化】情况。而且,如果飞机先绕自己的X轴转(横滚Roll),再绕自己的Y轴转(俯仰Pitch),再绕自己的Z轴转(航向Yaw),想求点A在大地系的新坐标,只需把坐标A0依次左乘3个旋转矩阵即可,,也即A1 = Rz*Ry*Rx*A0。如果旋转顺序不同,这3个R矩阵的连续左乘的结果,肯定是不同的(因为矩阵乘法不满足交换律,除了一类特殊矩阵以外,显然旋转矩阵几乎不存在满足交换律的情形),这就是所谓的【欧拉角】的旋转是有顺序的。Roll、pitch、yaw三次旋转的角度就叫欧拉角。

《概念解析:欧拉角、姿态角、旋转矩阵、方向余弦矩阵、四元数、万向死锁》

连续3轴的旋转对应的3个旋转矩阵的有序乘积,称为方向余弦矩阵DCM(direction cos matrix),以下简称D矩阵。实际上DCM还可以从不同的理解角度来构造,请自行百度这篇文章《方向余弦矩阵(DCM)简介》,这篇文章是老外的论文翻译,已经在网上被转载了无数次,很容易找到(不过我要提醒一点的是,文章的第5小节关于磁力计矫正的部分是错误的,只有在赤道地区才能应用他这套理论。文章的其余部分没问题)。

欧拉角存在的一个问题是,旋转顺序会影响人的直觉感知,举个例子,本来Z轴的旋转代表航向YAW动作,但是,如果你先让飞机俯仰90读,令机头朝下,此时不管你让飞机的Z轴旋转多少度,机头的航向并不会发生任何变化。

其实,更符合人类直觉的姿态定义是:【姿态角】,定义是这样的,机头X轴与水平面的夹角称为俯仰角pitch,左翼Y轴与水平面的夹角称为横滚角Roll,机头X轴在水平面的投影与正北(或者正东,这个由你的喜好决定)的夹角称为航向角Yaw。你会发现,原来【姿态角】和【欧拉角】都有roll、pitch、yaw三个角,但是这3个角的定义根本不是一个东西!

尤其再提一点,航向,这个词实际山有3个,其对应的英文分别为:yaw、heading、course,这3个航向值的定义完全不同,请自行搜索学习这3个词的概念(比较坑的是,这3个词的中文翻译都叫航向,实际上却是完全不同的定义)

很多人都觉得欧拉角描述物体的姿态很直观,实际上是错把【姿态角】当成了【欧拉角】而已,大多数情况下欧拉角很不直观!

【欧拉角】最适合直观描述的东西,我只想到一个非常好的例子,那就是求三关节机械臂末梢的姿态,每个关节都是一个舵机,可以顺次用三个舵机的转角的旋转矩阵乘积来表出,这三次转角恰好就是【欧拉角】。

欧拉角的万向死锁问题,网上流行的那个老外做的陀螺动画,相信这篇文章的读者你也看过,我看了100遍硬是没看懂。

最后在公式推导中才搞明白,要理解这个问题需要一些公式,博客打公式不方便,我直接在word里写好,贴图了,如下:

《概念解析:欧拉角、姿态角、旋转矩阵、方向余弦矩阵、四元数、万向死锁》

《概念解析:欧拉角、姿态角、旋转矩阵、方向余弦矩阵、四元数、万向死锁》

以上

一旦把欧拉角、DCM理解通透之后,再去学习四元数就会如鱼得水,四元数的推导与证明过程,较为复杂,也是该领域最值钱的知识,在飞控EKF中被广泛运用。大体思路就是从三维空间的轴角旋转公式,一步步联系到四元数乘法,很有意思。

有这方面需求的朋友可联系我,在本网页内搜索【联系方式】或者【群号】即可找到我。

    原文作者:暴躁的野生猿
    原文地址: https://blog.csdn.net/qq_31073871/article/details/81293468
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞