华佗养生网
您的当前位置:首页基于MEMS器件的姿态航向参考系统设计及应用

基于MEMS器件的姿态航向参考系统设计及应用

来源:华佗养生网
维普资讯 http://www.cqvip.com

第28卷VO1.28 第3期 NO.3 计算机工程与设计 Compmer Engineering and Design 2007年2月 Feb.2007 基于MEMS器件的姿态航向参考系统设计及应用 张谦 , 裴海龙 , 罗 沛 (1.广东教育学院计算机科学系,广东广州510303; 2.华南理工大学自动化科学与工程学院,广东广州510640) 摘 要:在小型无人直升机的控制中,需要有高精度的运动测量信息作为导航状态输入,通常这些小型直升机因需要在特定 的情况下工作而往往体积较小,因而也对导航设备提出了高精度、低功耗、微型化、低成本等多方面的苛刻要求。介绍一种 基于MEMS器件的小型姿态航向参考系统的设计及实现,该系统已应用于小型无人直升机的导航控制中。 关键词:姿态航向参考系统;微电子机械系统;传感器;信息融合;Kalman滤波 中图法分类号:TP2t2;V24[.6 文献标识码 A 文章编号:L000—7024(2oo7)03—063[一04 Design and implementatiOn Of AHRS based.On MEMS units ZHANG Qiann,PEI Hai-long:,LUO Pei (1.Department of Computer Science,Guangdong Institute of Education,Guangzhou 5 1 0303,China; 2.Institute ofAutomation Science and Engineering,South China University ofTechnology,Guangzhou 510640,China) Abstract:To control a small unmanned helicopter,high precision information of motion is supplied to control system aS navigation states.But the small unmanned helicopter oRen works at especial conditions SO hatt tlley have miniature body.Therefore,it incurs a high demand on high precision,low energy consumption,miniaturization and low cost of navigation system.The design and imple— mentation of a tiny attitude and heading reference system baSed on MEMS niuts is discussed, and he systtem haS been embedded in he tnavigation/flight control system of a small unmanned helicopter. Key words:AHRS;MEMS;sensors;information fusion;Kalman filtering 0引 言 在一些小型运动测量设备中,由于被测量对象本身体积和 系统采用了多传感器构造,实际应用中还要消除传感器模拟 信号的噪声干扰,提高系统的精度,因而需采用相应的算法对 这些传感器进行滤波与信息融合处理。 重量很小,运动测量器件的质量和体积会直接影响被测物体的 实际特性;例如小型无人驾驶飞行器由于执行任务的特殊性, 其本身的体积和重量都很小,因而要求飞行器导航系统上应用 的运动测量设备既要保证一定精度,又能尽量减小导航设备的 体积和重量,以达到改善飞行器性能的目的。早期的导航系统 1 系统构建 小型无人直升机在飞行过程中会因空间位置的改变而相 对某一固定空间坐标系有角度的变化,通常该固定坐标系采 用当地水平坐标系,而小型直升机本身的体轴系绕当地水平 坐标系各坐标轴转动的角度就定义为小型直升机的姿态角, 也即刚体转动的欧拉角。依据相对于当地水平坐标系3个坐 采用机械实现方法,它由精密稳定平台和一些机电控制元件组 成,不仅体积和重量大,而且系统性能受到机械结构的复杂性 和极限精度的制约,再加上产品可靠性和维护方面的问题,系 统成本十分昂贵,因而其应用也受到了相应的。 标轴 轴,Y轴,z车由的转动,定义姿态角为横滚角,纵摇角以及 偏航角。为了实现对小型无人直升机的控制,就必须要获得 随着微电子技术的发展而出现的微电子机械系统 (MEMS)器件具有体积微小、低功耗、质量轻、响应快、灵敏度 高、成本低的优点,将其应用于测量领域已成为一种趋势,在 其在空间中的姿态信息,因而需要构建姿态航向系统,即 AHRS(attitude and heading reference system)。本节将着重介绍 AHRS的系统构建原理。 运动测量领域也逐渐开始采用微电子器件。基于微电子机械 系统(MEMS)器件而设计的微型六自由度姿态航向参考 1.1系统结构 图l为系统结构图,利用加速度计、陀螺仪可以测量小型 (AHRs)系统可以满足小型无人直升机导航的要求。同时因为 收稿日期:2006.O1.12 E-marl:qianz@gdei.edu.cn 直升机的空间三轴加速度、角速度,磁阻传感器可以测量到因 作者简介:张谦(1979--),男,广西恭城人,硕士,助教,研究方向为嵌入式系统应用、综合惯性导航系统: 裴海龙(1965一),男,博士生导 师,教授,研究方向为人工神经网络、混合系统、机器人控制、非线性控制、嵌入式系统应用: 罗沛(1980--),男,硕士研究生,研究方向为 惯性导航系统。 一63l一 维普资讯 http://www.cqvip.com

装是20脚直插式。它由一个单轴Honeywdl HMC1001、一个 双轴Honeywell HMC1002磁阻(MR)传感器构成,这两个磁阻 传感器测量当地的地球磁场,通过内部电路将其转换为不同 ADC 』 MCU 模拟量输出从而获得罗盘指导航向的功能。它的体积为1.05 ̄ 0.75x0.35 inch,最大消耗电流20 mA,在1Gauss的磁场下线性 误差为满刻度的0.5%,带宽为1 kHz。 从上面各传感器件的性能特性可以知道,这些微电子机 械器件的体积、功耗、灵敏度,精确度及动态响应等性能指标 图1 AHRS系统结构 都可以满足小型移动机器人导航系统的需要,而实际构建出 的系统也达到了很好的效果。 小型直升机航向或姿态的变化造成磁场在其各测量轴上的强 度产生变化,依据这个变化来获得小型直升机的偏航角。加 速度计,陀螺仪及磁阻传感器采用模拟电压输出方式,因而需 要将这些模拟量转化为数字量。所采用的多路模数转换器 (ADC)通过同步串行接口(SPI)与单片机进行数据通讯。单片 机采集到模数转换完的数据后通过它的异步串行接口与主嵌 入式计算机通讯,最后由嵌入式计算机完成传感器的信息融 合及滤波处理,得到移动机器人的姿态航向信息。 为了方便主机对ADC数据的提取,在单片机发送数据时 定义了一个协议,这个协议如下所示: SGPADC,0x7C9B。0x9298,0x748C,0x778 F’0x298A,0x791B, 0x6E48,0x7F50,0x9101,N “¥GPADc”字符串是数据协议的头,跟随在协议头后的数 据就是ADC的数据串,其定义为开始3个为XYZ轴的加速度 计输出,中间3个为XYZ轴的陀螺仪数据输出,最后3个数据 为XYZ轴的磁阻传感器输出。字符“N”作为协议的结束符。 1.2系统硬件 由系统结构图,该系统使用了两个ANALOGDEVICES公 司的ADxL202E双轴加速度计,3个NEC—TOKIN公司的Tokin CG一16D系列单轴静电陀螺仪,磁阻传感器采用Honeywdl的 三轴磁阻传感器HMC2003。这些传感器构成三维直角坐标 系,能测量到空间三维的角速度、加速度及磁场分量,将它们 的测量输出进行信息融合,就可以得到姿态航向信息。这些 传感器的主要性能指标如下: (1)AD ADXL202E双轴加速度计 ADXL一202E加速度计是一个低成本、低功耗、双轴的加速 度计,可选择数字输出及模拟输出,它可以测量静态加速度, 也可以测量动态的加速度。其体积为5mmx5mmx2 rlkrnLCC 8 脚封装。静止时电流为0.6mA,非线性误差为满刻度的0.2%, 其动态响应频率最高为500 Hz。 (2)T0kin CG一16D系列单轴陀螺仪 Tokin CG一16D系列陀螺仪是单轴陶瓷静电陀螺仪,通常 使用在运动物体的导航系统中。CG一16D的最大测量角速度 为90度每秒,当载体高速旋转时,其输出不再是线性变化的。 在设计系统时,将3个陀螺仪安装成三维直角坐标系,其输出 通过运算放大电路与ADC相连,就可以根据陀螺仪输出电压 值的变化而得到空间三轴上的角速率。它的体积为8 rnnlx 20 rnmx8 rnnl,最大消耗电流0.7 mA,灵敏度温度特性+15%, 带宽为100Hz。 (3)Honeywell HMC2003三轴磁阻传感器 HoneywdlHMC2003是一个固态三轴磁阻式传感器,其封 ・——632・—— 1.3传感器数据标定 在进行传感器信息融合的时候,经ADC转换而获得传感 器测量的加速度、角速度以及磁场强度的采样信号值需要转换 为相应的测量值,测量值就代表了获得的加速度、角速度以及 磁场分量值。测量通常采用式(1)的公式来计算这些浮点数值 测量值=(传感器电压一零点电压)×刻度因子×单位 (1) 其中单位项可以不乘进去,因为刻度因子(factor ofscale, FS)本身包含了单位。 对线性加速度计标定时,先将其测量轴垂直指向地面,以 重力作为其输入值,这时测量的是重力加速度的大小,假设经 ADC转换后的16进制输出值为accel max并假设单位为Bit, 再将其测量轴垂直指向重力加速度的相反方向,重力加速度 仍作为其输入值,那么这时测量的是负的重力加速度大小,假 设经ADC转换后的16进制输出值为acce,min并假设单位为 Bit,那么加速度计的零点值accel null就可以通过式(2)得到 口ccP, ”//-T(accel-max+accel_min) (2) 因ADC输出的是16进制的数据,在这里获得的accel null,单位也为Bit,刻度因子accel scale的计算公式如式(3)所示 accel sea (accel—units)x2 accel— max-accel—.min 既然标定时采用的输入向量是重力加速度,那么accel units项的取值就是重力加速度的大小,这里假设重力加速度 大小为9.81 m/s 那么依据式(3)得到的accel scale的单位就是 m/sVBit。因为加速度计在测量范围内随输入的变化输出呈线 性变化,那么依据式(1)的原理,可以直接利用ADC 16进制输 出数据减去accel null再乘上accel scale就可以得到单轴上加 速度的测量值。因为需要测量空间3个方向上的加速度,所 以加速度仪在3个方向都需要进行如式(1)、式(2)的标定。 电子罗盘的标定方法跟加速度计传感器的标定原理类 似。当磁阻传感器单轴指向正北时获得ADC最小测量输出 值,单轴指向正南时获得ADC最大测量输出值,与式(2)类似 可以求出单轴上的零点值,单位为Bit。以正北方向0.6Gauss 的地球磁场强度,那么单轴上刻度因子的大小应该是1.2 Gauss 除以最大输出值与最小输出值之差,单位为Gauss/Bit。那么通 过获得ADC的16进制输出值减去零点值再乘上刻度因子就 可以得到单轴上的磁场强度值。 陀螺仪的刻度因子采用其标称值计算获得。由其标称灵 敏度的单位为mv/deg/sec,工作电压为5V,ADC的参考电压为 5 V,转换精度为16位,那么ADC的转换单位为5 000mv/2 Bit。 将ADC的转换单位除以陀螺仪的标称灵敏度,就可以得到单 维普资讯 http://www.cqvip.com

轴陀螺仪的刻度因子,单位为deg/sec/Bit,这里角速度以度来 表示,将其转换为弧度表示即可。以系统启动时的ADC的l6 进制数据输出为零点值,在获得系统运行过程中某一ADC l6 进制输出值时就可以依据式(1)的原理得到角速度值。 2信息融合算法 0 g r AHRS系统主要提供载体的姿态角和航向角。由机器人 0 g 的姿态角即时修正方程可以构成系统的状态方程,姿态角修 正可以采用四元数表示,那么状态变量就是四元数向量的4 ,0 个参数,其公式如下所示  一p 0 r 一 l g — 在AHRS系统中就是采用式(1)所示的公式来对载体的 姿态信息进行即时修正,方程所采用的3个方向上的角速率 pqrOI图l所示由陀螺仪获得。因为陀螺仪的零点漂移,如果 单纯依靠式(1)产生四元数状态,并转换为姿态角,误差累积 就会很大,这得到了实验的证实,所以就要用加速度计和磁 阻传感器的输出对这个状态进行修正。修正的过程就是一个 多传感器数据融合的过程,修正算法采用Kalman滤波器来进 行,通过式(1)也可到了Kalman滤波所需要的一个4x4阶的 系统状态转移矩阵 。 由加速度计和罗盘的数据可以直接得到载体的姿态角, 系统的观测变量就是3个欧拉角,也就是姿态角。由此系统 的观测矩阵H应该是3x4阶的。四元数与欧拉角的对应关系为 arctan2(2(q2 q3+qo g,),(1—2(g +g;))) (5) 0=-一arcsin(2(q,q3一qoq2)) (6)  ̄,=arctan2(2(q,g +go q3),(1—2(g} g;))) (7) 根据四元数与欧拉角的对应关系,系统的观测矩阵 应 该如下表示 即_[ 等 等L ㈦ 其中系统的非线性观测表达式应该表示如下 f一 茄 卿 I—arcsin(2(qI q3一q0 q2)) 【arctan(2( 一q, q2+q  oq 3) ̄. 根据式(9)对四元数各项求偏导,就得到式(8)的3x4阶观 测矩阵。由系统的状态状态方程和观测方程,就可以采用Ka1. man滤波算法进行AHRS系统的迭代。图2就表示了系统的 迭代过程,迭代过程是Kalman滤波的过程,也是多传感器信 息融合的过程。 3算法实时仿真 为了检验AHRS系统的算法和检测设计的AHRS系统的 性能,设计了~个的试验过程。具体操作是将AHRS系统装在 一个小推车上,将小推车绕一个圆形的花坛转圈,把硬件系统 的原始输出数据记录下来。数据采集程序运行在PC一104上, PC一104上的系统是裁剪了的Linux操作系统,它跟着小推车一 起走,记录转圈过程中AHRS系统的输出数据。最后将这些采 程序开始) I 赋初值 I主—一 l计算Kalman l—— I滤波方差矩阵l  』 迭代开始Ij——一  l计算观测矩阵1 I l处理加速度计I 处理传感l I磁阻传感器数据l 器数据l ★ l产生修正姿态角1 修正 l 童 计算状态I 堑鳖錾 l 图2 AHRS滤波迭代算法 集到数据在Mal1ab里进行仿真,就得到了如图3所示的结果。 图中横坐标表示时间,单位为秒;纵坐标表示姿态角,单位为度。 由图3(a)可以看出,当没有加Kalman滤波器,陀螺仪的零 点漂移对姿态角的影响是非常大的,如图中所示短时间内3 个姿态角都已经发散了。为此,按照图2所示的流程图设计 的Kalman滤波算法,来对姿态角进行修正。做实验时,由于 地面不平整,小车在运动时出现了小角度滚动和俯仰,Roll和 Pitch角也就出现抖动,如图3(b)、(c)所示。系统采用磁阻传感 器测量小车行进时的航向角,实验时小车绕花坛转过了一圈, 航向角的范围为一l80。~l80。之间,所以图3(d)所示的偏航角出 现一个跳变。由图3也可以看出,偏航角呈线性变化趋势,表 明AHRS系统的硬件是可以使用的。最后可以得出结论,半_一 .. 熊hAHRS 系统的Kalman滤波迭代算法可行,并且能够保证一定的精确 王∞ 度,可以在此基础上进行AHRS系统的工程软件设计。 ROl1 …0… _ |¨...._… 。。  … …一… ・-…_ r… …一…0… , ≤≥ 一。 。薯__l_ ≥ 簦:: (b) (c) (d) 图3 实测数据的AHRS系统算法结果 4结束语 AHRS系统是一种应用广泛的导航系统。小型无人直升 机中采用AHRS系统,就是利用其运动测量设备测量得到的 数据,实时可靠的得到其飞行时的姿态航向信息从而完成其 ・——633・—— 维普资讯 http://www.cqvip.com

导航控制系统的设计。实际系统采用嵌入式计算机及基于微 电子机械器件(MEMS)的导航传感器设备,结合合理的软件、 硬件设计,大为提高了导航系统的可靠性,同时也满足了工程 中对系统性能的要求。 吴俊伟.惯性技术基础【M】.哈尔滨:哈尔滨工程大学出版社, 2002. 付梦印,邓志红,张继伟.Kalman滤波理论及其在导航系统中 的应用[M】.北京:科学出版社,2003 参考文献: 【1】 胡小平.自主导航理论与应用[M】.长沙:国防科技大学出版社, 2002. 耿德根,宋建国,马潮,等.AVR高速嵌入式单片机原理与应用 [M】.北京:北京航空航天大学出版社,2001. 高鹏,安涛,老怀成.电路设计与制版一Prote199入门与提高【M】. 北京:人民邮电出版社,2000. 【2】 肖业伦.航空航天器运动的建模一飞行动力学的理论基础【M】. 北京:北京航空航天大学出版社,2003. (上接第614页) 何强,何英.Matlab扩展编程[M】.北京:清华大学出版社,2002. John Goerzen.Linux编程宝典[M】.北京:电子工业出版社,2000. 自己创建。使用辅助缓冲区时,也要使用和前述相似的加锁 和解锁机制及通知机制,在此不在赘述。本方案中,首先要根 据要混合的声音的最大路数,在应用程序中创建相应个数的 辅助缓冲区,然后将从本机捕获的音频数据和从网络上接收 的多路音频数据分别写入到不同的辅助缓冲区中,由主缓冲 入静音检测技术,即监测到有音频输入时才将音频流从网络 上传输出去,当无音频输入即音频流数据为静音数据时则不 传输,这样既可以节省网络带宽,又可以减少混音的路数,可 以提高系统的效率和混音后的音频质量。 进行混音并把混音结果送到输出设备,这样就可以实现网络 上多路声音的混合了。以下是部分关键代码: LPDII CTSOUND m dsDirectSound;//Directsound对象 DirectSoundCreate(NULL,&m dsDirectSound,NULL); m dsDirectSound.>SetCooperativeLevel(hWnd,DSSCL 4结束语 经测试,该方案可以十分容易的实现音频流的捕获,并可 以实现多路网络音频流混合,且混合后的各路声音没有时延、 停顿,语音清晰,效果良好。DirectX技术在开发多媒体应用时 使用十分方便高效,现已被广泛采用。音频的捕获、混音以及 回放在现今的网络通信中如网络视频会议、网上聊天、多媒体 教学及多人网络游戏中有广泛的应用,本方案可以达到多人 PRIORITY);//设置合作级别 DSBUFFERDESC dsbd; static LPDIRECTSOUNDBUFFER m dsbPrimary; 同时讲话的效果,提高了音频处理的效率和通用性。 //主缓冲区 …//初始化dsbd,用于设置主缓冲区的特征; _参考文献: 【l】 Microsoft公司.MicrosoftdirectX8.0SDK[EB/OL].http://www. microsoft.corn. mmary, dsDirectSound->CreateSoundBuffer(&dsbd,&mdsbPri_ULL)N; DSBUFFERDESC m dsbdOutput; … 【2】 罗智勇,张会汀.使用DirectX技术实现视频会议中的音频通 信[EB/OL].http://www.epc.corn.cn. //初始化m dsbdOutput,用于设置多个辅助缓冲 区的特征: //gq建多个辅助缓冲区用于混音 static LPDIRECTSOUNDBUFFER m arDsbOutput【MAX NUM]; for(i=O;i<MAX NUM:i++) dsrval=m dsDirectSound一>CreateSoundBuffer(&m dsbd— Output,&m_【3】 林浩,张国基.DirectSound封装技术及其音频捕捉应用【J】.微 型电脑应用,2004,20(3):57—59. 【4】 林丕源,肖德琴.局域网上声音实时捕捉和传送的实现【J】.计算 机应用,2002,22(6):64-66. 【5】 张占君,韩承德,杨雪量.基于自适应节的多媒体流QoS保证的 研究【J】.计算机学报,2002,23(12):1320—1324. 【6】 肖勇军,金伟正.基于D ct)(技术的语音编解码系统的实现 【J】.计算机工程,2005,3 1(8):1 80。1 82. 【7】 唐朝京,鲜明,肖顺平,等.Windows平台上实现多媒体信息实 arDsbOutput[i],NULL) …//填充本机捕获的音频数据到环形辅助缓冲区; //填充从网络上接收的音频数据到环形辅助缓冲区; for(int i=0;i<MAX NUM;i++) m_…时捕获的几种主要技术研究【J].计算机应用研究,2003,2o(5): OOPING); 37—39. arDsbOutput[i]->Play(0.0 DSBPL 【8】 黄永峰.因特网语音通信技术及其应用【M】.北京:人民邮电出 //停止播放辅助缓冲区 for(int i=0;i<MAX NUM:i++) m_版社.2002. 【9】 Richard Stevens W.TCP/IP详解卷1:协议【M】.北京:机械工业 出版社,2001. arDsbOutput[i]一>St0p(); …//释放缓冲区。 【lO】黄永峰.IP网络多媒体通信技术【M】.北京:人民邮电出版社, 2003. ・ 3 系统优化 考虑到网络传输带宽的,可以在音频采集模块中加 ———【11】沈乐君,程小平.基于模式的实时音频流分割与控制系统【J】_ 计算机工程与设计,2004,25(7):1211-1213. 634・—— 

因篇幅问题不能全部显示,请点此查看更多更全内容