目录
IMU 简介
MEMS IMU如何选型
1.零偏温度滞回特性
2. 振动特性
3. 重复上电对IMU bias的影响
4. 应力对bias影响
5. 冲击对零偏影响
6. Gyro非线性因子(%Fs)
IMU校准标定
简化的IMU误差模型:
加计校准算法
Gyro校准算法
IMU(Inertial Measurement Unit)即惯性测量单元,能够测量物体三轴加速度及角速度,一般用于系统的测量环节,估计物体位姿。IMU一般包含一个三轴的加速度计和一个三轴的陀螺仪,加速度计检测物体在载体坐标系统独立三轴的加速度信号,陀螺检测载体相对于导航坐标系的角速度信号,根据测得物体在三维空间中的角速度和加速度可以解算出物体的姿态。MEMS IMU价格便宜,体积小,在导航、无人机、VR、机器人以及智能手环等诸多领域得到广泛应用。IMU的检测精度对系统的整体性能非常重要,如果IMU检测数据噪声很大,系统得到的反馈就是错误的,就好比人的眼睛耳朵等感官得到了错误的信息,如何能够行动自如?系统底层是根基,如果系统底层不稳定,数据乱七八糟,上层功能怎么可能做好!目前市场上的智能硬件公司,大多数都不能够很好的使用MEMS IMU,在此结合多年的MEMS IMU使用经验,将MEMS IMU的基本校准流程与校准算法进行了总结,并分享于此。
IMU的特性会直接影响产品的良率,所以IMU选型很重要,这部分会结合MEMS IMU的特性,介绍在IMU选型时需要做哪些测试。由于不同的应用场所对IMU精度要求不同,本文中没有定量的给出具体指标,具体指标需要各位在应用中权衡,也可以为IMU型号选择提供参考。
零偏温度滞回特性指的是:IMU在温度上升阶段和温度下降阶段对应的零偏不一致性。如图所示,横轴为温度,纵轴为零偏。有些IMU数据手册中会给出零偏温度滞回特性曲线,有些不会给出,不管IMU芯片厂商是否给出零偏温度滞回曲线,在应用IMU时最好都进行一下测试。因为IMU零偏的估计,是按温度进行标定的(IMU校准算法部分有详细介绍),一般温度滞回差值不会太大,可以忽略;如果IMU零偏滞回差值太大,IMU零偏估计就不准,我们得到的IMU估计值与真值的误差就越大,此时认为该IMU芯片为不良品,不能应用。
在外界有振动情况下,IMU bias随振动频率的变化特性。有些MEMS IMU芯片在高频激振下,频率特性会出现异常,对于旋翼无人机等容易出现高频振动的应用场所,最好做下振动特性的测试,如果IMU出现异常频率特性,可以加减震装置。
理想情况下认为在相同外界条件下,IMU在每次上电的bias不变,实际情况中,在相同的外界条件下IMU每次上电的bias会有差别,一般这个差别不大,可以忽略;如果这个差别比较大,则零偏估计会不准,此时认为该IMU芯片为不良品,不能应用。
应力对IMU的影响包括:加应力瞬间对bias影响、不同应力对bias影响。应力主要来源于:PCB板对IMU芯片施加的应力,温控装置对IMU芯片施加的应力。一般应力对IMU影响不大,可以忽略,如果IMU bias受应力影响太敏感,则认为该IMU芯片为不良品,不能应用。
在IMU收到外部冲击时(几十个G的量级),会有概率性的造成IMU卡死,或者bias改变。在IMU选型阶段最好做下冲击测试,以保证IMU良率。
理想情况下,我们认为Gyro在量程范围内是线性的,实际中Gyro的变化是非线性的(为什么这里只说Gyro呢?因为一般Gyro非线性严重,acc线性特性比较好)如图2所示,在使用IMU之前需要对其非线性特性进行测试,如果gyro非线性太严重,则认为该IMU芯片为不良品,不能应用。
acc误差模型:
式(3-1)
其中为acc真值,
为交轴误差(交轴误差指IMU三轴不正交产生的误差),
为scale误差,
为IMU acc测量值,
为acc bias。
Gyro误差模型:
其中为gyro真值,
为交轴误差(交轴误差指IMU三轴不正交产生的误差),
为scale误差,
为IMU gyro测量值,
为gyro bias, 与acc相比,gyro的误差模型中多了一项
,
是加速度真值,
是gyro的G敏感度,表示加速度对gyro的影响,一般
比较小,可忽略,则gyro的误差模型表示为:
式(3-2)
常用的加计校准算法有六面体校准,和十二面体校准,六面体校准前需要对校准台进行标定,要求校准台与水平面平行,否则会引入校准误差,十二面体校准可以消除校准台与水平面夹脚造成的校准误差。这两种校准算法本质是相通的,以十二面体校准为例进行说明。
十二面体校准步骤:
1.将IMU固定在三轴正交的立方体(治具)上;
2.将治具一面放置在校准面上,静置,采集一段时间数据;
3.将治具原地旋转180度,静置,采集一段时间数据;
4.将两次采集到的数据求平均,作为一次测量值;
5.重复步骤2~3,测量其它五个面数据
先解释下为什么十二面体校准可以消除校准台不水平带来的误差。当校准台水平时,即校准台与水平面平行,此时acc静置于校准台上,其真值应该为,g为当地重力加速度;当水平台不水平,其与水平面间存在夹脚
时,此时acc静置于校准台上,其真值应该为
,如图所示,一般
比较小,可近似为
。当六面体同一面与校准台接触,前后旋转180度,acc对应的真值应为
。两次测量值均值对应的真值应为
,即消除了
的影响。
acc校准算法实现:
根据式(3-1)可以得到acc测量模型:
令,则
,写为增广矩阵:
式(3-3)
将六次测量值,对应的真值AI带入式(3-3),即可求出
的最小二乘解。
下边来分析下里包含了哪些误差项:
由的定义
可以直接得到
和
,
即为acc的bias估计;再来看看从
中能得到什么,由
定义
可知
中包含来scale和交轴误差,交轴误差矩阵具有保模性(即每一列的模为1),由这一性质就可以分离出
和
,公式如下:
求得scale误差和交轴误差,即和
,将
带入式(3-1),即可由acc测量值得到真值的估计。
gyro校准算法与加计校准思想是一样的,具体实现稍有不同,当gyro输入为零时,其真值输出也应为零(这里不考虑地球自转,认为gyro精度敏感不到地球自转,本文的校准算法针对的是精度较低的MEMS陀螺,如果你的gyro精度足够高,可以敏感到地球自转,则也没有必要做这套校准了)
gyro bias 的估计可以利用十二面体校准采集的gyro数据,方法与acc校准一样,只不过gyro只能分离出
,公式如下:
根据式(3-2)可以得到gyro测量模型:
令,则
,写为增广矩阵:
式(3-4)
将六次测量值,对应的真值GI带入式(3-4),即可求出
的最小二乘解。
由的定义
可以直接得到
和
,
即为gyro的bias估计;只用静态测试数据,只能估计出gyro bias误差
,
和
需要动态转台数据才能得出。
下边来看怎么得出和
:
gyro转台测试步骤:
1.将IMU固定在转台上,IMU gyroX轴与转台转轴重合;
2.转台匀速旋转10*360度,记录gyro三轴输出数据,对gyro数据进行积分,可以得到三轴测得的角度,为真值:
3.重复步骤1~2,对y z轴进行测试,得到
根据gyro测量模型(3-2)可以得出:
为真值,
为测量值,
为bias,利用十二面体校准已求出,上式可简化为:
归一化处理:
归一化后,转台在进行每个轴测试时,对应gyro的三轴测量值的模也应为1,因此:
根据交轴误差矩阵的保模性,即可求得和
:
到此,IMU校准完成。