基于IMU的虚拟训练动作获取系统软件设计_第1页
基于IMU的虚拟训练动作获取系统软件设计_第2页
基于IMU的虚拟训练动作获取系统软件设计_第3页
基于IMU的虚拟训练动作获取系统软件设计_第4页
基于IMU的虚拟训练动作获取系统软件设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于IMU的虚拟训练动作获取系统软件设计基金辅助:航天科技创新基金(N7CH0003)作者简介:李伟(1983-),男,西北工业大学,基金辅助:航天科技创新基金(N7CH0003)作者简介:李伟(1983-),男,西北工业大学,博士生,主要从事信号与信息处理方面的研究。Email:rockindark@163.com手机电话通讯作者:李伟,rockindark@163.com(西北工业大学电子信息学院,西安710129)摘要:(目的)本研究旨在为虚拟训练软件设计一种人性化接口设备(HumanInterfaceDevice,HID),以提高虚拟训练的逼真程度。(方法)方案选用微机电系统(Micro-Electro-MechanicalSystems,MEMS)惯性器件构建惯性测量单元(InertialMeasurementUnit,IMU)作为人体训练动作的采集设备;并在VC++环境下设计完成动作获取与识别算法,通过软件接口与虚拟训练软件相连。(结果)通过对原理样机测试,实验表明系统的解算精度在以内,可以满足虚拟训练的要求。(结论)本文的研究拓展了MEMS器件的应用领域,极大增强了虚拟训练的真实感和训练效果,具有广阔的市场前景。关键词:虚拟训练;动作获取;微机电系统;惯性测量单元中图号:TP216文献标志码:A(研究的重要意义)随着计算机图形技术和虚拟仿真技术的发展,为缩短训练周期,节约训练费用,三维虚拟训练软件广泛应用于武警、消防、水下作业等各高风险领域。(前人研究进展)然而目前此类软件大多仍采用鼠标、键盘进行操作,逼真程度和训练效果有限。虽然部分软件配备有专用模拟器、数据手套等设备,但往往价格昂贵难以广泛应用。(研究的切入点)目前常见的虚拟训练软件大都是将复杂的人体动作简化为感兴趣的若干基本训练动作,因此通过安装在人体适当部位的IMU模块,获取这些基本训练动作,进而驱动虚拟训练软件,受训人便可通过实际动作完成虚拟训练,极大的提高了虚拟训练效果。(研究拟解决的关键问题)本研究针对人体训练动作特点,着重研究了人体姿态解算算法,设计了系统解算软件。1系统组成如图1所示,本文开发的虚拟训练动作获取系统由两部分构成,包括IMU模块和系统解算软件。采用单片机XC164作为系统微处理器对IMU各个传感器进行数据采集;由于虚拟训练软件本身需要在通用计算机上运行,为降低系统成本,将IMU模块的解算程序也交由通用计算机完成。图1系统结构图Fig.1StructurediagramofsystemIMU模块主要由两个部分组成:前端传感器部分、数据采集部分,其结构如图2所示。图2惯性组合模块的系统框图Fig.2StructurediagramofIMU图中第一部分为前端传感器部分,由3个单轴陀螺ADXRS150、1个三轴加计ADXL330和1个三轴磁传感器HMC1043及相关外围电路构成。第二部分为数据采集部分,包括信号调理和单片机XC164。其中信号调理部分对陀螺仪、加速度计及磁传感器的输出的模拟信号进行适当的调整;XC164自带的10位A/D转换器将各个传感器输出的模拟信号数字化,并将采得的数据通过RS232串口发送给PC机。通过对现有虚拟训练软件的研究分析发现,通过装置于受训人头部、手部和腿部的三个IMU即可获取虚拟训练软件所需的训练动作。其中位于手部的IMU模块用于获取手部挥动和手腕转动等基本动作;位于腿部的IMU模块用于获取人体下蹲、匍匐和跳跃的基本姿态;位于头部的IMU模块用于获取人体转动和俯仰等基本动作。三个模块之间通过串口连接,将采得的数据通过头部IMU模块的处理器统一送至PC机。2系统算法解算软件的系统算法大致分为四个模块:传感器信号预处理算法、姿态解算算法和修正算法、动作识别算法。2.1传感器信号预处理算法预处理算法主要是设计FIR滤波器对各个传感器的输出进行低通滤波[1]。采用软件滤波器的优点是便于调整各项滤波器指标,使用灵活。首先在MATLAB环境下利用窗函数法设计低通滤波器。系统采样频率,根据器件参数以及人体训练动作的典型频率,选择截止频率。滤波器频域特性如图3所示。图3FIR低通滤波器Fig.3FIRLPfilter采用此滤波器对传感器电压输出序列进行滤波。如图4所示为X轴陀螺输出电压的滤波效果图,可见滤波后其输出波形的方差减小,从而在确保陀螺动态性能的前提下,使陀螺输出的稳定性和精度得以提高。图4滤波效果图Fig.4Effectoffilter2.2姿态解算算法姿态解算算法以磁罗盘解算[2]和捷联惯导解算[3]为核心,通过对分布于人体各部位的IMU模块信号的解算,得到人体的运动信息。算法流程如图3.3所示,首先对各传感器的输出进行补偿处理以提高系统精度。补偿处理算法具体包括:磁传感器罗差的最小二乘补偿算法[4]、陀螺仪温度补偿算法[5]、加速度计误差补偿算法[6];然后进行磁罗盘解算得到磁罗盘姿态角;采用磁罗盘姿态角进行初始对准,获得初始姿态矩阵,读取角速率信号和坐标变换后的加速度信号进行捷联惯导(Strap-downInertialNavigationSystem,SINS)解算得到SINS姿态角;计算速度和位置坐标;最终将SINS姿态角与速度、位置信息一起构成运动信息输出。图5姿态解算算法框图Fig.5Structurediagramofresolvingalgorithm上述过程中,为了消除外界强磁场对磁传感器的影响,需要对磁传感器进行定时复位修正[2];陀螺需要预先进行零位电压和标度因数标定[7],并通过转台试验进行陀螺温度曲线拟合;加速度计需要预先进行零位电压标定、标度因数和安装误差修正。进行磁罗盘解算时,以加速度计作为倾角传感器与磁传感器输出共同解算得到的三个磁罗盘姿态角,解算原理简述如下:(1)式中,为罗盘航向角,、、为三轴磁传感器测得的磁场强度。,为俯仰角和横滚角。当加速度计的x轴和y轴相对于重力场发生变化时,重力将在响应两个方向产生分量,测量两个方向的重力分量,就可以计算出,:(2)式中,,为加速度计x,y轴的重力测量值,g为标准重力加速度。进行捷联惯导解算时采用四元数解算法[3]。这是因为四元数解算法只需求解四个未知量的线性微分方程,计算量小,且算法简单,易于操作,适合于处理本文所涉及的人体训练动作这种低动态动作。算法采用磁罗盘输出的姿态角进行初始对准,采用四阶龙格库塔法求解线性微分方程,保证系统所需的解算精度和速度。2.3校准算法通过姿态解算,本系统同时解算得到两种姿态角:磁罗盘解算得到的姿态角和SINS姿态角。磁罗盘姿态角不存在积累误差,在小倾角、小动态时有较高的可信度,但其在高动态条件下的性能差;通过IMU计算得到的SINS姿态角在短时具有优良的动态性能,但由于惯性导航算法存在固有的积累误差,随时间误差变大,可见这两种系统存在很强的互补性。针对训练时人体动作中的大动态动作频繁但持续时间较短这一特点,借鉴组合导航的基本思路[8],通过校准算法对两种姿态角进行融合。校准算法的基本思路是:以磁罗盘姿态角IMU姿态角进行组合,利用卡尔曼滤波去估计系统的各种误差,再用误差状态的估计值去校准系统。上述校准算法的优点表现为:高精度磁罗盘姿态角作为外部量测值输入,频繁修正IMU姿态角,以控制其误差随时间的积累;而短时间内高精度的IMU姿态角,保证了人体进行短时大动态动作时的系统输出精度。2.4动作识别算法动作识别算法的主要功能是将姿态解算得到的运动信息进行识别并将其组合为训练动作矢量,通过软件接口发送至虚拟训练软件。动作矢量的组成如表1所示。其中BX、BY、BZ为人头部的姿态角,用于驱动虚拟训练场景中的人物视线;HX、HY、HZ为人手部的姿态角,用于驱动虚拟训练场景中手部动作;CX、CY为人在虚拟场景中的坐标,由头部IMU数据给出;G1、G2、G3分别为人体站立、下蹲、匍匐三种姿态,通过对腿部IMU数据识别得出。根据具体的虚拟训练任务,可配置若干Function功能动作矢量。表1训练动作矢量Tab.1TrainingmotionvectorBXBYBZHXHYHZCXCYG1G2G3Function3系统算法的VC++实现采用VC++在基于对话框应用程序框架中使用通信控件ActiveXMSComm控件编写串口通信程序。在此串口通信程序框架下嵌入了系统算法,并通过软件接口与虚拟训练软件相连,实现了对虚拟训练环境的驱动。通信程序的串口设置为COM1口,波特率9600,无校验,8位数据位,1位停止位。数据发送间隔为10ms,因此串口通信消息每10ms触发一次,从而系统程序的循环周期也为10ms。程序中通过检测通信协议中的标志位“$”来判定是否接到有效数据,引入和校验,并通过数据长度校验避免了由于计算机进行窗口切换等多任务操作而产生中断时引起的接收错误,确保了系统软件的可靠性。4样机测试结果手持IMU模块进行水平转动测试,系统解算出的SINS姿态角如图6~图8所示。图6偏航角输出波形Fig.6Waveformofyaw图7俯仰角输出波形Fig.7Waveformofpitch图8横滚角输出波形Fig.8Waveformofroll测试动作进行了水平的转动,初始角度为,三个SINS姿态角较为准确的反映了测试动作,由于引入了校准算法,误差控制在以内,测试结果表明系统满足虚拟训练软件的输入要求。5结束语本研究采用MEMS器件构成IMU模块进行动作数据采集,并采用VC++编写了系统软件。原理样机完成了人体动作的获取,通过软件接口与仿真环境相联,效果良好。此项研究拓展了惯性导航系统应用范围,并为下一阶段虚拟训练动作获取系统的实用化奠定了基础。此项技术可广泛应用于动画制作、人体动作捕捉、虚拟训练/游戏外设、计算机人体输入外设等应用领域,具有巨大的市场潜力。参考文献:[1]周金治,基于Matlab与DSP的FIR数字滤波器软硬件实现[J].现代电子技术,2005,208(17):1-2.[2]王永强,曾连荪,金志华.一种基于磁阻传感器的数字罗盘的设计[J].计算机测量与控制,2007,15(12):1864-1866.[3]秦永元.惯性导航[M].北京:科学出版社,2006.330-331.[4]邵婷婷,马建仓,胡士峰,王超.电子罗盘的倾斜及罗差补偿算法研究[J].传感技术学报,2007,20(6):1335-1337.[5]程龙,王寿荣,叶甫.硅微机械振动陀螺零偏温度补偿研究[J].传感技术学报,2008,21(3):483-485.[6]杨常松,徐晓苏.捷联惯导系统加速度计标度因数和安装误差的试验标定[J].测控技术,2005,24(12):57-59.[7]潘金艳,徐苛杰,蒋军彪,许勇.一种硅微陀螺的动态校零方法[J].压电与声光,2006,28(1):123-126.[8]唐笑慧,富立,范耀祖.自适应卡尔曼滤波在惯性测量组合误差补偿中的应用[J].中国惯性技术学报,2006,14(2):5-8.SoftwareDesignofVirtualTrainingMotionAcquisitionSystemBasedonIMULIWeiJINGZhan-rongZHANGJi-guang(SchoolofElectronicsandInformation,NorthwesternPolytechnicalUniversity,Xi’an710129,Abstract:(Objective)ThisresearchwasconductedtodesignaHumanInterfaceDevice(HID)forthevirtualtrainingsoftwaretoimprovetheeffectofvirtualtraining.(Method)DesignedInertialMeasurementUnit(IMU)withMicro-Electro-Mechanical

Systems(MEMS)devicesasthedataacquisitionunittomeasurethehumantrainingmotion;Designedsystemalgorithmtoacquirehumantrainingmotion;ProgrammedthesystemsoftwarewithVC++,whichusingsoftwareinterfacetocommunicatewiththevirtualtrainingsoftware.(Result)Aftertestingofthemodelmachine,theresultsshowedthattheresolvingprecision,whichwasatleast,satisfiedtheHYPERL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论