MEMS传感器姿态测量系统的实现
2016-06-02刘真谛陈慕羿王洪源
刘真谛,陈慕羿,王洪源
(沈阳理工大学 信息科学与工程学院,沈阳 110159)
MEMS传感器姿态测量系统的实现
刘真谛,陈慕羿,王洪源
(沈阳理工大学 信息科学与工程学院,沈阳 110159)
摘要:采用一种基于Arduino的捷联式姿态测量系统的设计方案,分别介绍系统中传感器的选择及系统的结构,设计基于Arduino的姿态测量系统,利用ATMEL公司的Atmega328处理器为核心,完成数据采集和处理的功能。通过对硬件结构的描述分析系统中各个电路模块的功能,给出各个模块的方案,由此完成该设计的捷联式姿态测量系统。针对陀螺仪和加速计的误差,使用Kalman滤波对其进行确定性误差补偿处理。通过实验测试,对比原理样机的实测数据与补偿后结果,验证了该捷联式姿态测量系统的可靠性以及补偿方案的可行性。
关键词:Arduino;捷联式姿态测量系统;Kalman滤波;误差补偿
微型惯性导航技术[1]已得到了广泛应用,而测量载体的姿态就是其中之一,即测量载体俯仰角、横滚角和航向角等姿态信息[2]。随着单片机的发展,近些年出现了一种开源的单片机控制器——Arduino[3],由于其便捷灵活、方便上手、应用简单等优点近年来得到了广泛应用。并且它能够进行编程、调试、检验错误、多次编程和重复操作等,对于设计开发和验证具有较大意义。
为了获得的姿态信息,国内外学者进行了大量研究和实验,文献[4]利用陀螺仪及GPS组合导航测量姿态,然而GPS的信号采样率影响很大,使得它的稳定性不高,实时性不好;文献[5]利用陀螺仪测量姿态,因为陀螺仪随着漂移的积累,误差会越来越大,长时间测量会使得精度受到很大影响。本文设计基于Arduino的捷联式姿态测量系统,该系统以低成本、低功耗的ATMEL公司生产的Atmega328[6]芯片为设计核心,使用它采集陀螺仪、加速度计[7]和磁力计的数据进行处理,通过单片机引脚控制外接设备,同时使用USB接口将数据传送给上位机进行显示。
1系统构成及硬件电路
系统主要由以下几部分构成:微机电传感器、磁力计模块、控制模块、电源模块等,能够通过USB接口将数据传递到上位机,系统结构如图1所示。
图1 姿态测量系统结构框图
系统的硬件电路由以下几个模块组成:预处理模块、数据采集和处理模块和输出模块,如图2所示。
图2硬件电路功能框图
1.1MEMS传感器
MEMS传感器选择MPU6050,MPU6050为全球首例整合性6轴运动处理组件,即整合了3轴陀螺仪、3轴加速器,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。图3为MPU6050模块。
图3 MEMS模块
1.2HMC5883L磁力计
HMC5883L三轴磁力计传感器模块,带有I2C[8]输出接口,广泛应用于低成本的磁力计领域。图4为磁力计模块。
图4 HMC5883L模块
1.3预处理模块
因为MEMS器件[9]本身具有较大的噪声,所以需要对其进行预处理。采用低通滤波对MPU6050和HMC5883L的输出信号进行预处理。
1.4数据采集与处理模块
该模块主要由Arduino组成。选择ATMEL公司的Atmega328作为主芯片,Flash作为存储之用,用于程序编写及运行。电路板具有小巧耐用,灵活方便等优点。图5为姿态测量系统电路。
图5 姿态测量系统电路
1.5数据输出模块
Arduino通过USB接口与上位机进行通信,输出数据给上位机,上位机用串口助手接收数据。
用C语言编写程序,编程软件和下载软件都用Arduino1.0.5。
2算法及误差补偿
加速度计和陀螺仪是微惯性姿态测量系统的核心部分,它们的精度决定了微惯性姿态测量系统的精度,且MEMS误差源中确定性的系统误差高达总误差的90%,因此对于确定性的系统误差进行分析及补偿具有重大意义,而且对MEMS精度的提高也具有决定性作用。
利用文献[10]中Kalman滤波的状态方程和观测方程,建立基于Kalman滤波的补偿机制,分别对加速度和角速度进行滤波处理,提高测量精度。
对X轴上加速度和角速度补偿的实际过程:
/*kalmenstart*/
Sx=0;Rx=0;Px=1;//X轴卡尔曼变量
for(int i=1;i<15;i++){//测量值平均值运算
a_x[i-1]=a_x[i];//即加速度平均值
Sx+=a_x[i];}
a_x[14]=aax;
Sx+=aax;Sx/=15;//X轴加速度平均值
for(int i=0;i<15;i++){
Rx+=sq(a_x[i]-Sx);}
Rx=Rx/14;//得到方差
Px=Px+0.002;
Kx=Px/(Px+Rx);//计算卡尔曼增益
agx=agx+Kx(aax-agx);//陀螺仪角度与加速度计速度叠加
Px=(1-Kx)*Px;//更新P值
/*kalmenend*/
对加速度角度建立一个滑动采样队列,采样数为15,求出队列方差,并适当缩小后,运算得到卡尔曼增益。加速度角度与陀螺仪角度做差后,乘以卡尔曼增益叠加到陀螺仪角度上,更新P值。
3实验结果验证
按照上述方法进行实验,对数据进行采集。用Matlab软件进行图形显示。
图6到图8为载体的加速度滤波前后曲线、角速度滤波前后曲线和误差曲线。
这是载体大约在15s近似做摆动而得到的数据。
从图8误差曲线可以看出,由于做的是摆动,加速度相对变化较小,使得误差非常小。而角速度相对变化很大,使得角速度产生了较大误差,甚至在某些时刻产生的误差瞬间非常大。
(a)加速度滤波前曲线
(b)加速度滤波后曲线
(a)角速度滤波前曲线
(b)角速度滤波后曲线
(a)加速度误差曲线
(b)角速度误差曲线
图9为将姿态测量系统放在载体上处于初始状态,即姿态信息都为零,由MPU6050和HMC5833L进行测量得到的滤波前后姿态信息。图9a为未加滤波前输出的姿态信息;图9b为滤波后输出的姿态信息。采集时间为25s。
(a)静止补偿前姿态角
(b)静止补偿后姿态角
从图9可以看出,滤波补偿前,测得的姿态角保持的零态时间很短,很快产生较大误差。横滚角大致的变化在-1°~1.5°;航向角大致的变化在-1°~0.5°;俯仰角大致的变化在-2.5°~0°。而经过滤波补偿后的姿态角得到了明显的补偿,姿态信息大致都在-0.5°~0.5°之间。误差小于1°。
图10为被测载体绕X轴进行近似均匀转动,然后由MPU6050和HMC5833L测得的滤波前后的横滚角。测量时间为30s。图10a为补偿前横滚角,图10b为滤波补偿后横滚角。从图10可以看出,滤波前数据误差较大,甚至有几处毛刺。经过滤波补偿之后毛刺基本消失,数据得到了很好的改善。
然而无论是滤波前还是滤波后,可以看出输出的姿态角都具有一定误差,虽然滤波后有所改善,但还存在误差,这部分误差主要是由于直接将MEMS传感器固定在载体上,使得MEMS传感器直接承受载体的温度、振动和冲击等影响,使得具有一定误差;而且使用的MEMS传感器是中低精度的,这也是原因之一。
(a)补偿前横滚角
(b)补偿后横滚角
4结论
给出了捷联式姿态测量系统的硬件和软件设计及调试,完成了一种功耗低、成本低、易于实现的系统设计方案,并对系统核心MEMS部分进行误差分析和补偿处理。实验结果表明:该捷联式姿态测量系统可准确采集到MEMS和磁力计的数据,并对数据进行误差处理,能够看出滤波前姿态角误差(横滚角为2.5°;航向角为1.5°;俯仰角为2.5°)。滤波后姿态角误差为1°。误差降低1°~1.5°。
参考文献:
[1]杜小菁,翟峻仪.基于MEMS的微型惯性导航技术综述[J].飞航导弹,2014(9):77-81。
[2]朱仕永,祖静,范锦彪,等.姿态角测试研究[J].电子设计工程,2009,17(1):12-13.
[3]高磊.Arduino让我们爱上制作[J].无线电,2010(9):6-7.
[4]Ying Chilai.The development and verification of attitude and heading reference system for unmanned aerial vehicles[D].Tai-nan:National Cheng Kung University,2010.
[5]邵婷婷,李建新,张永波,等.基于MEMS器件的低成本微惯性导航系统设计[J].现代电子技术,2010,33(20):200-203.
[6]叶军.基于AVR单片机的数据采集系统的设计[J].大众科技,2013,9(15):15-16.
[7]冯智勇,曾瀚,张力,等.基于陀螺仪及加速度计信号融合的姿态角度测量[J].西南师范大学学报:自然科学版,2011,8(4):137-141.
[8]王钰,潘仕彬,王卉.IIC在数据采集中的应用[J].科技广场,2008(8):190-191.
[9]邵婷婷,李建新,张永波,等.基于MEMS器件的低成本微惯性导航系统设计[J].现代电子技术,2010(20):200-203.
[10]崔璐璐.基于MEMS器件的姿态测量系统研究与实现[D].大连:大连理工大学,2009.
(责任编辑:马金发)
Realization of MEMS Sensor Attitude Measurement Technology System
LIU Zhendi,Chen Muyi,WANG Hongyuan
(Shenyang Ligong University,Shenyang 110159,China)
Abstract:According to strapdown attitude measurement system based on the Arduino design scheme, the sensors choice in the system and system structure are introduced respectively based on Arduino attitude measurement system, and ATMEL company's Atmega328 processor is taken as the core to complete the function of data acquisition and processing. Through function description of hardware structure analysis for each circuit module in the system, each module solution is given by designing of strapdown attitude measurement system. According to gyroscope and accelerometer error, Kalman filter is adopted to compensate error with uncertainty. Experimental results show that, in comparison with the principle machine, the measured data of prototype and compensation results verify the reliability of the strapdown attitude measuring system and the compensation scheme feasibility.
Key words:Arduino;strapdown attitude measurement system; Kalman filter;error compensation
中图分类号:TP274+.2
文献标志码:A
文章编号:1003-1251(2016)02-0018-06
作者简介:刘真谛(1991—),男,硕士研究生;通讯作者:陈慕羿(1981—),女,讲师;研究方向:微电子学与固体电子学,虚拟现实技术。
基金项目:辽宁省教育厅科学研究一般项目(L2013083)
收稿日期:2014-10-16