飞行控制器——惯性测量模块IMU

作者:nieyong

在《飞行控制器——主控MCU》一文中已经提到,飞控是由主控MCU和惯性测量模块(IMU,Inertial Measurement Unit)组成。IMU提供飞行器在空间姿态的传感器原始数据,一般由陀螺仪传感器/加速度传感器/电子罗盘提供飞行器9DOF数据。

IMU中的传感器用来感知飞行器在空中的姿态和运动状态,这有个专有名词叫做运动感测追踪,英文Motion Tracking。运动感测技术主要有四种基础运动传感器,下面分别说明其进行运动感测追踪的原理。

微机电系统(MEMS)

IMU中使用的传感器基本上都是微机电系统(MEMS),是半导体工业中非常重要的一个分支。

微机电系统(MEMS, Micro-Electro-Mechanical System)是一种先进的制造技术平台。微机电系统是微米大小的机械系统,是以半导体制造技术为基础发展起来的。

我们的四轴飞行器上用到的加速度陀螺仪MPU6050,电子罗盘HMC5883L都是微机电系统,属于传感MEMS分支。传感MEMS技术是指用微电子微机械加工出来的、用敏感元件如电容、压电、压阻、热电耦、谐振、隧道电流等来感受转换电信号的器件和系统。

加速器(G-sensors)

加速器可用来感测线性加速度与倾斜角度,单一或多轴加速器可感应结合线性与重力加速度的幅度与方向。含加速器的产品,可提供有限的运动感测功能。

加速度计的低频特性好,可以测量低速的静态加速度。在我们的飞行器上,就是对重力加速度g(也就是前面说的静态加速度)的测量和分析,其它瞬间加速度可以忽略。记住这一点对姿态解算融合理解非常重要。

当我们把加速度计拿在手上随意转动时,我们看的是重力加速度在三个轴上的分量值。加速度计在自由落体时,其输出为0。为什么会这样呢?这里涉及到加速度计的设计原理:加速度计测量加速度是通过比力来测量,而不是通过加速度。

陀螺仪(Gyros)

陀螺仪是利用高速回转体的动量矩敏感壳体相对惯性空间绕正交于自转轴的一个或二个轴的角运动检测装置。利用其他原理制成的角运动检测装置起同样功能的也称陀螺仪。

陀螺仪可感测一轴或多轴的旋转角速度,可精准感测自由空间中的复杂移动动作,因此,陀螺仪成为追踪物体移动方位与旋转动作的必要运动传感器。不像加速器与电子罗盘,陀螺仪不须借助任何如重力或磁场等的外在力量,能够自主性的发挥其功能。所以,从理论上讲只用陀螺仪是可以完成姿态导航的任务的。

陀螺仪的特性就是高频特性好,可以测量高速的旋转运动。缺点是存在零点漂移,容易受温度/加速度等的影响。

电子罗盘(E-Compasses)

电子罗盘也叫数字指南针,磁力计,是利用地磁场来定北极的一种方法。现在一般有用磁阻传感器和磁通门加工而成的电子罗盘。

电子罗盘可由地球的磁场来感测方向。运用电子罗盘的消费性电子产品应用,包含在手机的地图应用程序显示正确方向,或为导航应用程序提供前进方向数据。然而,电子设备或建筑材料的磁场干扰,比地球磁场来得强,导致电子罗盘传感器的输出值,较容易受到各种环境因素的影响,尤其在室内更是如此,因此,电子罗盘须要透过频繁的校正,才能维持前进方向数据的准确度。

压力传感器(Barometers)

压力传感器又叫做气压计,会藉由气压的变化来感测物体的相对与绝对高度,常被运用于与运动、健身、方位推测等应用有关的消费性产品中,例如,可感测使用者的移动层楼,调整地图信息。

Crazepony的惯性测量单元

Crazepony使用传感器MPU6050,集成了3轴陀螺仪和3轴加速度传感器。使用了气压计MS5611。电子罗盘器件HMC5883有在原理上设计上去,但是统一都还没有焊接。

关于传感器的选型,在CamelGo的博客我和Crazepony的那点事儿(2)中有这么一段描述。

Crazepony采用的是最常用的MPU6050陀螺仪加速度计一体芯片,成本不超过20元,对小四轴来说,它的精度和性能绰绰有余了(当我听说教研室师兄用的一颗传感器裸片卖1W+时,我整个人都不好了..),MPU6050在这个价位里面几乎是占有绝对的性价比优势。首先,它将陀螺仪和加速计整合在一个片上,通过IIC总线给出六个维度的ADC值;其次,芯片本身提供一个从IIC接口,供用户接第三方的IIC器件,一般选择是接一个电子罗盘,如HMC5883L,构成一个9轴的输出的姿态模组,现在MPU9150已经丧心病狂的把电子罗盘功能也整合在片上了,但是要买60+元;最后,这颗芯片内部集成了一个DMP(Digital Motion Processor)处理器,这是最让我爱不释手夜不能寐的一个功能,直接硬件解算四元数,从某种程度上说解放了20%的主控资源

在crazepony上,MPU6050/HMC5883/MS5611之间的连接如下图所示。