近年来,随着惯性器件、嵌入式处理器技术越来越成熟,同时配合卫星导航,将一套组合导航设备搭载在四旋翼飞行器上以得到飞行器当前位置和姿态的研究获得了飞速发展。四旋翼相较于传统的固定翼飞行器具有悬停、稳定等优点。在民用领域可以进行运输、摄影、喷洒农药等,军用领域可以进行军事观察等隐蔽活动。在未来如果四旋翼大规模投入使用,就必须控制成本,低成本传感器会成为民用四旋翼的主要研究对象[1]。
四旋翼飞行器原理确实不复杂,但是局限于惯性传感器精度、漂移误差等原因,使商业公司还不能很好地使用四旋翼进行无人运输等活动。但随着各种传感器的成熟,姿态解算算法、融合算法的完善,相信在不久的将来四旋翼一定会大规模的应用于运输、农业等领域。
获取准确的姿态角数据是研究四旋翼飞行器的一个重要方面。本文主要叙述的是在单一处理器下,协调各个传感器、接收机进行数据的采集,避免丢数等现象发生,以及通过解析GPS的UBX协议,获得其所能提供的数据,为日后更高精度的姿态解算以及融合算法的研究提供数据。
惯性器件相比于GPS具有隐蔽性好、自主性强等优点,在军用设备是不可代替的。在没有GPS信号时,惯性器件发挥着重要的作用。惯性器件主要指陀螺仪、加速度计,对陀螺仪积分或者依据加速度计可以获得当前姿态、位置,尽管很直观,但是陀螺仪工作时间长会出现严重的漂移现象,加速度计特别易受到外界的震动等干扰,2个传感器分立使用必然使其精度下降,必须将2个传感器的数据融合处理,获得当前姿态角(俯仰角、横滚角、航向角)。在目前市场上的低价格四旋翼就是用陀螺仪、加速度计进行数据融合获得当前姿态。在整个姿态解算上,陀螺仪也是承担最主要的角色。但是陀螺仪局限于制造精度、内部摩擦等原因,会产生漂移现象,这点在低成本的陀螺仪上尤为明显。而且惯性器件融合所得航向角是发散的,时间长了数据可信度非常低,所以单采用低成本的惯性器件是不足以获得十分精确的导航信息的。为了进一步提高精度,必须引入其他的参考量,获取组合导航数据。本实验加入磁强计,测得当前三轴磁场大小,与惯性器件、高度计配合以获得十轴数据。同时通过GPS接收机模块读取UBX协议下的数据,获得地心位置、经纬度、高度、航向等信息。
本文旨在提出组合导航数据采集方案,介绍了U-BLOX所特有的UBX协议,提出了用C语言解析UBX协议的方法,以及高度计在不损失精度下如何在100 Hz频率下与其他数据一起输出到上位机。如果想获得更加准确的当前位置、姿态信息,还需要加入融合、滤波等算法[2]。
1 硬件平台介绍实验采用基于Cortex-M3型内核的STM32型芯片作为处理器,该芯片性能优越,最高支持72 MHz时钟频率,集成许多常用外设的通用输入输出接口,适合多传感器的控制处理[3]。具体硬件连接方案如图 1所示。
![]() |
Download:
|
图 1 硬件设计方案 |
外加的传感器全部集成在GY86模块上,此模块集成了MPU6050芯片、HMC5883L芯片、MS5611芯片。MPU6050是全球首例六轴运动处理传感器,集成了三轴MEMS陀螺仪和三轴加速度计以及数字运动处理器(digital motion processor,DMP),可通过ⅡC接口连接到第三方的数字传感器(GY86上已将HMC5883L挂在MPU6050的从ⅡC上),可同时输出九轴信息。相比于分立传感器的组合,免除了陀螺仪与加速度计的轴间差问题。为了减少STM32的工作负荷,实验采用了芯片上自带的DMP单元,DMP可以将MPU6050输出的六轴数据融合,从而直接得到四元数,免除了繁琐的更新算法。获得的四元数送到STM32中进行转换即可获得当前姿态信息。在要求精度更高的姿态信息的时候,最好是不要使用DMP,而是用惯性器件与其他传感器数据进行融合,获得准确的姿态、位置信息。
HMC5883L是高精度磁场传感器,可通过读取相应寄存器获得当前三轴磁场数字量,分辨率达到0.002 G,最大输出频率可达到160 Hz。
高度测量采用MS5611气压传感器,MS5611自带温度传感器,输出的是未经补偿的数字气压值以及当前环境温度。在温度小于20 ℃时,会对当前气压做补偿,再由气压公式转换成当前高度。要注意的是气压计本身输出的是气压与温度,再根据气压以及温度补偿计算当前高度,气压与天气、气流等密切相关,所以虽然MS5611精度很高,但指得是测量相对高度比较准确[4]。MS5611功率低,精度和分辨率高,广泛应用于移动设备、手持仪器等。当用户处在无GPS信号的环境中,气压计可提供给用户准确的高度变化信息。
GPS是当今世界上最成熟的卫星定位系统,GPS可以提供给用户当前位置、航向等信息。实验采用U-BLOX公司生产的NEO-6M模组,是市面上一种很流行的GPS接收机,可接受GPS导航数据、观测数据、差分信息,可输出NMEA协议下的信息以及UBX协议下的信息,输出频率最高可达5 Hz,该模块可通过接收机随机软件u-center由用户自主配置NEO-6M输出到MPU的数据格式,为进一步的数据分析提供方便,实验前配置为输出UBX协议下部分信息。
最后通过设置MPU6050为旁路模式,将GY86上所有的传感器全部挂在主ⅡC上,将GPS模块挂在STM32的一个串口上,另一个STM32的串口接PC,上传给PC端数据。
2 组合导航的原始数据需求本文所叙述的组合导航是INS/GPS组合导航,这种组合方式是目前应用最广泛的方式。根据应用的要求不同,可以构成不同水平的组合。本文所叙述的是松组合方式,原理是将GPS和惯导输出的位置与速度信息进行加权平均,用GPS和惯导输出的位置和速度信息的差值作为观测值,经综合滤波器,估计惯导系统误差,然后进行校正,如图 2所示[5-6]。
![]() |
Download:
|
图 2 组合导航简要流程 |
陀螺仪、加速度计本身输出的姿态角长时间情况下会漂移、航向角发散,所使用的MPU6050又属于低成本传感器,存在较大误差。实验使用的磁强计所测当地三轴磁场获得此时航向角,要注意的是磁强计所测的“航向角”指的是地磁北极,与地理北极存在偏差[7]。
实验所使用的高度计测量相对高度变化的精度是很高的,当GPS没有输出数据的时候,高度变化量可以参考高度计的数值变化。GPS可以获得当前航向、当前三维速度、位置,在滤波器里面可以加2个惯导数据与卫星导航数据融合,即可获得惯导误差,利用校正量将惯导系统的相应误差校正掉,最终输出更加准确的姿态、位置信息。
3 软件设计 3.1 MS5611气压计通过实验发现当气压计转换时间不够时,将影响其输出数据的准确性。为了满足上传数据达到100 Hz,同时不影响气压计输出值的准确性,我们采用降低MS5611采样频率,通过多个状态标志位把一次读数过程拆分成多次进行读取,读出数据频率虽然下降,但是保证了准确性。实际情况下,我们也是要用高度计的数据与GPS读取的数据进行互相参考,而GPS的输出频率最高也只有5 Hz,所以对MS5611的输出频率也不需要太高。读取气压计流程图如图 3所示。
![]() |
Download:
|
图 3 气压计读取数据流程 |
UBX协议是U-BLOX品牌独有的协议,早期的接收机使用UBX协议传递的信息不是很多,但随着发展,NEO-6M的UBX协议已经可以输出经纬度、高度、航向、三维速度、地心坐标下的位置等等在定位、授时、导航中极其有用的信息。只需要在u-center软件中设置需要输出的量,数据便可通过串口传入MPU,如果需要更高精度的姿态信息,可以把这些数据与惯性器件输出的值进行融合、补偿,构成组合导航设备,即可获得更精确的当前姿态、位置信息[8]。
3.2.1 UBX数据包结构UBX码是用串口来控制模块的一种协议, 针对于U-BLOX的系列产品进行的控制精简代码。UBX协议下,会将需要输出的信息以二进制形式通过串口输出给MPU。
每条记录由协议标头(header)、Class、ID、长度、有效信息、校验码组成。每条记录均是以十六进制下的B5 62做为header,再由Class与ID判断数据类型,根据数据手册查找相应文件的帧头,查看所需数据在发来的一串数据中的位置以及所占的字节数,在STM32中进行数据转换并发送到PC端。
3.2.2 读取UBX文件此次实验我们读取的是UBX协议下NAV(navigation)数据包中所包含的POSLLH(geodetic position)、VELNED(velocity WGS84)、SOL(navigation solution)信息。需要注意的是UBX文件数据存储是小端模式,小端模式是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,考虑到实际中更多的设备是用C/C++语言完成的,所以提出了一种通过C语言在STM32中解析的方法。相应数据转换流程如图 4所示。
![]() |
Download:
|
图 4 UBX解码流程 |
UBX协议下的数据资源是十分丰富的,用户可根据需要在u-center中设置相应的输出即可,大体的解码过程与上文所述流程相同。
3.2.3 其他传感器其他传感器的读取方法较为简单,设置好MPU6050模块为旁路模式后,读取相应的ⅡC地址即可。
4 结果对比对采集的数据进行结果分析,用DMP单元得出的姿态角与各个传感器给出的数据进行姿态解算的结果[9-15]以及同从GPS上获得的航向角比较,如图 5~7所示。
![]() |
Download:
|
图 5 圆滚角比较示意 |
![]() |
Download:
|
图 6 俯仰角比较示意 |
![]() |
Download:
|
图 7 航向比较示意 |
图 5、6中黑色实线是使用MEMS传感器给出的数据经过姿态解算得到的,黑色虚线是通过MPU6050自带的dmp得出的结果,可以看到两者的情况基本吻合,且不存在丢失数据的现象。图 7中,黑色实线、黑色虚线与图 5、6相同,浅黑色的实线是UBX协议下GPS提供的航向值。
通过比较,可以发现除6050航向角外,其他数据基本吻合,且不存在丢失数据等现象。而图 7中的GPS提供的航向和各个传感器组合得到的航向基本相同,说明对UBX的解码正确。MPU6050的航向角之所以会出现较大误差是因为MEMS器件相对便宜,会产生随时间推移而愈发严重的漂移现象,所以长时间下不做参考。但是我们通过各个传感器之间的组合可以得到更加精确的航向角度。
5 结论本文以传感器的数据采集问题为研究对象,针对MS5611在100 Hz输出情况下,转换时间不足导致精度下降以及UBX解码协议等问题,做了如下工作:
1) 提出了一种可以有效协调各个传感器保证数据输出在100 Hz,同时MS5611的输出依然是正确的算法,并验证该算法的准确性,且无数据丢失;
2) 设计了基于C语言解码UBX协议的算法,移植到了MPU上,将采集到的数据通过仿真证明该算法准确无误。
在导航研究中参考的信息越多精度越高,通过惯性器件与GPS组合构成的组合导航设备越来越普及,尤其是在四旋翼等领域。通过GY86模块与GPS读出的数据可为接下来的数据分析提供基础。
[1] |
蔡春龙, 刘翼, 刘一薇. MEMS仪表惯性组合导航系统发展现状与趋势[J]. 中国惯性技术学报, 2009, 17(5): 562-567. (![]() |
[2] |
陈孟元, 谢义建, 陈跃东. 基于四元数改进型互补滤波的MEMS姿态解算[J]. 电子测量与仪器学报, 2015, 29(9): 1391-1397. (![]() |
[3] |
黄志伟, 徐苏楠, 韦一, 等. STM32的多传感器融合姿态检测[J]. 华侨大学学报(自然科学版), 2015, 36(4): 422-426. (![]() |
[4] |
潘银松, 刘天刚, 马泽忠, 等. 基于MS5611的小型无人机高度检测系统设计[J]. 电子测量技术, 2015, 38(7): 22-26. DOI:10.3969/j.issn.1002-7300.2015.07.006 (![]() |
[5] |
宋静.基于磁强计、加速度计和陀螺原理的姿态测试算法研究[D].太原: 中北大学, 2011: 12-21. http://cdmd.cnki.com.cn/Article/CDMD-10110-1011156530.htm
(![]() |
[6] |
朱文杰, 王广龙, 高凤岐, 等. MIMU和磁强计组合在线定姿算法研究[J]. 自动化仪表, 2013, 34(11): 21-25. DOI:10.3969/j.issn.1000-0380.2013.11.006 (![]() |
[7] |
张少飞, 康爱国, 刘喆颉, 等. 基于HMC5883的地磁场测量校正系统[J]. 煤炭技术, 2016, 35(7): 112-115. (![]() |
[8] |
刘毅科, 郭承军, 吴衡. UBX协议格式的GPS原始数据解码与转换[J]. 全球定位系统, 2016, 41(6): 80-84. (![]() |
[9] |
张春慧, 吴简彤, 何昆鹏, 等. 四阶龙格-库塔法在捷联惯导系统姿态解算中的应用[J]. 应用科技, 2005, 32(6): 37-39. DOI:10.3969/j.issn.1009-671X.2005.06.013 (![]() |
[10] |
张荣辉, 贾宏光, 陈涛, 等. 基于四元数法的捷联式惯性导航系统的姿态解算[J]. 光学精密工程, 2008, 16(10): 1963-1970. DOI:10.3321/j.issn:1004-924X.2008.10.029 (![]() |
[11] |
孙金秋, 游有鹏, 傅忠云. 基于共轭梯度法和互补滤波相结合的姿态解算算法[J]. 传感技术学报, 2014, 27(4): 524-529. DOI:10.3969/j.issn.1004-1699.2014.04.019 (![]() |
[12] |
吕印新, 肖前贵, 胡寿松. 基于四元数互补滤波的无人机姿态解算[J]. 燕山大学学报, 2014, 38(2): 175-180. DOI:10.3969/j.issn.1007-791X.2014.02.015 (![]() |
[13] |
许兆新, 方涛, 丁继成, 等. 基于STM32的惯性传感器数据采集系统设计[J]. 无线互联科技, 2016(2): 55-58. DOI:10.3969/j.issn.1672-6944.2016.02.024 (![]() |
[14] |
彭丁聪. 卡尔曼滤波的基本原理及应用[J]. 软件导刊, 2009, 8(11): 32-34. (![]() |
[15] |
丁翠玲, 陈帅. GNSS/SINS深组合导航系统研究现状及展望[J]. 航空兵器, 2015(5): 18-22. DOI:10.3969/j.issn.1673-5048.2015.05.003 (![]() |