JSTA  >> Vol. 7 No. 2 (April 2019)

    基于多步态零速检测的MEMS IMU室内定位技术
    Indoor Positioning Technology Based on MEMS IMU Using Multi-Step Zero Speed Detection

  • 全文下载: PDF(3310KB) HTML   XML   PP.28-38   DOI: 10.12677/JSTA.2019.72004  
  • 下载量: 129  浏览量: 427  

作者:  

刘晓东,田 爽,粟 伟:重庆华渝电气集团有限公司,技术开发中心,重庆

关键词:
MEMS惯性传感器室内定位零速区间卡尔曼滤波MEMS Inertial Sensor Indoor Positioning Zero Velocity Interval Kalman Filter

摘要:

通过研究基于低成本MEMS/IMU的室内定位方法,针对传统单一阈值零速区间检测算法存在的不足,提出了一种适应于多步态的零速区间检测算法。低成本MEMS IMU固联在脚上,先根据传感器测量到的信息判断行人属于哪种运动状态,进而在相应状态的阈值条件下采用比力、比力方差、角速度三者相结合的方法进行零速区间检测,同时设计卡尔曼滤波器在静止时间段估计出系统的姿态误差、速度位置误差,并通过反馈校正对系统进行误差补偿。最后采用低成本MEMS IMU进行实验验证,结果表明定位精度可以保持在总行程的3%左右。

An indoor positioning method based on low cost MEMS inertial sensor is studied. Aiming at the shortcomings of traditional single threshold zero speed interval detection algorithm, a new algo-rithm suitable for multi gait is proposed. The low cost inertial measurement unit (IMU) is fixed on the foot. Firstly, according to the output of the acceleration, motion state of the pedestrian can be determined. Then, under the threshold condition of the corresponding state, the zero speed interval detection is carried out by combining the three methods of specific force, specific force variance and angular velocity. At the same time, the Kalman filter is designed to estimate the system attitude error and the speed position error in the static time and the system is compensated by the feedback correction. Finally, the low cost MEMS IMU is used f to verify the experiment. The results show that the positioning accuracy can be maintained at about 3%.

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. 判断阈值选取

在进行零速检测之前需要先确定不同运动状态下的判断阈值。前期通过分析加速度计和陀螺仪的噪声特性和多次试验确定不同状态下的阈值,表1为慢速行走、上下楼梯、踏步三种行走状态的阈值参数选择。

Table 1. Selection of threshold parameters

表1. 阈值参数选择

t h a min t h a max 为比力模值的阈值, t h σ 为比力方差的阈值, t h w 为加速度模值的阈值。

3.2. 判断当前运动状态

每次采集当加速度等运动信息后,需要根据所获得的信息进行判断当前的运动状态,再根据运动状态选取相应的判断阈值进行判断。

根据每一个采样时刻 i 的比力模值进行判断, i 时刻的比力模值表示如下式:

f i | = f x i 2 + f y i 2 + f z i 2 (1)

为了对运动状态进行判断,本文对不同运动状态下加速度计的输出进行分析,图2图3即为正常行走和上下楼梯两种状态下的输出结果。

Figure 2. Combined acceleration of normal state

图2. 正常行走状态下的合加速度

Figure 3. Combined acceleration of climbing stairs

图3. 上楼状态下的合加速度

通过分析不同状态下的加速度信号,可以发现不同行走状态下最大值和最小值之差不同。因此对一定的时间周期内的加速度数据进行扫描,该时间周期通常选取约等于人体的一个迈步周期。然后可以通过该周期内的差值辨识出这段时间的步速是正常行走、快速、上下楼、踏步或跳跃等状态。

具体判定范围如下:

f max f min < 3 g 是正常行走的范围;

3 g < f max f min < 4 g 是快速行走的范围;

4 g < f max f min < 7 g 是上下楼梯的范围;

f max f min > 7 g 是大踏步或跳跃的范围。

3.3. 零速区间检测

根据以上辨识出来的运动状态,选取相应的判断阈值,采用三条件结合的方法进行检测,比传统的依靠单一的元素进行检测精度更高。三个判断条件分别如下:

条件一:比力模值 f k | = f x 2 + f y 2 + f z 2 ,假设 t h a min , t h a max 分别为置信区间的最小值和最大值。

condition 1 = { 1 0 t h a min < | f k | < t h a max else (2)

其中1表示检测为静止状态,0表示运动状态。

条件二:比力的方差。采用滑动窗口观测比力方差能够有效检测步态周期中信号的突变阶段。计算如下:

σ f k 2 = 1 2 m + 1 j = k m k + m ( f j f ¯ k ) 2 (3)

其中, f ¯ k 为比力均值; m 为滑动窗口大小,与输出频率有关。

condition 2 = { 1 0 σ f k < t h σ else (4)

条件三:角速度模值 w k | = w x 2 + w y 2 + w z 2 。在零速区间角速度应当趋向于零,确定相应的角速度阈值 t h w 来确定零速区间。

condition 3 = { 1 0 | w k | < t h w else (5)

当条件一、条件二、条件三同时满足的时候则记录此时状态为1,为我们所需要检测到的零速区间,若为0则表示运动状态。

图4图5为单一阈值检测方法和适应多步态检测方法的检测结果对比。可以看出该行走过程中共有7个零速区间,传统的检测方案只有四个区间可以较好地检测出来,检测准确率仅有57.14%,而本文提出的方法则检测出全部区间,检测准确率有较大提升。

Figure 4. Detection result in big strides by a single threshold method

图4. 采用单一阈值检测方法的大踏步检测结果

Figure 5. Detection result in big strides by the method suitable for multi gait

图5. 采用多步态检测方法的大踏步检测结果

4. 零速修正滤波算法

本文所选用的导航坐标系是东北天地理坐标系,将三维速度误差、三维姿态误差角和三维位置误差列为导航信息的误差,考虑到惯性器件如陀螺漂移、加表零偏引起的误差,则卡尔曼滤波的状态量为:

X = [ δ φ ε b δ p n δ v n b ] T (6)

其中, δ φ 表示姿态误差,包括俯仰角误差、航向角误差和横滚角误差;

ε b 表示三个轴向的陀螺漂移;

δ p 表示导航坐标系下导航解算的位置误差;

δ v n 表示导航坐标系下导航解算的速度误差;

b 表示三个轴向的加速度误差。

理论上在零速区间解算的速度和陀螺仪的角速度输出为零,但由于MEMS IMU本身的噪声误差使得实际解算的速度和陀螺仪输出的角速度不为零。此时可以利用零速修正和零角速度修正,将零速区间的速度和陀螺输出的角速度作为卡尔曼滤波的观测量。

本文为了提高定位的精度,同时在零速区间采用ZUPT和ZARU,则结合两者之后的量测值可以表示为;

Z k = [ δ v n ] T = [ v n ] T [ 0 0 0 ] T (7)

卡尔曼滤波器可以表示为:

{ X ˙ ( t ) = F ( t ) X ( t ) + W ( t ) Z k = H k X k + V k (8)

量测矩阵为

H k = [ 0 3 × 3 I 3 × 3 0 3 × 3 0 3 × 3 0 3 × 3 0 3 × 3 0 3 × 3 0 3 × 3 I 3 × 3 0 3 × 3 ] (9)

由于零速修正和零角速度修正的量测值:零速区间的速度和陀螺输出的角速度只有在零速时刻才能获取,因此本文的卡尔曼滤波算法在检测到零速区间时做时间更新和量测更新,在未检测到零速区间时只做时间更新。

5. 定位实验验证

5.1. 硬件介绍

采用的实验样机是MPU9250 MEMS惯导模块,由三轴加速度计、三轴陀螺仪和三轴磁力计组成,具体性能指标如表2所示:

Table 2. Hardware performance index

表2. 硬件性能指标

N表示该项没有具体指标。

模块通过蓝牙与上位机进行通讯,具体实物图如图6所示。

Figure 6. MPU9250 physical drawing

图6. MPU9250 MEMS惯导模块实物图

为了验证算法的有效性,分别进行了三组不同运动状态的实验,为一组平面行走实验、一组三维上下楼实验,平面行走为长距离多种步速交替变化的行走实验。

5.2. 平面行走实验

针对平行长距离行走实验给出了传统单一阈值检测算法得到的位置曲线和本文提出的多步态检测算法得到的位置曲线,实验结果如图7图8所示。

表3为平面行走实验中,两种算法的结果对比,其中误差用起点与终点之间的距离表示。

单一阈值法用正常平面行走的阈值在一定程度上抑制了误差的发散,但在行走过程中的拐弯或者掉头时会产生较大的加速度差值,传统的算法在这种情况下不可避免的会产生累积误差。由实验结果可以看出,针对多种步速变化交替的行走过程,采用多步态零速检测可以明显提高定位精度,误差减小了接近一倍。

Figure 7. Position curve of plane walking corrected by single threshold and ZUPT

图7. 单一阈值 + ZUPT算法修正的平面行走位置曲线

Figure 8. Position curve of plane walking corrected by the multi gait algorithm

图8. 多步态算法修正的平面行走位置曲线

Table 3. Contradistinction of plane walking result in two ways

表3. 两种算法平面行走结果对比

5.3. 三维上下楼实验

三维上下楼行走实验是从二楼沿右侧楼梯到达四楼穿过一段走廊在从左侧楼梯下来回到起点。同样给出了传统单一阈值检测算法得到的位置曲线和本文提出的多步态检测算法得到的位置曲线,实验结果如图9图10所示。

Figure 9. Position curve of stair walking corrected by single threshold and ZUPT

图9. 单一阈值 + ZUPT算法修正的上下楼梯位置曲线

Figure 10. Position curve of stair walking corrected by the multi gait algorithm

图10. 多步态算法修正的上下楼梯位置曲线

表4为上下楼实验中,两种算法的结果对比,其中误差用起点与终点之间的距离表示。

Table 4. Contradistinction of stair walking result in two ways

表4. 两种算法上下楼梯结果对比

通过对比上下楼的结果可以发现,本文提出的基于多步态零速检测的方法大大提高了定位的精度。在上下楼过程中会出现多种运动状态如楼梯与楼梯之间的平面行走和上下台阶时的变加速度运动,用传统的单一阈值 + ZUPT算法进行检测零速区间,容易出现阈值不匹配的问题,造成累积误差。而多步态零速检测算法根据足部状态调整阈值可以有效地减少了误差积累。

6. 结论

本文基于低成本、低精度的惯性传感器进行研究室内定位技术,利用脚步的运动规律对行走过程中的累积的误差进行了校正。针对传统单一阈值零速检测算法无法处理多种步态的情况,提出一种多步态零速检测算法,先辨识脚步运动状态再检测零速区间,该算法具有很强的自适应性。实验结果表明该算法不但对普通的二维平面行走具有较高的定位精度,对于复杂的上下楼梯运动状态依然可以保证较高的定位精度,且定位精度可以保证在总行程的3%左右。后期还可以通过对MEMS器件进行标定,改进滤波算法和自适应算法使导航精度得到进一步的提高。同时在低成本MEMS室内导航研究过程中,单独的依靠MEMS IMU以及零速修正还不能实现远距离高精度导航,为研究出更高精度的导航系统可以考虑地图约束、无线信号辅助等定位辅助定位方式。同时也可以和GPS组合形成室内外无缝导航。

文章引用:
刘晓东, 田爽, 粟伟. 基于多步态零速检测的MEMS IMU室内定位技术[J]. 传感器技术与应用, 2019, 7(2): 28-38. https://doi.org/10.12677/JSTA.2019.72004

参考文献

[1] Jo, K., Chu, K. and Sunwoo, M. (2012) Interacting Multiple Model Filter-Based Sensor Fusion of GPS with In-Vehicle Sensors for Real-Time Vehicle Positioning. IEEE Transactions on Intelligent Transportation Systems, 13, 329-343.
[2] 刘成. LBS定位技术研究与发展现状[J]. 导航定位学报, 2013(1): 78-83.
[3] Foxlin, E. (2005) Pedestrian Tracking with Shoe-Mounted Inertial Sensors. IEEE Computer Graphics and Applications, 25, 38-46.
[4] Alvarez, J.C., López, A.M., González, R.C., et al. (2012) Pedestrian Dead Reckoning with Waist-Worn Inertial Sensors. Proceedings of Instrumentation and Measurement Technology Conference (12MTC), Graz, Austria, 13-16 May 2012, 24-27.
[5] Fourati, H. (2015) Heterogeneous Data Fusion Algorithm for Pedestrian Navigation via Foot-Mounted Inertial Measurement Unit and Complementary Filter. IEEE Transactions on Instrumentation Measurement, 64, 221-229.
https://doi.org/10.1109/TIM.2014.2335912
[6] 张金亮, 秦永元, 梅春波. 基于MEMS惯性技术的鞋式个人导航系统[J]. 中国惯性技术学报, 2011, 19(3): 253-256.
[7] 王立兵, 杨松普, 罗巍, 等. 足部安装MEMS-IMU个人导航系统[J]. 中国惯性技术学报, 2016, 24(4): 460-463.
[8] 王普, 潘凯, 任明荣, 等. 基于伪自适应阈值零速检测法的室内个人导航系统[J]. 北京工业大学学报, 2015(9): 1308-1313.
[9] Bebek, O., Suster, M.A., Rajgopal, S., et al. (2010) Personal Navigation via Shoe Mounted Inertial Measurement Units. Proceedings of International Conference on Intelligent Robots and Systems (IROS), Taipei, 18-22 October 2010.
[10] Ramón, A., Ruiz, J., et al. (2012) Accurate Pedestrian Indoor Navigation by Tightly Coupling Foot-Mounted IMU and RFID Measurements. Instrumentation and Measurement, 11, 178-189.
[11] Skog, I., Handel, P., Nilsson, J., et al. (2010) Zero-Velocity Detection—An Algorithm Evaluation. IEEE Transactions on Biomedical Engineering, 57, 2657-2666.
[12] Zhang, H., Yuan, W., Shen, Q., et al. (2015) A Handheld Inertial Pedestrian Navigation System with Accurate Step Modes and Device Poses Recognition. IEEE Sensors Journal, 15, 1421-1429.
https://doi.org/10.1109/JSEN.2014.2363157