本文主要是介绍基于手机传感器的计步算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
由于建筑物的阻挡屏蔽等因素,导致GPS信号在室内环境下无法实现满足要求的定位精度。随着智能手机的快速发展,现在手机一般都内置各种传感器模块,航位推测法是一种可行的技术方案,计步器、运动方向判断和步长检测是航位推测的三大关键部件,本文结合智能手机内置各种传感器模块,提出一种基于手机加速度传感器的计步算法。
一、计步器算法原理
通过提取人行走过程中的加速度数据进行分析是一种简单可行的步态检测方法,人在行走过程中有3个加速度分量,前向加速度、侧向加速度和垂直方向加速度,如图1所示。
智能手机上的加速度传感器是三轴加速度计,其坐标系统如图2所示,当人在行走过程中将手机平放,前端指向人行走的正前方时,人体加速度正前方时,人体加速度分量和手机加速度坐标系统的对应关系为:前向轴对应手机Y轴,侧向轴对应手机X轴,垂直轴对应手机Z轴。三轴加速度传感器内部装有惯性检测模块,当物体发生变速运动时,惯性检测模块产生弹性形变,这种形变在一定的范围之内与加速度成正比例关系,然后经过数模转换分解出三个方向的正交的加速度值。经过测试,当手机平放在水平面上时,其X、Y、Z三个轴方向的加速度大小应该分别为0,0,-1,其中合成加速度是XYZ三个方向加速的模。
如图所示,为三轴加速度的合成波形变化示意图,在0~2s时间内,人处于静止状态,加速度波形小幅波动,2s~10s之间,人处于慢跑状态,可以看出,每个迈步周期的波形都有许多小波峰,这是由人在跑步过程中的抖动引起的,此时波形已比较平滑,合成加速度信号值可以用来进行计步。
二、计步算法分析
目前,常用的计步算法主要有峰值检测法、零点穿越法和自相关检测法。峰值检测法利用人体行走时加速度信号出现的峰值计步。加速度在人行走时会呈现周期性变化,并且在提腿到最高处时达到峰值。现有的基于峰值的计步方法会设立一个阈值,若加速度值大于该阈值,则认为走了一步。阈值的设定直接影响步态检测的准确性,但是由于人的行走状态不同,不同的人行走的布幅大小不同,此外手机放置位置的随意性导致所设阈值没有普适性,不同情况下很难有一个统一可靠的阈值。零点穿越法的基本原理与峰值法类似。若探测到提腿至落地过程中加速度经过某一阈值,则完成了一步。该方法的仍然存在与峰值检测相同的缺点。自相关分析法是利用行人连续运动产生的加速度序列之间的相似性来进行步数的计算。微信小程序“跑步运动助手”通过自相关分析法进行测试,准确率达到95%。
这篇关于基于手机传感器的计步算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!