1. 引言
由于互联网的发展、移动设备和各种个人设备的流行,基于位置的服务(Location Based Services, LBS)变得越来越重要,用户获得定位信息可将其用于导航、跟踪、监测、信息推送等服务。GPS能够方便地提供室外的个人定位信息 [1] ,但是高楼林立的城市中心,地下室,建筑内部等环境中卫星信号都十分微弱,难以提供精确的位置信息。因此如何在恶劣环境中进行定位成为学术界和产业界的一个热门研究方向。同时,调查表明70%的移动电话使用和80%的数据连接使用来自室内 [2] ,室内定位技术已经成为人们的研究重点。
MEMS IMU以其自主性强、输出频率高、短时精度高、低成本、小体积等优点成为室内导航的理想设备。基于MEMS IMU的室内导航系统中最常用的结构是Foxlin提出的鞋绑式结构 [3] ;文献 [4] 将惯性传感器放在腰上,其数据平稳动态性弱,但是行走过程中零速区间不明显,对积累误差的修正较为复杂。零速修正(Zero Velocity Update, ZUPT)和零角速度修正(Zero Angular Rate Update, ZARU)是惯导系统中常用的修正算法,其中最为关键的就是零速区间的检测。
针对零速检测算法国内外学者提出了许多不同的算法,传统的零速检测算法都是以比力模值、比力方差和角速度模值为检测量进行零速检测 [5] [6] [7] ,该方法对于正常行走精度较大,但是对于不同的步态,如跳跃、踏步、快速行走等检测效果不够理想。文献 [8] 在此基础上设置了一个滑动的时间窗口来判断行人的运动模式,以此来自调节阈值的大小,具有一定适应性,但对于踏步走这类速度变化较大的步态效果依然不够理想;Bebek O等人是通过安装在脚底的压力传感器分析人体行走状态进而精确的找到行走的零速区间,进而进行零速修正 [9] ,文献 [10] 是通过引进室内RFID进行辅助定位,但是这两种方法都引入了其它设备,大大提高了系统的成本,限制了其推广性;文献 [11] 则是采用了一种假设检验的算法,其检测方法是通过获得惯性传感器的输出数据进行判断,但通过实验分析可以发现该方法仍不够成熟,定位精度不够理想。
基于此,本文仍采取将MEMS惯性传感器与脚固联的系统结构,并提出了一种适应于多步态的零速区间检测算法。对于不同的步态,该算法都可以较好地实现零速区间检测。首先通过样机实验分析了在不同的运动状态下MEMS IMU输出的加速度特性,确定相应状态下的阈值。在实际导航中先通过传感器输出的信息判断载体运动状态,再匹配相应状态下的阈值进行零速区间检测,进而进行零速修正和零角速度修正,自适应地抑制MEMS惯性传感器的误差积累。
2. MEMS惯性传感器室内定位系统原理
MEMS惯性传感器室内定位系统主要由三部分组成,分别为导航算法部分,零速检测部分以及误差修正部分。
图1所示为定位系统结构示意图,其中导航算法部分,在导航系统的初始对准中由于低成本MEMS IMU陀螺精度较低,不能敏感到地球自转角速度的变化,因此通过加速度计来计算俯仰角和横滚角,通过磁力计输出的磁场强度来计算航向角。导航解算模块,主要是通过IMU的输出实时解算载体的速度、姿态、位置等导航定位信息。
Figure 1. MEMS inertial sensors positioning
图1. MEMS惯性传感器定位系统结构示意图
零速检测部分,主要是先判断出载体的运动状态,包括正常行走、快跑、上楼、下楼等状态,然后以加速度计输出的比力的模值与方差和陀螺仪输出的角速度模值为检测量,设计多条件零速检测算法,针对不同运动状态确定不同阈值,进而确定零速区间。
为了消除MEMS IMU误差随时间发散的问题,通过IMU的误差模型构造卡尔曼滤波器,通过上一步骤检测出来的零速区间,以速度误差作为观测量进行滤波和状态估计并通过反馈校正来修正系统误差 [12] 。
3. 适应于多步态零速区间检测算法
传统的零速度区间检测算法是:根据IMU的输出频率设定一个滑动窗口在时间段内遍历所有的加速度信号,分别对每一个窗口内的数据求方差,然后将相应的变量与相应通过实验得到的单一阈值进行比较,在阈值范围内则为零速区间,否则就处于运动状态。该种零速检测算法在正常步态情况下会有比较高的精度,但是对于不同的行走步态检测效果则不够理想。因此针对多步态的情况本文采用先判断步态再匹配相应阈值的检测方法。多步态零速检测方法共分为三步:确定阈值,判断运动状态,零速区间判断。分别对每一步进行详细的介绍:
3.1. 判断阈