适用于跑步训练的高精度可穿戴测速传感器研发
2021-06-04宋英健彭劲阳尹武涛张辉
宋英健,彭劲阳,尹武涛,张辉
(无锡博智芯科技有限公司,江苏无锡,214026)
引言
科学的训练计划对于田径运动员以及跑步运动爱好者尤为重要,科学的训练可以使运动员减少受伤风险,更充分的备战各种级别的比赛,也便于跑步爱好者制定合适的强度运动计划,避免意外受伤。利用人体穿戴传感,采集跑步数据及智能化分析训练结果,不仅可以帮助运动员提高训练质量和运动能力还可以推进全民运动,让更多的人积极参与跑步运动提升全民身体素质。这种设备既可以为运动员定制合理强度的训练计划,也可以为运动爱好者提供更专业的实时数据以供参考,提升了的运动的趣味性,从而推动全民运动与健身。
训练强度的分配是制定训练计划的关键环节,而功率等同于训练强度。计算跑步速度是衡量跑步过程中功率消耗的重要环节,功率是由力和速度共同决定,跑步过程中外力恒定,除了地球施加的重力并无其他外力,因此速度越快等同于单位时间内做功越多,功率越大。所以高精度的测速设备对于田径运动员以及跑步爱好者尤为重要。20世纪90年代,Luinge等[11]和Bachmann等[12]对可穿戴式传感器的人体运动跟踪技术进行了研究[13]。但是可穿戴式传感器应用于实时监测人体速度的极少,Yang[9]开发了一种跑步测速算法且仅利用了单一传感器,实验结果良好,但是这对传感器精度和成本要求都很高;Sabatini[15]设计了一种估计人体行走速度的算法,但是缺少对高速段的实验验证。走和跑是两种不同的人体运动机制,很难兼顾行走和跑步的测速准确性[9]。且由于人的身材差异,跑步习惯,以及跑步姿势的不同加上技术上硬件设备的误差等干扰,致使很难精确测速。
基于此难题,我们设计了一款基于MEMS IMU的可穿戴设备,不仅可以高精度测速且具有很强的鲁棒性;算法对不同身材、不同跑步姿势以及硬件差异性不敏感,测速误差一致性良好,即使跑步模态之间相互切换(例如,散步,快走,慢跑,快速跑,爬坡等),也可确保高精度测速。本文设计的可穿戴设备由多个低成本加速度传感器,陀螺仪以及磁力计组成。利用不同量程的加速度传感器融合可提高测速精度[15],避免无法采集加速度较大的数据以及加速度较小的数据的情况;融合陀螺仪以便应用姿态解算等导航算法;磁力计用以消除磁场的干扰,辅助陀螺仪更准确的计算航向角度。软件与算法部分分为室内,户外两种模式,通过调整不同的环境参数,以便获得更精确的测速数据,使用户有更好的体验感。
本文后续内容主体如下:1)介绍此设备算法原理与方法;2)呈现此设备的仿真实验结果以及与业界同类顶级设备对比结果;3)实验结果总结与分析。
1 高精度测速算法
本设备测速算法不仅可以实现精准测速,且计算复杂度低,可以实现实时测速。本算法首先对IMU传感器进行灵敏度以及零偏补偿,消除设备偏差。接着对补偿后的数据进行判定其是否为脚步静止段数据,如是则对其应用零速补偿算法,然后做姿态解算,进而求解速度。具体流程如图1。
图1 算法流程图
1.1 IMU传感器的零偏和灵敏度补偿
由于IMU传感器的硬件差异,不同电路板之间一致性与应力差异,会导致MEMS IMU偏差不一致,需要对MEMS传感器进行补偿。因此,为减小不同设备导致的实验数据测试结果差异,所有的IMU传感器都需要进行一定程度的补偿与纠偏。
1.1.1 传感器的灵敏度补偿
传感器的灵敏度等同于传感器的增益[1],是需要补偿的一个重要参数。接下来分别对加速度和角速度灵敏度补偿做简略描述。
将同一个轴分别静置于垂直向上的方向以及垂直向下的方向,静止放置一段时间,求出两段数据的均值,用较大的数减去较小的数得出差值,再用2去除以这个差值所得结果为加速度计这个轴的灵敏度。对加速度计的三个轴均做如上的操作,便可得出三个轴各自的灵敏度,灵敏度几乎不随时间或者温度变化而变化[1],计算公式如下:
将测量角速度的传感器原地分别绕X轴,Y轴,Z轴逆时针稳定旋转N圈,所得结果积分的理想值应为N× 360°,将输出数据进行积分,所得结果与N×360°做比,即为角速度计的灵敏度,与加速度计一样,角速度计的灵敏度也几乎不随时间或者温度变化而变化。具体公式如下:
1.1.2 传感器的零偏补偿
加速度计传感器的零偏是在除重力加速度以外,没有任何其他加速度的情况下,实际输出与理想输出的偏差[1]。将加速度计静止放置于桌面上,此时的X轴,Y轴,Z轴的理想输出分别为0g,0g,1g;然而实际的输出往往和理想值并不相等,因此在计算得到零偏后,需在每次输出时将零偏去掉,得到的结果是实际的输出值。具体计算方式以及操作步骤如下:(1)将加速度计静止放在水平面一段时间,计算采集数据的平均值,减去理想输出值,即是零偏。假设此时加速度计轴垂直向下于水平面,则轴的零偏为:
Y轴的零偏为:
轴的零偏为:
角速度计传感器零偏是在没有任何角速度的前提下,实际输出值与理想值的偏差[1]。将角速度计静止放置于桌面上,此时的X轴,Y轴,Z轴的理想输出分别为0°,0°,0°;和加速度计同理,角速度计的实际输出也和理想值并不相同,所以在计算得到零偏后,同样需在每次输出时将零偏去掉,所得的结果即是实际的输出值。具体计算方式以及操作步骤如下:(1)将角速度计静止放置在水平桌面上一段时间,计算采集数据的平均值,然后减去理想输出值,即是零偏。则角速度计X轴的零偏为:
Y轴的零偏为:
Z轴的零偏为:
1.2 脚步静止段检测
由于IMU传感器的零偏会随着运动或温度而变化,随着时间变长,误差累积会增大,在运动模态不断变换的情况下,仅在每次输出时去掉零偏不足以减小累计误差。为了解决此问题,本设备采用一种动态零速补偿算法[2],由于在跑步过程中每次脚落地静止的一瞬间速度为零,当将本设备固定在鞋上,可以利用这一速度过零特性做零速补偿,减少由IMU传感器的漂移长时间导致的误差累积,以此提高计算精度。图2是本设备初始样品的穿戴方式。
图2 本设备样品穿戴示例图
图3 脚由脚跟落地到整个脚静止再到脚跟抬起的过程[3]
根据[3]有如上示意图3,在人跑步过程中,其中任意一只脚,脚后跟会先接触地面,然后整只脚会逐渐平稳至完全与地面接触,此时,如图A点所示,其接触到地面的瞬间之后,整只脚以A点为轴,逐渐离开地面,直到脚完全腾空。在这个过程中,脚与地面存在了一个完整接触的时间段,即。在这段时间内,A点的速度值在理论上应该是零[2],加速度在和地面接触的一瞬间的采样时刻不为0,从下一个采样时刻至A点完全腾空之前的采样时刻均为0。
在一步内,脚跟落地时刻和脚尖离地时刻的区分是最关键的。当脚尖离地时,轴的角速度会有一个局部最小值出现,由于脚抬起而出现的突变点则紧随其后;当脚跟落地时,轴的角速度值由正变负。因此,在一步内,轴角速度的局部最小值应该与脚尖离地的那一时刻对应,其后轴角速度为0时的点与脚跟的落地点对应[2]。通过脚跟落地点和脚尖离地点便可以判断脚静止时间段,从而判断步频。判定结果如图4所示。
图4 曲线为X轴角速度的周期变化,实线为检测到的脚步静止零速时间段
1.3 多传感器融合技术
本设备由多个传感器组成,利用多传感器信息互补这一特点,提高测速精度。多传感器的信息融合技术在本设备中尤为关键,可以消除由于人的身材差异,跑步习惯,以及跑步姿势的不同导致测速结果一致性较差的问题。
本设备的动态传感器的融合算法是基于卡尔曼滤波器主要原理,即通过方差来分配权重,通过求解每一个加速计传感器的方差,计算得出当前时刻的权重。本设备有三个加速度计,三个加速度计权重计算公式分别如下:
其中var1,var2,var3分别为三个传感器的方差,W1,W2,W3则分别为计算所得的传感器权重。
1.4 IMU惯性导航姿态解算
本设备利用了非线性卡尔曼滤波结合四元数计算航向角度,其原理是通过加速度计和磁力计的数据来矫正角速度在动态过程中的误差,然后基于校正后的角速度求得航向角。
由于传感器输出数据是传感器坐标系下的数据,需要转换成地球坐标系下的数据,从而求解在跑步时相对地面的速度。本文利用四元数描述坐标变化,并求解地球坐标系下传感器的测量值。
1.4.1 结合四元数的计算
四元数通常由常量部分和向量部分组成[4]:
其中p·q代表向量p和q的点乘,p×q代表向量p和q的叉乘。公式(13)可以简化为如下公式[5]:
公式(15)为矩阵乘法,其中R为旋转矩阵(见公式16),用如上公式,将传感器数值转化成地球坐标系下的数据值后,便可计算地球坐标系下基于四元数的航向角度变化速率[7],其公式如下:
其中ω是角速度,q前一时刻所得航向角,ω是角速度,q是航向角变化速率,接着将q˙积分[8]便可得到当前时刻的航向角:
1.4.2 卡尔曼滤波器设计
卡尔曼滤波由预测模型和观测模型构成,公式(18)可作为卡尔曼滤波的预测模型,观测模型则是基于传感器的测量数据建立。
本文采用了QUEST算法[6],利用加速度计的测量值和磁力计的测量值计算最优四元数,可以使和旋转至其对应的地球坐标系的值。模型观测值为:
接着初始化观测模型方差On和预测模型方差Qn,便可以用卡尔曼滤波算法[10]估计航向角[7],利用估计出的航向角计算地球坐标系下的角速度计测量值,最后计算纠偏过后的角速度,公式如下
其中gyrocorrected是纠偏过后的角速度,gyroE是角速度计在地球坐标系下的测量值,e是由加速度以及磁力计共同计算得出的误差。基于得出纠偏后的角速度gyrocorrected,可以求出的真实的加速度acc。接着用积分公式则可以计算得出瞬时速度[9]。公式如下:
其中是采样时间间隔,是当前时刻计算得出的瞬时速度,则是前一时刻计算所得的瞬时速度。
1.5 步态速度计算
本设备计算的方式是基于每一步去求解平均速度,通过瞬时速度积分去求步长,进而求得每一步的平均速度:
其中vn为每一步的速度,Sn为每一步的步长,ΔT为每一步用时。
2 实验与结果仿真图
2.1 实验设计
本设备采集了大于100人的跑步数据,每次测试,设备均固定在鞋带第二个交叉点处。其中实验对象包括男性和女性,高矮胖瘦等体型均有参与速度测试,测试地点设立在跑步机上,因为跑步机显示的速度是代表跑步机机带的出带速度,出带速度是极为稳定的,可以作为参考数据。
为了消除各种情况下的运动模态互相转化的干扰,本次实验在跑步机上测试的速度包括从2km/h至14km/h,中间伴随着连续速度变化比如由3km/h增至6km/h,再增至9km/h,此期间跑步模态转化是连续不间断的。此外本次实验对坡度也进行了连续调整,验证是否坡度不同会影响实验测速结果。
2.2 实验结果可视化
实验结果仿真图用matlab生成,图5~图10为实验结果图。
图5,图6均为单一运动模态的测试,图5为跑步模态的测试,测试速度为9km/h,测试结果为8.74km/h;图6为步行模态的测试,测试速度为2km/h,测试结果为2.04km/h。
图5 测试速度为9km/h
图6 测试速度为2km/h
图7 测试速度分别为4km/h,6km/h,9km/h
图8 测试速度分别为3km/h,6km/h,9km/h
图9 坡度调整为3,测试速度分别为2km/h,4km/h,6km/h,9km/h
图10 坡度由3调整为5后调整为6,测试速度分别为2km/h,4km/h,6km/h,9km/h,14km/h
图7,图8为运动模态变化下的测速结果仿真图,测试速度为4km/h,6km/h,9km/h和3km/h,6km/h,9km/h。3km/h通常为慢速走,4km/h通常为中速走,6km/h通常为快速走,9km/h为跑步模态。图7测试结果为4.03km/h,6.2km/h,8.63km/h;图8测试结果为3.12km/h,6.09km/h,9.1km/h。
图9测试运动模态变化下的速度并且将坡度由1调整为3,测试速度分别为2km/h,4km/h,6km/h,9km/h。测试结果分别为1.31km/h,3.88km/h,6.36km/h,8.6km/h。图10测试运动模态变化下的速度并且连续调整了坡度,由3调整为5后调整为6,测试速度分别为2km/h,4km/h,6km/h,9km/h,14km/h,其中14km/h为快速跑步模态。测试结果分别为1.66km/h,4.11km/h,7km/h, 9.9km/h,13.81km/h。
由以上实验仿真图结果可以看出,即使有运动模态的变化,测速结果依然准确,加上坡度的干扰后,由于低速段会用手扶跑步机,会造成测速结果略低于跑步机速度,但是高速段测试结果依然稳定。
3 对比Stryd
Stryd[16]是近些年很受马拉松教练[17],美国国家队马拉松动员[18]以及跑步爱好者欢迎的一款设备,功能与本设备极为接近,也有测试速度的功能,并且Stryd是业界的顶级产品。因此本设备与Stryd进行了对比试验,检验本设备是否达到与Stryd同样的效果,甚是超越Stryd。
3.1 设计实验
将Stryd和本设备分别固定在两只脚上。然后再同时开启Stryd和本设备进行测试。
3.2 实验对比结果可视化
图11~图16为Stryd和本设备的对比结果仿真图。
本文列出四次对比试验结果,(1)对比测试速度为10km/h时:图11为Stryd测速图此图全程测出速度结果为7h31min/km,图中平稳线条为跑步部分测速为6h52min/km,换算结果为8.74km/h。图12是本设备测速仿真图,测试结果为9.82km/h。(2)对比测试速度为3km/h,6km/h,9km/h时:图13为Stryd测速图,图中平稳线条为跑步部分测速,换算后分别为2.56km/h,5.08km/h,7.86km/h。图14是本设备测速仿真图,测试结果为3.21km/h,6.15km/h,9.33km/h。(3)对比测试速度为2km/h,4km/h,6km/h,9km/h,坡度为3时:图15为Stryd测速图,图中平稳线条为跑步部分测速,换算后分别为1.95km/h,3.36km/h,5.08km/h,7.87km/h。图9是本设备测速仿真图,测试结果为1.31km/h,3.88km/h,6.36km/h,8.6km/h。(4)对比测试速度为2km/h,4km/h,6km/h,9km/h,14km/h。其中坡度变化为3,5,6时:图16为Stryd测速图,图中平稳线条为跑步部分测速,换算后分别为2.02km/h,3.51km/h,5.25km/h,7.89km/h,12.25km/h。图10是本设备测速仿真图,测试结果为1.66km/h,4.11km/h,7km/h,9.9km/h,13.81km/h。
图11 本次测试速度为10km/h,此图为stryd测速
图12 本设备和图11的对比仿真图,测速同样为10km/h
图13 本次测试速度分别为3km/h,6km/h,9km/h。此图为Stryd测速图
图14 设备和图13的对比仿真图,测速同样为3km/h,6km/h,9km/h
图15 本次测试速度分别为2km/h,4km/h,6km/h,9km/h,其中坡度为3。此图为Stryd测速图
图16 本次测试速度分别为2km/h,4km/h,6km/h,9km/h,14km/h。其中坡度变化为3,5,6。此图为Stryd测速图
表1 实验结果
表格第一列为本设备与Stryd实验结果误差对比,本设备平均误差为0.53km/h,Stryd平均误差为0.81km/h,第二列为本设备所测全部数据的测速误差,误差为0.38km/h。
以上实验对比可以看出,本设备在低速和Stryd不分上下,而在高速段明显要优于Stryd,根据表格误差分析整体测速精度也要优于Stryd。
4 总结
本文介绍了一款应用于跑步训练的可穿戴设备,本设备可通过瞬时速度计算功率消耗,从而使用户安全且科学的安排跑步训练计划避免由于训练强度过大而导致意外受伤。
本设备既适用于运功员也适用于运动爱好者,既可以帮助运动员合理安排训练强度,科学制定训练计划,也可以帮助运动爱好者更合理的规划跑步训练。本设备既有实时可视化训练数据的功能,可以及时调整训练强度,也可以在训练过后给与全面的数据反馈;不但可以帮助专业运动员备战不同级别的比赛,也可以推进全民运动。