胡 越, 葉瑋瓊
(湖南工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,湖南 株洲 412000)
現(xiàn)今,智能穿戴設(shè)備在運(yùn)動(dòng)姿態(tài)檢測(cè)的技術(shù)尚未成熟,僅有部分設(shè)備具有檢測(cè)足部姿態(tài)的功能。所以,有效地針對(duì)跑步時(shí)足部的姿態(tài)進(jìn)行檢測(cè)成為今后智能穿戴在運(yùn)動(dòng)健康領(lǐng)域的重要應(yīng)用之一。根據(jù)關(guān)鍵跑步法[1],對(duì)于長(zhǎng)跑新手來(lái)說(shuō),養(yǎng)成錯(cuò)誤的跑步習(xí)慣易對(duì)身體造成不同程度運(yùn)動(dòng)損傷。傳統(tǒng)精度高的步態(tài)分析檢測(cè)方式往往需要借助光學(xué)、壓力傳感器,因此多用于康復(fù)治療,即使制作成便攜式檢測(cè)設(shè)備的成本也較高,不適用于戶外運(yùn)動(dòng)。由于其體積小、成本低、靈活性好,足部姿態(tài)檢測(cè)目前主要采用微機(jī)電系統(tǒng)(micro-electro-mechanical system,MEMS)慣性傳感器[2]。由于傳感器自身特點(diǎn),用于檢測(cè)姿態(tài)的系統(tǒng)噪聲以及環(huán)境對(duì)測(cè)量的干擾都會(huì)導(dǎo)致檢測(cè)精度下降。不同于一般姿態(tài)檢測(cè),適用于長(zhǎng)跑足部姿態(tài)檢測(cè)會(huì)遇到更多外力影響,因此需要算法對(duì)于一定周期性變化的足部姿態(tài)有自適應(yīng)性的調(diào)整。
互補(bǔ)濾波[3]利用傳感器自身特性設(shè)置高低通濾波,但未能考慮在運(yùn)動(dòng)過(guò)程中足部的加速度和震動(dòng)影響。擴(kuò)展卡爾曼濾波[4](extended Kalman filtering,EKF)和無(wú)跡卡爾曼濾波[5](unscented Kalman filtering,UKF)是非線性濾波器,可用于降低復(fù)雜運(yùn)動(dòng)中影響因素的干擾。文獻(xiàn)[6]使用四元數(shù)法設(shè)計(jì)了一種融合陀螺儀和加速度計(jì)信息的互補(bǔ)濾波器,將加速度計(jì)數(shù)據(jù)估計(jì)的姿態(tài)轉(zhuǎn)化成線性系統(tǒng)。文獻(xiàn)[7]提出了一種使用梯度下降計(jì)算建立誤差函數(shù)修正姿態(tài)四元數(shù)的方法。文獻(xiàn)[8]將加速度計(jì)和全球定位系統(tǒng)融合,抑制運(yùn)動(dòng)加速度的影響。文獻(xiàn)[9]設(shè)計(jì)了一種二段式UKF算法,降低了修正姿態(tài)過(guò)程中的互相干擾。
本文提出自適應(yīng)的誤差四元數(shù)的無(wú)跡卡爾曼濾波(DAUKF)姿態(tài)檢測(cè)算法,考慮到跑步運(yùn)動(dòng)中足部受到由腿部提供的外力加速度因素的影響,利用陀螺儀累積產(chǎn)生的漂移誤差模型建立姿態(tài)估計(jì)系統(tǒng)中的狀態(tài)方程;利用加速度計(jì)和磁力計(jì)數(shù)據(jù)建立系統(tǒng)的觀測(cè)方程;最后使用UKF算法進(jìn)行數(shù)據(jù)融合??紤]到動(dòng)態(tài)過(guò)程中,觀測(cè)噪聲的變化對(duì)狀態(tài)估計(jì)產(chǎn)生的影響,自適應(yīng)地調(diào)整觀測(cè)噪聲協(xié)方差矩陣,提高足部姿態(tài)的動(dòng)態(tài)檢測(cè)精度以及識(shí)別出不良的足部姿態(tài)。
直觀地描述物體在三維空間內(nèi)的姿態(tài)時(shí),歐拉角法需參考坐標(biāo)系和載體坐標(biāo)系。如圖1所示,參考坐標(biāo)系G是以被測(cè)物體質(zhì)心為原點(diǎn),沿著“北、西、天”三個(gè)方向?yàn)閄,Y,Z軸建立坐標(biāo)系。載體坐標(biāo)系S以傳感器中心為原點(diǎn),以“前、右、上”三個(gè)方向?yàn)閤,y,z軸建立坐標(biāo)系。三個(gè)歐拉角:橫滾角(roll)、俯仰角(pitch)和偏航角(yaw),可以看成載體繞x,y,z軸按照右手定則旋轉(zhuǎn)產(chǎn)生的角度。
圖1 空間內(nèi)足部姿態(tài)描述
陀螺儀誤差模型中,ωo為陀螺儀的輸出,ω為角速度值,偏置值εg以及高斯白噪聲ng的總和。對(duì)誤差四元數(shù)qe求微分,再根據(jù)四元數(shù)微分方程、運(yùn)動(dòng)學(xué)方程和陀螺儀誤差模型[9],得到誤差四元數(shù)的運(yùn)動(dòng)學(xué)方程
在式(2)中定義3階運(yùn)算向量[m×],形式如下
本文將誤差四元數(shù)與陀螺儀在三個(gè)軸向的漂移量作為系統(tǒng)的狀態(tài)向量,x=[qe1qe2qe3εgxεgyεgz]。
系統(tǒng)的狀態(tài)轉(zhuǎn)換方程和系統(tǒng)過(guò)程噪聲為f(x(k))和w(k),如式(4)
因此,系統(tǒng)協(xié)方差矩陣為
建立誤差四元數(shù)UKF的觀測(cè)方程采用加速度計(jì)和磁力計(jì)輸出。在行進(jìn)過(guò)程中,足部的速度往往處于在一定程度范圍內(nèi)的變加速度變化。依據(jù)加速度計(jì)和磁力計(jì)的誤差模型,可建立觀測(cè)方程
zk=h(xk)+vk
(6)
式中h(xk)為觀測(cè)轉(zhuǎn)換函數(shù),由重力分量和地磁場(chǎng)強(qiáng)度與狀態(tài)轉(zhuǎn)換矩陣相乘得到。vk為觀測(cè)噪聲,由除重力外加速度與加速度計(jì)的零均值白噪聲之和與磁力計(jì)的零均值白噪聲構(gòu)成。取加速度計(jì)和磁力計(jì)的輸出為觀測(cè)量,觀測(cè)噪聲協(xié)方差矩陣R如式(7)所示
式中Ra和Rm為加速度計(jì)和磁力計(jì)的測(cè)量噪聲協(xié)方差矩陣。Rb為除重力外加速度的協(xié)方差矩陣,主要根據(jù)腿部肌肉對(duì)加速度的影響進(jìn)行調(diào)整。
改進(jìn)后的自適應(yīng)UKF算法的具體步驟:
1)無(wú)跡變換
無(wú)跡變換本質(zhì)就是概率分布近似系統(tǒng)中的非線性函數(shù),按照一個(gè)選取規(guī)則得出Sigma點(diǎn)集,保證所選點(diǎn)集的均值和方差與原本分布的相等。本文采取對(duì)稱(chēng)取樣的選取規(guī)則,具體的步驟如下:
Sigma點(diǎn)采樣
權(quán)值計(jì)算
對(duì)無(wú)跡變換后的Sigma點(diǎn)進(jìn)行加權(quán)計(jì)算后得出下一時(shí)刻的狀態(tài)預(yù)測(cè)和協(xié)方差矩陣
2)利用權(quán)值計(jì)算出觀測(cè)值估計(jì)
3)自適應(yīng)調(diào)整觀測(cè)噪聲協(xié)方差矩陣
系統(tǒng)內(nèi)部的噪聲取決于傳感器自身,相對(duì)比較穩(wěn)定。觀測(cè)噪聲因外部環(huán)境的影響,易出現(xiàn)難以估計(jì)的變化。為了防止引入觀測(cè)量時(shí)出現(xiàn)的誤差變化,本文引入漸消記憶思想,根據(jù)與待求觀測(cè)噪聲處的距離改變權(quán)重,自適應(yīng)地調(diào)整觀測(cè)協(xié)方差矩陣[10]。故設(shè)在計(jì)算觀測(cè)誤差協(xié)方差時(shí)的權(quán)值序列滿足
經(jīng)過(guò)等比求和公式與權(quán)值序列的遞推求得
式(13)、式(14)中,β為對(duì)應(yīng)時(shí)刻的權(quán)重,b為漸消記憶因子。b越大,則前一時(shí)刻的k-1在計(jì)算中所占的權(quán)重就越大。根據(jù)觀測(cè)噪聲在長(zhǎng)跑運(yùn)動(dòng)中處于在一定范圍內(nèi)的非平穩(wěn)狀態(tài),漸消記憶因子取值范圍需經(jīng)過(guò)實(shí)際測(cè)算得出。
更新預(yù)測(cè)協(xié)方差矩陣和觀測(cè)協(xié)方差矩陣
更新卡爾曼增益矩陣[11]
更新?tīng)顟B(tài)值和狀態(tài)方差矩陣
姿態(tài)估計(jì)算法流程如圖2所示。
圖2 姿態(tài)檢測(cè)算法流程圖
如圖3,實(shí)驗(yàn)選用了Arduino UNO開(kāi)發(fā)板,MPU9250作為傳感器采集九軸姿態(tài)數(shù)據(jù),并使用串口把數(shù)據(jù)傳至MATLAB 2018b平臺(tái)進(jìn)行仿真實(shí)驗(yàn)。將傳感器模塊置于足部正面前部位置,通過(guò)模擬跑步運(yùn)動(dòng)中足部的下踏和上抬動(dòng)作,并從一段5 min連續(xù)過(guò)程中選取20 s的時(shí)間進(jìn)行誤差分析。對(duì)本文提出的DAUKF與一般的UKF算法進(jìn)行比較,圖4、表1所示,使用DAUKF算法解算姿態(tài)時(shí)產(chǎn)生的橫滾角與俯仰角誤差波動(dòng)比直接使用UKF算法要小。所以,對(duì)于在長(zhǎng)跑過(guò)程中足部的錯(cuò)誤姿態(tài)有更佳的識(shí)別效果。
圖3 足姿檢測(cè)實(shí)物
圖4 使用DAUKF與UKF角度誤差比較曲線
表1 DAUKF與UKF比較結(jié)果
外翻角度指足部從開(kāi)始觸地到蹬踩離開(kāi)地面的旋轉(zhuǎn)角度,著地方式是足部與地面的接觸方式,都屬于判斷跑步足姿的重要指標(biāo)。如表2,實(shí)驗(yàn)設(shè)置4組對(duì)照,第1組按照關(guān)鍵跑步法提倡的主要由跖球部(前腳掌)完成著地,并保持外翻角度控制在正常范圍內(nèi)(5°~25°)。其余3組分別是對(duì)第1組的外翻角度、著地方式以及兩者進(jìn)行更改。通過(guò)對(duì)足部開(kāi)始觸地與離開(kāi)地面后足部的橫滾角與俯仰角的量化分析,判斷足部姿態(tài)的著地方式與外翻角度是否出現(xiàn)異常。使用俯仰角的變化可以較為準(zhǔn)確地描述出運(yùn)動(dòng)過(guò)程中足部從觸地到騰空擺動(dòng),再到觸地的一個(gè)完整擺動(dòng)周期。每組實(shí)驗(yàn)5 min,將每組的橫滾角與俯仰角變化按照擺動(dòng)周期分析是否超過(guò)關(guān)鍵跑步法的推薦范圍并由此提出恰當(dāng)?shù)母纳谱阕说慕ㄗh。
表2 4組實(shí)驗(yàn)對(duì)照結(jié)果
實(shí)驗(yàn)結(jié)果如表2所示,使用DAUKF算法對(duì)不良足部姿態(tài)可以達(dá)到較佳程度的識(shí)別率。當(dāng)外翻角度超出合理范圍時(shí),識(shí)別率可達(dá)到84.1 %,當(dāng)著地方式不正確時(shí),識(shí)別率可達(dá)到87.9 %,當(dāng)兩者皆不合理時(shí),識(shí)別率達(dá)到93.6 %。
通過(guò)對(duì)長(zhǎng)跑中足部運(yùn)動(dòng)狀態(tài)和空間內(nèi)動(dòng)態(tài)姿態(tài)解算等問(wèn)題的研究,本文設(shè)計(jì)了DAUKF算法可將動(dòng)態(tài)過(guò)程中姿態(tài)角誤差控制在一定的范圍內(nèi)。針對(duì)長(zhǎng)跑運(yùn)動(dòng)過(guò)程中的觀測(cè)噪聲的變化自適應(yīng)地調(diào)整觀測(cè)噪聲協(xié)方差,在補(bǔ)償動(dòng)態(tài)過(guò)程中陀螺儀的累積誤差進(jìn)行姿態(tài)估計(jì)的同時(shí),也減少了非平穩(wěn)性觀測(cè)噪聲的影響。從而,使得不良足部姿態(tài)識(shí)別率達(dá)到了較佳的程度。