惯性导航之认识欧拉角
来源:互联网 发布:ubuntu 写入硬件时间 编辑:程序博客网 时间:2024/05/21 08:57
惯性导航中不用到欧拉角是不太可能的,特别是飞控等一些需要用到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陀螺仪会返回给我们三个角速度,既然是角速度,那么我们就需要积分得到角度,主要有下面几种积分方法:
- 直接用角速度对时间积分
- 欧拉角积分
- 四元数积分
- 方向余弦积分
我们使用的是四元数积分,四元数的具体内容在后面说。先说一下为什么使用四元数积分。
直接积分会有很大的问题,得到的三个角度并不完全正确,具体原因与欧拉角的缺陷有关,后面说。这种积分适用于只对平面,也就是只绕一个轴旋转,这样不会出现相互干扰。
欧拉角的好处有很多,比如非常直观的表示旋转,但是它也有比较麻烦的缺点——万向节死锁(后面细讲),以及进行欧拉角的计算涉及大量的三角运算,计算代价比较大。
方向余弦积分需要的运算量更大,不适合惯导系统的实时性要求。
四元数积分既没有‘万向节死锁’,又计算量小,是比较理性的积分方法,我们采用这种方法。
边学边更,后面的理解起来会更加复杂,…….
- 惯性导航之认识欧拉角
- 惯性导航之认识欧拉角(二)
- 惯性导航之认识四元数(四)
- 惯性导航的初步认识
- 惯性导航之欧拉角与万向节死锁(三)
- 惯性导航
- 惯性导航
- 惯性导航
- 惯性导航
- 惯性导航之术语基础(一)
- 惯性导航原理之姿态算法-四元数&欧拉角&等效转动矢量
- 惯性导航之四元数与欧垃角互转(五)
- 惯性导航之Runge-Kunta法更新四元数(六)
- 捷联惯性导航技术之卡尔曼滤波
- UAV 惯性导航
- 惯性导航-加速度计
- 惯性导航领域书籍集锦
- 带你走进惯性导航
- Android6.0 MTK 需求文档(四)
- 主键和唯一索引有什么区别
- uCOS-II内核之任务控制块 [转载]
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 相干时间与多普勒频移
- 惯性导航之认识欧拉角
- 文字从上到下无缝轮播,一直循环滚动轮播
- 婚姻: 婚恋关系中的男女相处,爱上一个人总说得出理由!
- LeetCode 278. First Bad Version
- 6模块---概念
- SuperMap iCloudManager 8C(2017)发布
- Integer与int的种种比较
- 02-SpringMVC的一些注解
- 使用Java Api 对HBase进行简单操作