MEMS传感器的计步算法研究

2017-04-21 05:18楼喜中
中国计量大学学报 2017年1期
关键词:步数加速度计步长

楼喜中,陟 力,方 俊

(中国计量大学 信息工程学院,浙江 杭州 310018)

MEMS传感器的计步算法研究

楼喜中,陟 力,方 俊

(中国计量大学 信息工程学院,浙江 杭州 310018)

计步是惯性定位导航中重要环节之一,MEMS传感器在惯性定位导航中应用广泛,传统计步算法多采用基于加速度数据的峰值检算法.本算法融合了峰峰检测算法和穿越中间阈值算法,用户手持MEMS设备行走获取加速度计数据,进而算法推算行走的步数和轨迹.算法将从加速度采样数据中判断可能有效的计步点,算法判断这些点是否为有效计步点,进而得出行走的步数.最后结合步长、步数和航向信息推算行人的行走轨迹.实验结果显示,计步数据与实际步数误差为0.75%,推算的轨迹接近实际行走路径.该算法在不同人和不同环境中表现良好.

微机电系统;加速度计;计步;航迹推算

分析人类步态能够为健身、运动医学研究和定位导航提供很多有用的信息[1].人们根据行走的步数,可估算行走距离、能量消耗,便于人们了解每天的运动强度及新陈代谢水平,并及时调整.

将步数、步态及行走航向结合可推算行人的轨迹,这种技术已经用于PNS(Pedestrian Navigation System)步行导航系统.目前有基于GPS、WIFI、RSSI、UWB和惯性导航等定位导航方法,前四种方法部署成本较高,且易受环境因素干扰,而惯性导航定位方法具有小型化、易携带、成本低等优点.基于IMU惯性单元的惯性导航技术最为常见,IMU一般由加速度计、陀螺仪组成,能提加速度和旋转角速度信息,或添加磁力计辅助,可获取绝对航向,融合这些信息获取实时的定位导航信息[2].

计步是惯性定位导航中最重要的一个环节.最早的计步方法是应用机械式的开关统计行走步数,它是利用人在行走过程会周期振动触发机械开关,从而检测步伐记录步数.虽然这种计步方法简单、成本低、计步准确,但是机械开关容易随着使用的次数增加而磨损,从而影响判断步伐的准确率.随着科技的发展,传感器逐步集成化,集成电路与微机械组合成微机电系统(MEMS).微机电系统可在极小尺寸下,同时兼顾功耗和精度要求,基于MEMS的惯性导航技术具有体积小、价格低、精度高的优点.加速度计、陀螺仪和磁力计是具有代表性的MEMS传感器.

利用MEMS传感器计步,文献[3]提出采用基于手机加速度传感器,寻找步频、行走速度与加速度幅值之间关系实现计步.文献[4]提出基于加速度计的步态分析方法.文献[5]提出将传感器捆绑在脚面获取加速度,使用零速检测算法用于步态检测,通过隐马尔可夫模型预测步态.文献[6]提出峰值检测的计步算法.

本文硬件使用基于STM32的MPU9150传感器,MPU9150由三轴加速度计、三轴陀螺仪、三轴磁力计和STM32F103C8组成.本文算法是结合人体行走模型,使用基于中间阈值穿越、动态阈值和峰值检测算法,统计行走步数,并通过实验得到计步的准确率,比较实际路线和仿真路线偏离程度.算法的仿真平台为Matlab.

1 行走模型

建立合适的坐标系有利于研究人体行走状态模型.人体坐标系包括前向轴、侧向轴、垂直轴,前向轴正方向指向前方,侧向轴正方向指向身体右侧,如图1,MPU9150的加速度计、陀螺仪均与人体坐标系相对应,如图2.

图1 人体坐标系Figure 1 Body coordinate system

图2 设备坐标系Figure 2 Device coordinate system

人在行走过程中可以具体分解到以下几个动作:静止—身体前倾—单腿支撑迈腿—支撑腿前倾—摆腿脚跟着地—摆腿完全落地—换腿交叉步行.分解动作如图3[1].可见,人在行走过程中,人体的重心会随着行走周期地升降,那么在竖直方向上的加速度应该会产生明显的变化.

图3 人体行走模型Figure 3 Human walking model

手持MPU9150以正常步速行走一段距离的三个方向上的加速度如图4.

图4 三轴加速度数据图Figure 4 Three-axis acceleration data

从图上可以看出Z轴,即竖直方向上加速度的波形具有明显的周期性,而X、Y轴曲线周期性不明显,且波形不够平滑.

在实验过程中,手持设备的方位不是固定的,通过多组实验会发现Z轴竖直方向的加速度仍呈周期变化,所以通过分析其周期变化规律,设计算法计算行走步数.

2 算法部分

通常情况下人以最快的速度奔跑的时候,步频约为每秒5步,以最慢的速度行走时候,步频为每秒0.5步,即人行走步频在0.5~5 Hz之间,所以认为加速度中频率为0.5~5 Hz的是分析步态的有用信号.在行走中可能会引入其他噪声分量,可以选择合适的滤波方法滤出有效频率信号.文中使用设备采样频率为20 Hz,可使用频率为3 Hz的低通滤波器滤波.

在实验中,会发现加速度计、陀螺仪易受噪声影响,则使用双低通滤波器处理数据,两阶滤波的公式如下[7].传感器中的MEMS传感器分别收集行人从静止到运动状态的静止加速度和运动状态下加速度A={a1,a2,…,aN},运动状态下加速度A包含有行人本身的重力加速度G={g1,g2,…,gN}和行人行走过程中竖直上下加速度aZ={aZ,1,aZ,2,…,aZ,N}对Z轴上的加速度进行双低通滤波,可以获得人的重力加速度.

(1)

在文献[8]中提出基于中间阈值穿越的计步算法.其核心思想是在得到加速度的观测值后,一旦检测到一个从峰值到谷值穿越的一个过程,则被认定为完整的一步.而检测的标志是加速度从中间阈值上方穿越到下方则认定为一步.从峰值到谷值的差必须满足一定的穿越阈值,而且在行走过程会有无效的震动,即实际波峰旁的一些伪波峰,这些伪波峰容易被误认为有效的计步点,从而被计入步数.在文献[6]和文献[8]中容易计入这些伪波峰,而本文算法将会考虑如何消除这些伪波峰的影响,从而提高计步的精度.

在本文中采用峰-峰检测和中间阈值穿越的算法,行走过程中人竖直方向加速度波峰交替出现,相邻有效波峰之间应为完整一步,中间阈值为滤波得到的重力加速度值.算法则要检测到有效的峰值点,加速度值比当前重力加速度多0.1 g的可能是有效峰值点,当加速度幅值大于1.5 g的时候则为跑步状态.所以峰值点的检测、有效峰值点的判定是算法的核心内容.

首先,通过极大值的特点来检测极大值点,即当前加速度值大于前一个以及后一个值,且比当前重力加速度值多0.1 g.逐个检验Z轴的加速度采样点,若有采样点满足条件,将其列为临时计步极大值点B={b1,b2,…,bn},行人行走过程中所有临时有效计步点的峰值若大于1.2 g,令临时有效计步的间隔阈值为T1;反之,临时有效计步的间隔阈值为T2.在已经得到极大值点的时候,且临时计步极大值点个数大于2个以后,检测这两个极大值是否为产生步数的两个极值点,判断规则是满足以下两个条件:

1)两个临时计步极大值产生的时间间隔必须要大于设定阈值T1或者T2;

2)在此过程中,竖直方向加速度经历过从正向加速度值向负向加速度穿越的过程.穿越的中间阈值是对竖直方向加速度数据提取零频分量得到的中间值,即重力加速度分量.满足这个条件则说明步伐迈出.

在都满足上面的两个条件后,则可判断产生正确步伐的峰值点,接下来检验剩下的采样点,重复前两步过程以判断是否为有效峰值点.

MPU9150内部自带DMP能够实现硬件姿态解算,DMP为数字运动处理器,含有独立完成姿态解算算法的处理单元,可以输出设备航向信息.如果需要获取绝对航向,则需要使用磁力计数据解算航向.

二维航迹推算法原理如图5,(x0,y0)为行走起始点,(xi,yi)为行走的第i步点位置,θ={θ1,θ2,…,θN}为人行走航向,初始角度参考设备初次上电的位置,航向角为绕Z轴旋转角度,根据行走步数D、行走航向θ和步长SLi即可推算出行走轨迹H.SLi为步长信息[9-10].

图5 航迹推算Figure 5 Dead Reckoning

坐标更新方程如下:

(2)

步长是迈步脚着地后与支撑脚之间的距离,而步长与人性别、身高以及路面情况有关,同一个人的每一步的步长也不尽相同,所以在实验中要动态地调整步长信息.

文献[11]提出使用基于ZUPT(Zero Velocity Updates)零速修正的步长估计算法,并且能够实现统计行走的步数.将传感器捆绑在脚面,获取加速度计、陀螺仪数据,使用ZUPT算法获得每一步的起止时间,在每一步中分别对这前进和侧向的加速度二次积分,则可得到两个方向位移,二者的合位移则为单步的步长,进而可以推算行走的路程.

本文采用文献[12]中提出的算法计算步长,当行走速度加快时,相邻峰之间间隔会变小,同时步长也会变大,即随着步频变化,步长也会变化.所以在实验中不能将步长设为常数,而应随着步频动态变化,使用如下公式:

SL=K1fstep+K2.

(3)

其中SL为步长;fstep为实时步频;K1、K2为针对不同个体而标定的系数.

3 实 验

为了验证所提算法的有效性,本文使用包含MPU9150传感器的模块进行测试.手持模块至于胸前,使传感器坐标与人体坐标相重合,以20 Hz采样率获取加速度计、陀螺仪数据.

先持握模块慢走15步,再以正常步速行走15步,最后快步走15步,Z轴加速度如图6,可见随着步速增加,加速度的幅值会增加,波峰与波峰间隔距离减小,说明步频也随之提高.

图6 行走三段路Figure 6 Three segment data

根据行走速度将实验分为慢走、正常走、快步走、慢跑、正常跑、快跑和混合行走(不同步速组合)这六类,依次测试在不同速度下的算法准确性.每类测试分为10组,在室内沿东西方向直线行走.具体测试见表1,受版面所限每类显示2组.在每组的实验中,计步数与实际步数误差在1到3步之间,准确率较高,且与市场上的计步腕表、手机计步软件相比精度更高.

文献[7~8]提出的算法最开始会对原加速度数据进行滤波,滤波的时候容易将一些波形忽略掉,且容易出现记错有效步伐的位置或者少计步的情况,如图7中黑色方框处存在计步错误点.在文献[11]中提出算法只能计算出一大步,即每走两步为一大步,如图8中的每次上升时间点分别为标记每一大步的起始位置,认为相邻的起始点是一大步,而图中黑色箭头处有两个标记位置很近,实际不可能在短时间内行走一大步,即行走两步是错误的.

表1 计步结果

图7 文献[8]计步算法结果Figure 7 Result of step counting in Reference[8]

图8 文献[11]计步算法结果Figure 8 Result of step counting in Reference[11]

经过多次实验,本文所提算法也会有误计步的情况发生,进而影响计步结果的准确性.如下面图9~10.图9(a)中算法判定B点为有效的计步点,但是从幅值上判断,A点的幅值较B点更大.B点位置更接近前一峰值点,这不符合匀速直线行走的特点,而A点与前后峰值点的时间间隔更符合这一特点,所以A点应是有效的计步点位置.就图10(a)而言,按照上述的分析D点不是有效的计步点,而C点应该为有效的计步点.

图9 误计步情况Figure 9 Wrong step

图10 多计步情况Figure 10 Multi pedometer

针对这两种误差情况尝试用以下的方法解决:1)有效峰值点矩阵(已获得的计步点位置)中数据连续两点做差,得到峰值点的间隔数据矩阵;2)对间隔数据矩阵每连续四个数据求平均值,得到关于均值的矩阵;3)算法依次检查当前的峰值间隔,如果第2步中的均值比峰值间隔多90%,则该点不是有效峰值点;如果当前间隔比均值多15%,则再次寻找这附近的有效峰值点.经过修改后能找到正确的计步点,如图9(b),图10(b),修改后的算法再次测试后能纠正计步错误的点.

相比较文献[7~8]提出的算法,本文提出的算法可以保留最原始的数据,能够较有效地避免上述计步错误情况的发生.较之文献[11]提出的算法,本文算法不用推算每一大步的行走位置点,能够将计步的位置点标记到每一步,这种计步方法更符合实际的行走情况.

为了验证算法结合航向的准确性,我们在教学楼楼层内行走,测试结果如图11,直线代表实际行走路径,黑色点代表算法推算的航迹,推算路径与实际路径误差在0.5 m内.

图11 行走轨迹Figure 11 Walking trajectory

4 结 语

本文利用MEMS传感器获取加速度数据,根据实验决定使用Z轴竖直方向上的加速度推算行走的步数.实验结果显示,以不同的速度行走,算法计步误差为0.75%,找到并纠正在计步中易出现的错误,并能够结合航向角推算航迹,使航迹接近实际行走路径.

在计步的过程中,仅考虑到加速度信息,没有参考陀螺仪数据,且在绘制航迹的时候没有匹配地图,所以还应改进算法,结合绝对航向以适应不同的环境,这将是接下来的工作.

[1] 王竣,王修晖.步态能量图和KFDA的步态识别研究[J].中国计量大学学报,2016,27(3):216-222. WANG J, WANG X H. Gait recognition based on gei and kfda[J].Journal of China University of Metrology,2016,27(3):216-222.

[2] XIANG Z Y, QI B Z, WANG J F. A novel body motion model based personal dead-reckoning system[C]// Photonics, 3D-Imaging, and Visualization. Portugal:[s.n],2011:1869-1872.

[3] NAJME Z, KUMAR A, CHAUHAN A. Step counting using smartphone-based accelerometer[J].International Journal on Computer Science & Engineering,2012:4(5):675-681.

[4] LIU B S, LIU Y T, YU C. Gait recognition and walking exercise intensity estimation[J].International Journal of Environmental Research & Public Health,2014,11(4):3822-3844.

[5] SUH Y S, PARK S. Pedestrian inertial navigation with gait phase detection assisted zero velocity updating[C]//Autonomous Robots and Agents(ICARA). New Zealand: IEEE,2009:336-341.

[7] JOHANN B, LAURO O. Heuristic drift elimination for personnel tracking systems[J].The Journal of Navigation,2010,63(4):591-606.

[8] ZHAO N. Full-featured pedometer design realized with 3-axis digital accelerometer[J].Analog Dialogue,2010,44(6):1-5.

[9] 殷红.基于foot-mounted的IMU室内行人航迹推算研究[D].南昌:南昌大学,2013. YIN H. Imu Indoor Pedestrian Dead Reckoning Research Based on Foot-mounted[D]. Nanchang: Nanchang University,2013.

[10] SHIN B, LEE J H, LEE H, et al. Indoor 3D pedestrian tracking algorithm based on pdr using smarthphone[C]//Control, Automation and Systems(ICCAS). Korea: IEEE,2012:1442-1445.

[11] JIMENEZ A R, SECO F, PRIETO C, et al. A comparison of pedestrian dead-Reckoning algorithms using a low-cost mems imu[C]// Intelligent Signal Processing. Hungary: IEEE,2009:37-42.

[12] 申崇江,冯成涛,崔莹,等.穿戴式室内行人航位推算系统研究[C]//第五届中国卫星导航学术年会论文集.南京:中国卫星导航学术年会,2014:1-5. SHEN C J, FENG C T, CUI Y, et al. Research on wearable indoor pedestrian dead reckoning system[C]//China Satellite Navigation Conference 2014. Nanjing: China Satellite Navigation Conference,2014:1-5.

Algorithm of MEMS sensor step counting

LOU Xizhong, ZHI Li, FANG Jun
(College of Information Engineering, China Jiliang University, Hangzhou 310018, China)

Step counting is an important part of inertial navigation. MEMS sensors are widely used in inertial navigation. The traditional algorithm of step counting uses the acceleration data based on the peak detection method based on the accelerometer data. This algorithm combines the peak detection algorithm with the crossing middle threshold algorithm. The MEMS device obtains the accelerometer data and calculate the steps and routes with the algorithm. The algorithm can determine the possible points from the accelerometer data, judge the valid pedometer point, and calculate the walking steps. It can also give the walking routes combining with step length, step numbers and the direction. Experimental results show that the error of the proposed algorithm is about 0.75%, and tracks are close to the actual walking routes. This algorithm has good performance with different people and in different circumstances.

MEMS; accelerometer; step counting; dead reckoning

2096-2835(2017)01-0081-06

10.3969/j.issn.2096-2835.2017.01.014

2016-11-11 《中国计量大学学报》网址:zgjl.cbpt.cnki.net

楼喜中(1976- ),男,浙江省义乌人,副教授,主要研究方向为无线定位、MEMS传感器导航定位、多天线技术、信道编码.E-mail:albert.lou@boogoob.com.

TN96

A

猜你喜欢
步数加速度计步长
中心差商公式变步长算法的计算终止条件
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
楚国的探索之旅
基于随机森林回归的智能手机用步长估计模型
加速度计在精密离心机上的标定方法与误差分析
微信运动步数识人指南
国人运动偏爱健走
基于遗传算法的加速度计免转台标定方法
基于动态步长的无人机三维实时航迹规划
高g值加速度计高冲击校准技术综述