彭 慧,向高军,方 针,严隆辉,方海斌
(1.中国电子科技集团公司第二十六研究所,重庆 400060; 2.重庆邮电大学 智能传感技术与微系统重庆市高校工程研究中心,重庆400065)
随着微机电系统(MEMS)技术的发展,基于微惯性传感器组合的惯性定位技术已成为人们研究的热点[1]。惯性定位技术是一种不依赖外界环境,凭借自身惯性传感器实现人员自主定位的技术,由于可满足特定环境要求,该技术被广泛应用在消防应急救援等领域[2]。其中,惯性定位技术的核心部件微型惯性测量单元(MIMU)是一种集成微加速度计、微陀螺仪的MIMU,具有成本低及体积小等优点[3]。基于MIMU的行人航迹推算(PDR)算法通过对行人步态、步长和航向等信息进行计算,进而提供位置信息,实现了行人自主定位。其中,步数计算准确与否直接影响着导航精度,如何分析行人的运动特征,实现步数的精确统计,学者们展开了大量的研究。
目前,对于行人步数检测的研究方法典型的有固定阈值检测算法、时间阈值检测法、自适应阈值检测法、基于零速检测计步法及一些采用多源信息融合的计步算法等[4-9]。
固定阈值法[4]针对单一步态检测效果好,而对于行人多种运动步态时检测效果较差。时间阈值检测法[5]对行人单一步态下检测效果进一步提高,对于行人多运动模式,如由慢走变为快走甚至跑动时,未进行探讨。自适应波峰检测算法[6]是在惯性测量单元多种佩戴模式下,计步精度为99%以上,却将正常和非正常计步分开进行。多源信息融合计步算法[7]通过引入角速度、加速度等多元信息进行步数检测,对多种步态的步数检测精度为98%以上,但只针对惯性测量单元佩戴在脚尖部位姿态下进行计步,不符合使用可穿戴设备习惯;文献[8]通过将惯性测量单元佩戴在脚背上进行零速检测来计步,然而将惯性测量单元配搭在其他位置时将会导致算法失效;文献[9]通过主成分分析对特征数据进行选取,实现了三轴加速度传感器计步精度达到96.13%,但算法只针对佩戴裤子口袋时进行实验,未进行多种佩戴模式验证算法精度。
为实现MIMU多种佩戴方式下及行人多运动模式时的精确计步,本文提出了一种基于可穿戴式MIMU的波峰-双阈值步数检测算法。
为降低由惯性传感器随时间变化引入的累积误差,提高定位精度,根据行人运动特点,将行走过程中行走的距离等价于求解行人步数乘以对应步数的步长,结合航向信息实现定位。
PDR算法从确定位置开始,结合行人航向、步态、步长对下一时刻位置进行推算,则有
(1)
式中(xk,yk)、θi、di分别为第i步的位置、航向角和步长。当检测步数变化时,运用式(1)对行人进行位置解算,可见对行人步数精确统计在定位过程中至关重要。
行走是人类生活中最常见和最频繁的运动,行走时,左、右腿会周期性交替支撑,身体各部位产生相应的运动,这些运动产生的加速度、角速度等会随之发生变化。行人的行走是有规律的,采集行人载体坐标系下三轴加速度数据,如图1所示。由图可知,行走过程中加速度计数据存在明显的变化规律,且呈现周期性变化趋势。
图1 行人加速度变化情况
根据行走时加速度数据周期性变化的特性,对加速度等数据特征提取,进而实现步数统计。经典的波峰阈值检测法通过统计加速度波峰数目,并对其大小进行判断,进而实现计步。同时为消除伪波峰的影响,常见的方法是结合时间阈值判定对计步策略进行改进,然而行人运动速度是随意变换的,行走速度的任意变化使时间阈值判定法常会出现漏检的情况。基于此,本文在波峰阈值检测计步法的基础上,增加加速度阈值判别策略对步数进行辅助判断。
行走时加速度出现周期性正弦波的特性,可以通过检测加速度正弦波的波峰或波谷个数实现步数统计。波峰检测算法正是通过检测加速度波峰来实现计步,当连续检测到两个波峰时计步成功。
设载体坐标系下x、y和z轴加速度分别为axk、ayk、azk,对应合加速度有:
(2)
选取相连3个合加速度进行波峰检测,判断方法如下:
(3)
式中ak-1,ak,ak+1分别为k-1时刻、k时刻和k+1时刻的合加速度模值。当检测到C(k)=1时,表示波峰检测成功,否则未检测到波峰,同时检测到峰值加速度达到某一阈值时即计步成功。
传统的阈值算法计步中,常采用单一阈值大小,固定时间长度对行人正常行走下的步数进行统计,对于行人行走状态发生改变,如运动过程由慢走变为快走甚至跑动时,由于运动特征变化剧烈,使传统波峰阈值计步算法精度降低,图2为慢走、正常走、快走、跑动时经过10个历元的滑动窗函数滤波后的合加速度变化情况。
图2 不同步态下加速度变化情况
由图2可知,当行人速度由快到慢的过程中合加速度幅值变化剧烈,同时相连波峰由稀疏变密集,显然单一阈值和固定时间长度检测算法的检测效果将受到极大的影响,甚至导致定位失败。针对复杂步态变换下的步数统计,提出了一种基于可穿戴式MIMU的波峰-双阈值步数检测算法,以满足多运动步态条件下步数精确统计,提高步数检测算法对行人运动状态的适应性,进而提高定位精度。
2.2.1 双阈值判定
设定判别高阈值A,低阈值B,将ak依次与A、B进行比较,并将比较结果存入数组T中,判断方法如下:
(4)
2.2.2 波峰-双阈值计步策略
利用式(3)、(4)对合加速度的波峰、阈值大小进行判定,可得到波峰检测结果C(k)、阈值判断结果T(k)。对步数综合识别方法如下:
1) 当C(mi) &T(mi)=1时,记M={m1,m2,…,mi}时,表示在采样点mi时合加速度满足波峰条件,且ak≥A。
2) 当C(mi) &T(mi)=1时,存在T(n)=-1 &T(o)=-1,mi-1 3) 当检测到合加速度波峰值均满足判定方法1)、2)时,可得出: (5) 通过式(3)~(5)找出满足条件采样点mi,通过统计mi的个数即可完成行人步数统计。 图3 计步算法流程图 基于可穿戴式MIMU的波峰-双阈值步数检测算法流程如图3所示,通过采集三轴加速度信号进行窗函数滤波并计算合加速度,接着对合加速度信号进行波峰检测和阈值判定,利用本文提出的波峰-双阈值计步策略进行计步统计,直到导航结束。 针对本文提出的基于可穿戴式MIMU的波峰-双阈值步数检测算法,采用实验室自主研发的MIMU(集成三轴MEMS加速度计、三轴MEMS陀螺仪等传感器)作为实验硬件平台(见图4)进行测试。 图4 实验硬件设备 实验过程中,始终以MIMU载体坐标系z轴指向上,y轴指向前,x轴指向行进右方向的方式进行佩戴,且分别佩戴在上衣口袋C1、右衣口袋C2、右前裤口袋C3,右后裤口袋C4等位置(见图5),以采样频率为50 Hz,采集多种行走步态(包括慢走、常规行走、快走、慢跑、快跑等)状态下三轴加速度数据,并进行步数检测分析。 图5 MIMU佩戴模式示意图 针对 MIMU 4种佩戴模式下采集得到的数据,选用传统波峰-阈值检测计步算法和本文提出的波峰-双阈值步数检测算法进行分析。选取A=10.4 m/s2,B=10.3 m/s2,图6为MIMU分别配带在C1、C2、C3、C4等位置时合加速度变化情况,以及选用传统波峰阈值检测算法和本文提出的波峰-双阈值步数检测效果。为便于观察,已将阈值判定结果T(k)在图中进行了上移。 图6 各种佩戴方式下计步检测效果 从图6可看出,不同步态下加速度幅值变化明显且图像紧密程度存在差异,将检测结果与传统波峰-阈值计步算法进行对比分析,实验结果如表1所示。 表1 检测结果分析 实验结果表明,本文提出的波峰-阈值步数检测算法可以在多步态情况下进行精确计步,当MIMU分别配带在C1、C2、C3、C4等位置,准确率高于98%,具有较高精度,由于传统算法,有效增强了惯性定位技术在可穿戴式MIMU中的适应性。 传统波峰阈值检测算法对行人运动状态适应性差及存在伪波峰干扰问题,本文提出了一种基于MIMU加速度计的波峰-双阈值步数检测算法,采集每一步合加速度波峰并对合加速度进行判断,实现行人多种运动状态和MIMU多种佩戴模式下行人步数统计。算法首先对合加速度计信号进行窗函数滤波处理,接着对合加速度信号进行波峰检测,结合行人运动合加速度上、下阈值对行人步数进行检测。实验结果表明,本文提出的基于可穿戴式MIMU的波峰-双阈值步数检测算法,当MIMU分别佩戴在C1、C2、C3、C4等多种位置时,计步精度均高于98%。可见,本文提出的算法复杂度小,能够较好地应用于实际中,进而辅助惯性定位,增加可穿戴设备适应性,提高定位精度3 实验分析
3.1 实验设计
3.2 结果分析
4 结束语