惯性导航中不用到欧拉角是不太可能的,特别是飞控等一些需要用到3轴角度的地方,这一篇写一下这段时间对欧拉角的一些认识。
工具:
- 欧拉旋转、矩阵运算
- MEMS陀螺仪(微机电陀螺仪)
开始正文
一、什么是欧拉角?
欧拉角是用来唯一地确定定点转动明体位置的三个一组独立角参量,由章动角θ、进动角ψ和自转角φ组成,为L.欧拉首先提出,故得名。
欧拉角是一种常用的描述方位的方法。这项技术是著名数学家Leonhard Euler(1707~1783)的名字命名的,他证明了角位移序列等价于单个角位移。
当然看过上面的定义并没有什么作用,这里我们可以这样理解:在一个三维的直角坐标系中,一个任意向量以任意方向做一次旋转,旋转会有角位移,也就是会得到一个旋转角。换种方式,如果用让这个向量做三次旋转(这里旋转的方式不能确定,后面会说)达到相同的效果,这样三步会得到三个旋转角,用这样的方式得到的三个旋转角就是欧拉角。简单点说就是,将一个旋转分解成三次旋转,这样每次的旋转角就是欧拉角。
由于欧拉角的定义太广义,实际中会有比较具体的定义:
- 静态定义:3个欧拉角是与固定轴的夹角,有12中顺规定义(维基百科)
- 动态定义:围绕世界坐标系旋转、围绕载体坐标系旋转
12中顺规:
- 非对称型欧拉角: XYZ,XZY,YXZ,YZX,ZXY,ZYX
- 对称型欧拉角: XYX,XZX,YXY,YZY,ZXZ,ZYZ
其中具体旋转的表示在这里就不详细说了,后面写陀螺仪部分的时候会详细讲解其中的几种,我们使用的是动态定义。
二、为什么我们使用欧拉角?
如果使用过陀螺仪,就会很清楚的知道,三轴陀螺仪返回来的数据是三个轴上的角速度,经过积分之后我们就会得到3个角度(欧拉角),这三个角度分别是围绕着载体坐标系旋转的,所以这样是属于上面欧拉角定义中动态定义的第二种,不过我们这样直接得到的欧拉角并没有什么限制,是存在很大的问题的。关于欧拉角的限制会在后面的文章中详细说明。
我们使用的是一种飞控中常用的欧拉角系统——“Yaw- Pitch - Roll(或者叫’heading-pitch-bank‘)”系统,这样可以比较直观方便的表示载体(比如飞行器)的姿态:
- Yaw(俯仰角):绕陀螺仪X轴旋转;
- Pitch(偏航角):绕陀螺仪Z轴旋转;
- Roll(翻滚角):绕陀螺仪Y轴旋转;
这样就得到了三个欧拉角,并且可以很方便直观的表示载体的旋转了。
三、为什么我们不使用欧拉角?
那我们到底用不用欧拉角呢?用,但是只是使用了一部分。
我们已经知道MEMS陀螺仪会返回给我们三个角速度,既然是角速度,那么我们就需要积分得到角度,主要有下面几种积分方法:
- 直接用角速度对时间积分
- 欧拉角积分
- 四元数积分
- 方向余弦积分
我们使用的是四元数积分,四元数的具体内容在后面说。先说一下为什么使用四元数积分。
直接积分会有很大的问题,得到的三个角度并不完全正确,具体原因与欧拉角的缺陷有关,后面说。这种积分适用于只对平面,也就是只绕一个轴旋转,这样不会出现相互干扰。
欧拉角的好处有很多,比如非常直观的表示旋转,但是它也有比较麻烦的缺点——万向节死锁(后面细讲),以及进行欧拉角的计算涉及大量的三角运算,计算代价比较大。
方向余弦积分需要的运算量更大,不适合惯导系统的实时性要求。
四元数积分既没有‘万向节死锁’,又计算量小,是比较理性的积分方法,我们采用这种方法。
边学边更,后面的理解起来会更加复杂,…….