宋英健,彭勁陽,尹武濤,張輝
(無錫博智芯科技有限公司,江蘇無錫,214026)
科學的訓練計劃對于田徑運動員以及跑步運動愛好者尤為重要,科學的訓練可以使運動員減少受傷風險,更充分的備戰各種級別的比賽,也便于跑步愛好者制定合適的強度運動計劃,避免意外受傷。利用人體穿戴傳感,采集跑步數據及智能化分析訓練結果,不僅可以幫助運動員提高訓練質量和運動能力還可以推進全民運動,讓更多的人積極參與跑步運動提升全民身體素質。這種設備既可以為運動員定制合理強度的訓練計劃,也可以為運動愛好者提供更專業的實時數據以供參考,提升了的運動的趣味性,從而推動全民運動與健身。
訓練強度的分配是制定訓練計劃的關鍵環節,而功率等同于訓練強度。計算跑步速度是衡量跑步過程中功率消耗的重要環節,功率是由力和速度共同決定,跑步過程中外力恒定,除了地球施加的重力并無其他外力,因此速度越快等同于單位時間內做功越多,功率越大。所以高精度的測速設備對于田徑運動員以及跑步愛好者尤為重要。20世紀90年代,Luinge等[11]和Bachmann等[12]對可穿戴式傳感器的人體運動跟蹤技術進行了研究[13]。但是可穿戴式傳感器應用于實時監測人體速度的極少,Yang[9]開發了一種跑步測速算法且僅利用了單一傳感器,實驗結果良好,但是這對傳感器精度和成本要求都很高;Sabatini[15]設計了一種估計人體行走速度的算法,但是缺少對高速段的實驗驗證。走和跑是兩種不同的人體運動機制,很難兼顧行走和跑步的測速準確性[9]。且由于人的身材差異,跑步習慣,以及跑步姿勢的不同加上技術上硬件設備的誤差等干擾,致使很難精確測速。
基于此難題,我們設計了一款基于MEMS IMU的可穿戴設備,不僅可以高精度測速且具有很強的魯棒性;算法對不同身材、不同跑步姿勢以及硬件差異性不敏感,測速誤差一致性良好,即使跑步模態之間相互切換(例如,散步,快走,慢跑,快速跑,爬坡等),也可確保高精度測速。本文設計的可穿戴設備由多個低成本加速度傳感器,陀螺儀以及磁力計組成。利用不同量程的加速度傳感器融合可提高測速精度[15],避免無法采集加速度較大的數據以及加速度較小的數據的情況;融合陀螺儀以便應用姿態解算等導航算法;磁力計用以消除磁場的干擾,輔助陀螺儀更準確的計算航向角度。軟件與算法部分分為室內,戶外兩種模式,通過調整不同的環境參數,以便獲得更精確的測速數據,使用戶有更好的體驗感。
本文后續內容主體如下:1)介紹此設備算法原理與方法;2)呈現此設備的仿真實驗結果以及與業界同類頂級設備對比結果;3)實驗結果總結與分析。
本設備測速算法不僅可以實現精準測速,且計算復雜度低,可以實現實時測速。本算法首先對IMU傳感器進行靈敏度以及零偏補償,消除設備偏差。接著對補償后的數據進行判定其是否為腳步靜止段數據,如是則對其應用零速補償算法,然后做姿態解算,進而求解速度。具體流程如圖1。

圖1 算法流程圖
由于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軸的零偏為:

由于IMU傳感器的零偏會隨著運動或溫度而變化,隨著時間變長,誤差累積會增大,在運動模態不斷變換的情況下,僅在每次輸出時去掉零偏不足以減小累計誤差。為了解決此問題,本設備采用一種動態零速補償算法[2],由于在跑步過程中每次腳落地靜止的一瞬間速度為零,當將本設備固定在鞋上,可以利用這一速度過零特性做零速補償,減少由IMU傳感器的漂移長時間導致的誤差累積,以此提高計算精度。圖2是本設備初始樣品的穿戴方式。

圖2 本設備樣品穿戴示例圖

圖3 腳由腳跟落地到整個腳靜止再到腳跟抬起的過程[3]
根據[3]有如上示意圖3,在人跑步過程中,其中任意一只腳,腳后跟會先接觸地面,然后整只腳會逐漸平穩至完全與地面接觸,此時,如圖A點所示,其接觸到地面的瞬間之后,整只腳以A點為軸,逐漸離開地面,直到腳完全騰空。在這個過程中,腳與地面存在了一個完整接觸的時間段,即。在這段時間內,A點的速度值在理論上應該是零[2],加速度在和地面接觸的一瞬間的采樣時刻不為0,從下一個采樣時刻至A點完全騰空之前的采樣時刻均為0。
在一步內,腳跟落地時刻和腳尖離地時刻的區分是最關鍵的。當腳尖離地時,軸的角速度會有一個局部最小值出現,由于腳抬起而出現的突變點則緊隨其后;當腳跟落地時,軸的角速度值由正變負。因此,在一步內,軸角速度的局部最小值應該與腳尖離地的那一時刻對應,其后軸角速度為0時的點與腳跟的落地點對應[2]。通過腳跟落地點和腳尖離地點便可以判斷腳靜止時間段,從而判斷步頻。判定結果如圖4所示。

圖4 曲線為X軸角速度的周期變化,實線為檢測到的腳步靜止零速時間段
本設備由多個傳感器組成,利用多傳感器信息互補這一特點,提高測速精度。多傳感器的信息融合技術在本設備中尤為關鍵,可以消除由于人的身材差異,跑步習慣,以及跑步姿勢的不同導致測速結果一致性較差的問題。
本設備的動態傳感器的融合算法是基于卡爾曼濾波器主要原理,即通過方差來分配權重,通過求解每一個加速計傳感器的方差,計算得出當前時刻的權重。本設備有三個加速度計,三個加速度計權重計算公式分別如下:

其中var1,var2,var3分別為三個傳感器的方差,W1,W2,W3則分別為計算所得的傳感器權重。
本設備利用了非線性卡爾曼濾波結合四元數計算航向角度,其原理是通過加速度計和磁力計的數據來矯正角速度在動態過程中的誤差,然后基于校正后的角速度求得航向角。
由于傳感器輸出數據是傳感器坐標系下的數據,需要轉換成地球坐標系下的數據,從而求解在跑步時相對地面的速度。本文利用四元數描述坐標變化,并求解地球坐標系下傳感器的測量值。
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]。公式如下:

其中是采樣時間間隔,是當前時刻計算得出的瞬時速度,則是前一時刻計算所得的瞬時速度。
本設備計算的方式是基于每一步去求解平均速度,通過瞬時速度積分去求步長,進而求得每一步的平均速度:

其中vn為每一步的速度,Sn為每一步的步長,ΔT為每一步用時。
本設備采集了大于100人的跑步數據,每次測試,設備均固定在鞋帶第二個交叉點處。其中實驗對象包括男性和女性,高矮胖瘦等體型均有參與速度測試,測試地點設立在跑步機上,因為跑步機顯示的速度是代表跑步機機帶的出帶速度,出帶速度是極為穩定的,可以作為參考數據。
為了消除各種情況下的運動模態互相轉化的干擾,本次實驗在跑步機上測試的速度包括從2km/h至14km/h,中間伴隨著連續速度變化比如由3km/h增至6km/h,再增至9km/h,此期間跑步模態轉化是連續不間斷的。此外本次實驗對坡度也進行了連續調整,驗證是否坡度不同會影響實驗測速結果。
實驗結果仿真圖用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。
由以上實驗仿真圖結果可以看出,即使有運動模態的變化,測速結果依然準確,加上坡度的干擾后,由于低速段會用手扶跑步機,會造成測速結果略低于跑步機速度,但是高速段測試結果依然穩定。
Stryd[16]是近些年很受馬拉松教練[17],美國國家隊馬拉松動員[18]以及跑步愛好者歡迎的一款設備,功能與本設備極為接近,也有測試速度的功能,并且Stryd是業界的頂級產品。因此本設備與Stryd進行了對比試驗,檢驗本設備是否達到與Stryd同樣的效果,甚是超越Stryd。
將Stryd和本設備分別固定在兩只腳上。然后再同時開啟Stryd和本設備進行測試。
圖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。
本文介紹了一款應用于跑步訓練的可穿戴設備,本設備可通過瞬時速度計算功率消耗,從而使用戶安全且科學的安排跑步訓練計劃避免由于訓練強度過大而導致意外受傷。
本設備既適用于運功員也適用于運動愛好者,既可以幫助運動員合理安排訓練強度,科學制定訓練計劃,也可以幫助運動愛好者更合理的規劃跑步訓練。本設備既有實時可視化訓練數據的功能,可以及時調整訓練強度,也可以在訓練過后給與全面的數據反饋;不但可以幫助專業運動員備戰不同級別的比賽,也可以推進全民運動。