Pixhawk代码分析-基础知识
基本知识介绍
- 名词解释
- 惯性测量单元IMU(InertialMeasurementUnit)
- 姿态航向参考系统AHRS(Attitudeand Heading Reference System)
- 地磁角速度重力MARG(Magnetic,Angular Rate, and Gravity)
- 微机电系统MEMS(MicroElectrical Mechanical Systems)
- 自由度维数DOF(Dimension OfFreedom)
- 无人驾驶飞行器UAV(UnmannedAerial Vehicle)
- 扩展卡尔曼滤波EKF(ExtendedKalman Filter)
- 无损卡尔曼滤波UKF(UnscentedKalman Filter)
- 惯性导航系统INS(InertialNavigation System)
- 全球导航卫星系统GNSS(GlobalNavigation Satellite System)
- 天文导航系统CNS(CelestialNavigation System)
- 可垂直起降VTOL(VerticalTake-off and Landing)
- 坐标系介绍
有两个基本坐标系:“地理”坐标系(Earth Frame)和“载体”坐标系(Body Frame)。
”地理”坐标系指的就是地球上的“东北天(ENU)”坐标系,而“载体”坐标系值的就是四轴自己的坐标系。当我们在实际控制当中,我们关心的显然是载体坐标系相对于地理坐标系之间的变化,所以我们通常使用的旋转矩阵是把“地理”坐标系转到“载体”坐标系的矩阵,两者之间的转换关系自行百度吧,讲的很详细。
转化的方法就是坐标系的转换,目前有三种方式:四元数(q0123)、欧拉角(yaw(Z轴)、pitch(Y轴)、roll(X轴)属于其中一种旋转顺序Z-Y-Xà航空次序欧拉角)、方向余弦矩阵(9个系数)。
其中使用四元数运算比较快,但是它没有实际的物理含义,纯数学推到。
- 姿态数据
姿态的数据来源有5个:重力、地磁、陀螺仪、加速度计、电子罗盘。
其中前两个来自“地理”坐标系,后三个来自“载体”坐标系。在“地理”坐标系中,重力的值始终是(0,0,1g),地磁的值始终是(0,1,x)。这些值就是由放置在四轴上的传感器测量出来的。
在单位时间内的位移被定义为速度,速度有线速度和角速度之分,分别对应两种传感器测量这两种不同的速度:线速度传感器(加速度计)、角速度传感器(陀螺仪)。
- 导航的基本原则
导航的基本原则就是保证两个基本坐标系的正确转化,没有误差。只有实现了这个原则,载体才可以在自己的坐标系中完成一系列动作而被转换到地理坐标系中看起来是正确的。为了达到这个目标,需要对两个坐标系进行实时的标定和修正。因为坐标系有三个轴,偏航yaw修正由电子罗盘(基于载体)、地磁(基于地理)对比修正误差补偿得到。俯仰pitch和横滚roll上的修正由加速度计(基于载体)、重力(基于地理)对比修正误差得到。
在完成了基本原则的基础之后,即保证两个坐标系的正确转化后,利用基于载体上的陀螺仪进行积分运算,得到基于载体坐标系的姿态数据,经过一系列PID控制,给出控制量,完成基于载体坐标系上的稳定控制后,反应到地理坐标系上的稳定控制,从而达到我们观察到的定高、偏航、翻滚、倾仰等动作。下一篇博客会给出具体的PID回路控制框图,这篇博客就不添加了。
加速度计在地球上测量的是重力加速度,如果载体沿着z轴旋转,加速度计是无法感知他的运动的;类似的,电子罗盘测量的是地球上的磁场方向,如果载体沿着y轴旋转,电子罗盘同样也是无法感知他的运动的。
综上所述,加速度计和电子罗盘只能得到2维的角度关系,通过某种方式的融合,可以得到正确的三维姿态信息。
对于上述论述可以看出,导航姿态从理论上讲只用陀螺仪是可以完成任务的。但是由于陀螺仪在积分过程中会产生误差累计,加上白噪声、温度偏差等会造成导航姿态的解算随着时间的流逝而逐渐增加。所以就需要用加速度计在水平面对重力进行比对和补偿,用来修正陀螺仪的误差。
但是对于竖直轴上的旋转,加速度计是无能为力的,此时用的是电子罗盘。也可以测量出水平面内的地磁方向用来修正陀螺仪的水平误差。通过这两个器件的修正补偿,使得陀螺仪更加稳定、可靠的工作。
- AHRS和IMU的差异
AHRS由加速度计、磁场计、陀螺仪构成,AHRS的真正参考来自于地球的重力场和地球的磁场,它的静态精度取决于对磁场的测量精度和对重力的测量精度,而陀螺仪决定了他的动态性能。
在这种前提下,说明AHRS离开了地球这种有重力和磁场环境的时候是没法正常工作的。而且特别注意,磁场和重力场越正交,航姿测量效果越好;也就是说如果磁场和重力场平行了,比如在地磁南北极。这里的磁场是向下的,即和重量场方向相同了。这个时候航线交是没法测出的,这是航姿系统的缺陷所在;在高纬度的地方航线角误差会越来越大。
IMU(Inertial measurement unit)学名惯性测量单元,大学的理论力学告诉我们,所有的运动都可以分解为一个直线运动和一个旋转运动,故这个惯性测量单元就是测量这两种运动,直线运动通过加速度计可以测量,旋转运动则通过陀螺。假设IMU的陀螺和加速度计的测量是没有任何误差的,那么通过陀螺则可以精确的测量物体的姿态。
通过加速度计可以二次积分得出位移,实现完整的6DOF,也就是说你带着一台这种理论型的IMU在宇宙任何位置运动。我们都可以知道它当前的姿态和相对位移,这将不局限于任何场。
从上面的描述何以看出。实际上AHRS比IMU还多一个磁场传感器,而为什么AHRS的级别却低于IMU而需要依赖于重力场和磁场呢?这是由传感器器件架构所决定的。AHRS的传感器通常是成本低廉的mems传感器。这种传感器的陀螺仪和加速度计的噪声相对来说很大。
以平面陀螺为例:用ADI的陀螺仪进行积分一分钟会漂移2度左右,这种前提下如果没有磁场和重力场来修正三轴陀螺的话。那么基本上3分钟以后物体的实际姿态和测量输出姿态就完全变样了,所以在这种低价陀螺仪和加速度计的架构下必须运用场向量来进行修正,而IMU实际上也是这样的。
因为我们知道没有绝对精确的传感器,只有相对精确的传感器,IMU的陀螺仪用的是光纤陀螺或者机械陀螺,这种陀螺的成本很高。精度相对mems陀螺也很高,精度高不代表准确,IMU的姿态精度参数通常是一小时飘多少度。
而用加速度计积分做位置的话。AHRS是不现实的(1分钟就能飘出几十米,而且是成二次方的速度递增)。AHRS通常要结合GPS和气压计做位置,IMU积分做位置的是一天多少海里。这样的一个参数数量级。也许在海上还能用的到,这就是AHRS和IMU在我的理解里的一个差异。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号