李飛,王朋遠
(1.廣東科學(xué)技術(shù)職業(yè)學(xué)院建筑工程學(xué)院,廣東 珠海 519090; 2.珠海市測繪院,廣東 珠海 519000)
室內(nèi)外無縫定位已經(jīng)成為位置服務(wù)的研究熱點。慣性導(dǎo)航系統(tǒng)作為一種自主導(dǎo)航定位技術(shù),能夠獨立于環(huán)境,實時獲取載體的位置、姿態(tài)信息,輔助實現(xiàn)全空間無縫定位,尤其在無任何設(shè)施的全新特殊環(huán)境如緊急災(zāi)害現(xiàn)場、礦井、勘測的地下環(huán)境等。微型機電系統(tǒng)(Micro-electro mechanical Systems,MEMS)為行人慣性導(dǎo)航技術(shù)提供了便攜式微型慣性測量單元(Inertial measurement unit,IMU)[1,2]。但由于MEMS微型慣性傳感器精度低,輸出數(shù)據(jù)含有大量的噪聲,造成捷聯(lián)積分誤差迅速積累至不可用,因此基于足部MEMS-IMU捷聯(lián)慣性導(dǎo)航技術(shù),多應(yīng)用零速修正(Zero-velocity Update,ZUPT)集成算法有效補償累計誤差[3,4],該算法關(guān)鍵在于步態(tài)檢測能夠提供精確的零速區(qū)間。除此之外,行人航位推算(Pedestrian Dead-Reckoning,PDR)算法推算行人航跡變化需要精確的航向、步長及計步信息。綜上,精確的步態(tài)檢測算法是高精度行人慣性導(dǎo)航技術(shù)的關(guān)鍵保障。
在足部IMU捷聯(lián)慣性導(dǎo)航技術(shù)的研究中,R Feliz等人[5]首次設(shè)計出類似的ZUPTs系統(tǒng),在零速時更正速度和位置。Antonio Jiménez等人[5]給出了一個較為完整的ZUPT實施過程。Hassen[7],Henar[8],Jimenez[9],Yan Li[10]等人利用零速修正算法融合Kalman濾波算法、EKF算法,對零速階段的速度和位置修正,實現(xiàn)位置、航向約束,提供室內(nèi)定位或室內(nèi)外無縫定位的解決方案。田曉春[11]、張金亮[12]等人,利用足部傳感器輸出參量的模值、方差、幅值、峰值等,進行多條件約束降低零速區(qū)間誤判。上述基于足部傳感器的行人導(dǎo)航定位中,步態(tài)檢測算法多采用方差閾值進行判斷,計算量大;而行人在跑步狀態(tài)下劇烈運動,導(dǎo)致零速階段不明顯,現(xiàn)有的算法極少實現(xiàn)跑步狀態(tài)零速檢測。針對以上問題,利用行走過程中足部的靜止著地時間與跨步時間,修正偽運動狀態(tài)點與偽零速點,減少計算量;并針對行人跑步狀態(tài),利用步伐探測和跨步階段探測建立了一個多條件約束的零速檢測算法,實現(xiàn)不同運動狀態(tài)的零速檢測與步態(tài)劃分。
利用足部傳感器數(shù)據(jù)變化分析行人足部運動模型,實驗捆綁傳感器于單腳上采集100Hz加速度和角速度數(shù)據(jù),如圖1和圖2所示,數(shù)據(jù)變化具有明顯周期性特征。圖1中垂向加速度呈現(xiàn)出一段正弦曲線和一段平滑水平線組合為一個周期的變化,正弦曲線部分為該腳的跨步過程;平滑水平線部分為該腳跟著地到腳跟離地前的靜止階段(另一只腳在跨步過程),速度接近于零,形成了零速區(qū)間,圖2所示的加速度模值與角速度模值的變化具有同樣的零速區(qū)間,為步態(tài)檢測和慣性定位誤差修正提供了有利的條件。
2.2.1 行走狀態(tài)零速區(qū)間檢測算法
為精確判斷行走過程中腳著地的靜止階段,較多研究者采用足部傳感器的加速度、加速度方差和角速度3個閾值條件綜合檢測數(shù)據(jù)的零速區(qū)間[11~13],方差計算需要恰當?shù)姆椒ㄟx擇合適的窗口,為避免計算方差和方差窗口設(shè)置不當,提出了利用腳著地時間與跨步時間修正運動狀態(tài)的判斷,剔除偽跨步狀態(tài)點與偽零速點,過程如下:
圖1 行走時足部垂向加速度
圖2 行走時足部加速度模值與角速度模值
(1)計算k時刻加速度模值|ak|,利用零速狀態(tài)的加速度閾值進行判斷得到C1:
(1)
(2)
式中:akx、aky、akz為k時刻三軸向加速度值。thamin、thamax為行走狀態(tài)的零速區(qū)間加速度閾值。
(2)計算角速度模值|wk|,利用角速度閾值條件進行判斷結(jié)果為C2:
(3)
(4)
式中:wkx、wky、wkz為k時刻三軸向角速度值;thwmax為行走狀態(tài)零速區(qū)間角速度閾值。將判斷結(jié)果C1、C2進行邏輯與運算得到C3:
C3=C1∩C2
(5)
(3)判斷偽零速點并刪除:以加速度和角速度閾值進行判斷,結(jié)果顯示仍有零碎的跨步狀態(tài)數(shù)據(jù)點判斷錯誤,成為偽零速區(qū)間點,根據(jù)常速行走的經(jīng)驗得出,足部著地時間約為 0.1 s~0.3 s[14],因此將連續(xù)零速區(qū)間不足0.1s的判斷為偽零速點并剔除,修正為跨步狀態(tài)點,得到C4。
(4)判斷偽跨步點并刪除;在腳著地時,由于踏步不穩(wěn)易將部分采樣點誤判為跨步狀態(tài),根據(jù)跨步時間約為 0.1 s~0.3 s[14],將連續(xù)跨步時間不足 0.1 s的修正為零速點,獲得最終步態(tài)檢測結(jié)果C,C值為1表示為腳著地階段的零速區(qū)間。步態(tài)檢測算法的邏輯運算結(jié)果如圖3所示,其中tup到tdown區(qū)間表示抬起腳跟開始跨步到腳著地,完成一個跨步過程,tdown到tend區(qū)間為算法檢測出的零速區(qū)間。
圖3 行走狀態(tài)零速檢測算法邏輯圖
2.2.2 多條件約束的跑步狀態(tài)零速區(qū)間檢測算法
跑步相對劇烈,步頻快,腳著地時間短且不穩(wěn)定,加速度和角速度數(shù)據(jù)波動雜亂,相比行走狀態(tài)時零速區(qū)間不明顯,如圖4和圖5所示。圖4的3名實驗者實測跑步狀態(tài)的角速度曲線顯示,3名實驗者跑步時腳步運動特征差異較大,角速度無法獨立作為步態(tài)判斷的依據(jù)。但不同實驗者在腳著地期間角速度數(shù)值均較小,當抬腳的瞬間會出現(xiàn)峰值,可輔助判斷零速區(qū)間。
跑步狀態(tài)加速度如圖5所示,曲線零速區(qū)間不明顯,跨步階段加速度與靜止階段加速度接近,若利用零速檢測算法簡單擴大閾值,將造成較多的虛假檢測。但加速度數(shù)據(jù)顯示每跑一步存在一個峰值點,可作為跑步狀態(tài)特征點,因此可利用峰值點探測,完成跑步一步的步伐探測,再利用跨步階段探測進行零速區(qū)間和跨步階段劃分,建立了跑步狀態(tài)的多條件約束零速檢測算法。
圖4 跑步狀態(tài)角速度分析
圖5 跑步狀態(tài)加速度特征
(1)步伐探測
步態(tài)周期分為4個階段:腳著地靜止、腳跟抬起、跨步、腳跟著地。如圖5加速度在達到峰值后迅速降低接近零值,該時刻是跑步中腳完成跨步階段后,腳跟碰地時刻,此時腳跟撞擊地面迅速停下,造成加速度劇烈變化。因此,該峰值點可作為跑步完成一個跨步的標志性點,步伐探測即完成該峰值點的探測,進行步數(shù)更新。
根據(jù)以上分析,跑步狀態(tài)步伐探測利用波峰檢測算法,過程如下:
①選取20個歷元的滑動窗口,獲得當前窗口內(nèi)加速度波峰進行閾值判斷,經(jīng)過多次試驗數(shù)據(jù)分析,若峰值在區(qū)間[30 m/s2,90 m/s2]內(nèi)即判斷為跑步狀態(tài);
②計算窗口內(nèi)波峰與前一波峰時間差,利用時間閾值進行判斷,在[0.2 s,1.4 s]內(nèi)為跑步狀態(tài),該時長為跑步時該腳著地靜止與跨步時間總和。
③將波峰與前后鄰域10個歷元比較,若為偽波峰則進行剔除,若仍為鄰域內(nèi)峰值點則更新計步,完成步伐探測。
(2)跨步階段探測
跨步階段探測是確定跨步的起止時間,防止因擴大閾值而產(chǎn)生虛假檢測。算法在步伐探測到峰值點的基礎(chǔ)上,進行多條件約束,實現(xiàn)零速區(qū)間與跨步階段的劃分,過程如下:
①根據(jù)步伐探測的峰值點向后查找,利用加速度閾值區(qū)間[8 m/s2,15 m/s2]進行條件約束,檢測出峰值點后的零速區(qū)間,結(jié)果為C5。
②利用角速度閾值Ts=2進行約束,輔助檢測零速區(qū)間,如式(6)所示,結(jié)果為C6。
(6)
將角速度與加速度條件約束結(jié)果進行邏輯與運算,完成多條件限制確定跑步狀態(tài)零速區(qū)間C7??绮诫A段則從零速區(qū)間的下一歷元開始,直至下一峰值點后的零速區(qū)間為止。
步態(tài)檢測實驗使用美國MicroStrain公司的高精度微型慣性傳感器3DM-GX3-25,如圖6所示,將傳感器3DM-GX3-25固定于腳上如圖7所示,采集數(shù)據(jù)頻率 100 Hz,實驗于中國礦業(yè)大學(xué)環(huán)境與測繪學(xué)院三樓的不同場景下進行,建筑分布如圖8所示,邀請不同性別、身高、體重人員進行兩種運動狀態(tài)的直線和回形路線的實驗,驗證算法有效性。
圖6 硬件設(shè)備3DM-GX3-25
圖7 傳感器固定示意圖
圖8 環(huán)測學(xué)院三樓建筑地圖
3.2.1 行走狀態(tài)實驗與分析
為驗證行走狀態(tài)零速檢測算法,對身高體重行走姿態(tài)差別較大的4名實驗者的7組實驗數(shù)據(jù)進行處理,結(jié)果如表1所示,計步誤差最大為一步,步態(tài)檢測正確率達99%以上,因此,行走狀態(tài)零速檢測算法可實現(xiàn)有效步態(tài)檢測。
行走狀態(tài)零速檢測算法統(tǒng)計 表1
3.2.2 跑步狀態(tài)實驗與分析
為驗證跑步狀態(tài)步態(tài)檢測算法是否有效,4名身高體重差異較大的實驗者進行了10組實驗,算法處理結(jié)果如表2所示,計步誤差最大為一步,步態(tài)判斷準確率達99%以上,實現(xiàn)了跑步狀態(tài)高精度的步態(tài)檢測與計步。其中,回形跑步計步錯誤是因為該實驗者轉(zhuǎn)角處速度過慢,加速度未滿足條件所致。
跑步狀態(tài)零速檢測統(tǒng)計 表2
跑步狀態(tài)步態(tài)檢測算法包括步伐探測和跨步階段探測,其中直線路線和回形路線實驗的步伐探測結(jié)果如圖9和圖10所示,探測出峰值點用圓圈標記,算法有效探測出腳著地瞬間產(chǎn)生的加速度峰值點,實現(xiàn)步伐更新。在此基礎(chǔ)上,跨步階段探測如圖11所示,其中“*”標志為零速靜止階段,其他為跨步階段。圖11中可以看出,算法有效探測出跑步狀態(tài)的零速區(qū)間,準確劃分零速靜止階段與跨步階段。
圖9 30 m跑步實驗步伐探測結(jié)果
圖10 回形路線實驗步伐探測結(jié)果
圖11 跨步階段探測
基于足部微型傳感器的行人慣性導(dǎo)航定位研究中,步態(tài)檢測具有舉足輕重的作用。本文提出利用足部著地和跨步時間條件限制的行走步態(tài)檢測算法,正確率在99%以上;并針對行人跑步狀態(tài),將跑步狀態(tài)劃分為靜止階段和跨步階段,利用步伐探測和跨步階段探測設(shè)計了跑步狀態(tài)零速區(qū)間檢測算法,正確率達99%,避免了簡單擴大閾值引入的運動狀態(tài)誤判。綜上,針對行走與跑步狀態(tài)的步態(tài)檢測算法滿足了步態(tài)檢測高精度要求,為行人慣性導(dǎo)航的誤差修正,提高導(dǎo)航精度奠定基礎(chǔ);不足之處在于未將行走狀態(tài)與跑步狀態(tài)算法統(tǒng)一,此為進一步研究的方向。