李飛,王朋遠
(1.廣東科學技術職業學院建筑工程學院,廣東 珠海 519090; 2.珠海市測繪院,廣東 珠海 519000)
室內外無縫定位已經成為位置服務的研究熱點。慣性導航系統作為一種自主導航定位技術,能夠獨立于環境,實時獲取載體的位置、姿態信息,輔助實現全空間無縫定位,尤其在無任何設施的全新特殊環境如緊急災害現場、礦井、勘測的地下環境等。微型機電系統(Micro-electro mechanical Systems,MEMS)為行人慣性導航技術提供了便攜式微型慣性測量單元(Inertial measurement unit,IMU)[1,2]。但由于MEMS微型慣性傳感器精度低,輸出數據含有大量的噪聲,造成捷聯積分誤差迅速積累至不可用,因此基于足部MEMS-IMU捷聯慣性導航技術,多應用零速修正(Zero-velocity Update,ZUPT)集成算法有效補償累計誤差[3,4],該算法關鍵在于步態檢測能夠提供精確的零速區間。除此之外,行人航位推算(Pedestrian Dead-Reckoning,PDR)算法推算行人航跡變化需要精確的航向、步長及計步信息。綜上,精確的步態檢測算法是高精度行人慣性導航技術的關鍵保障。
在足部IMU捷聯慣性導航技術的研究中,R Feliz等人[5]首次設計出類似的ZUPTs系統,在零速時更正速度和位置。Antonio Jiménez等人[5]給出了一個較為完整的ZUPT實施過程。Hassen[7],Henar[8],Jimenez[9],Yan Li[10]等人利用零速修正算法融合Kalman濾波算法、EKF算法,對零速階段的速度和位置修正,實現位置、航向約束,提供室內定位或室內外無縫定位的解決方案。田曉春[11]、張金亮[12]等人,利用足部傳感器輸出參量的模值、方差、幅值、峰值等,進行多條件約束降低零速區間誤判。上述基于足部傳感器的行人導航定位中,步態檢測算法多采用方差閾值進行判斷,計算量大;而行人在跑步狀態下劇烈運動,導致零速階段不明顯,現有的算法極少實現跑步狀態零速檢測。針對以上問題,利用行走過程中足部的靜止著地時間與跨步時間,修正偽運動狀態點與偽零速點,減少計算量;并針對行人跑步狀態,利用步伐探測和跨步階段探測建立了一個多條件約束的零速檢測算法,實現不同運動狀態的零速檢測與步態劃分。
利用足部傳感器數據變化分析行人足部運動模型,實驗捆綁傳感器于單腳上采集100Hz加速度和角速度數據,如圖1和圖2所示,數據變化具有明顯周期性特征。圖1中垂向加速度呈現出一段正弦曲線和一段平滑水平線組合為一個周期的變化,正弦曲線部分為該腳的跨步過程;平滑水平線部分為該腳跟著地到腳跟離地前的靜止階段(另一只腳在跨步過程),速度接近于零,形成了零速區間,圖2所示的加速度模值與角速度模值的變化具有同樣的零速區間,為步態檢測和慣性定位誤差修正提供了有利的條件。
2.2.1 行走狀態零速區間檢測算法
為精確判斷行走過程中腳著地的靜止階段,較多研究者采用足部傳感器的加速度、加速度方差和角速度3個閾值條件綜合檢測數據的零速區間[11~13],方差計算需要恰當的方法選擇合適的窗口,為避免計算方差和方差窗口設置不當,提出了利用腳著地時間與跨步時間修正運動狀態的判斷,剔除偽跨步狀態點與偽零速點,過程如下:

圖1 行走時足部垂向加速度

圖2 行走時足部加速度模值與角速度模值
(1)計算k時刻加速度模值|ak|,利用零速狀態的加速度閾值進行判斷得到C1:
(1)
(2)
式中:akx、aky、akz為k時刻三軸向加速度值。thamin、thamax為行走狀態的零速區間加速度閾值。
(2)計算角速度模值|wk|,利用角速度閾值條件進行判斷結果為C2:
(3)
(4)
式中:wkx、wky、wkz為k時刻三軸向角速度值;thwmax為行走狀態零速區間角速度閾值。將判斷結果C1、C2進行邏輯與運算得到C3:
C3=C1∩C2
(5)
(3)判斷偽零速點并刪除:以加速度和角速度閾值進行判斷,結果顯示仍有零碎的跨步狀態數據點判斷錯誤,成為偽零速區間點,根據常速行走的經驗得出,足部著地時間約為 0.1 s~0.3 s[14],因此將連續零速區間不足0.1s的判斷為偽零速點并剔除,修正為跨步狀態點,得到C4。
(4)判斷偽跨步點并刪除;在腳著地時,由于踏步不穩易將部分采樣點誤判為跨步狀態,根據跨步時間約為 0.1 s~0.3 s[14],將連續跨步時間不足 0.1 s的修正為零速點,獲得最終步態檢測結果C,C值為1表示為腳著地階段的零速區間。步態檢測算法的邏輯運算結果如圖3所示,其中tup到tdown區間表示抬起腳跟開始跨步到腳著地,完成一個跨步過程,tdown到tend區間為算法檢測出的零速區間。

圖3 行走狀態零速檢測算法邏輯圖
2.2.2 多條件約束的跑步狀態零速區間檢測算法
跑步相對劇烈,步頻快,腳著地時間短且不穩定,加速度和角速度數據波動雜亂,相比行走狀態時零速區間不明顯,如圖4和圖5所示。圖4的3名實驗者實測跑步狀態的角速度曲線顯示,3名實驗者跑步時腳步運動特征差異較大,角速度無法獨立作為步態判斷的依據。但不同實驗者在腳著地期間角速度數值均較小,當抬腳的瞬間會出現峰值,可輔助判斷零速區間。
跑步狀態加速度如圖5所示,曲線零速區間不明顯,跨步階段加速度與靜止階段加速度接近,若利用零速檢測算法簡單擴大閾值,將造成較多的虛假檢測。但加速度數據顯示每跑一步存在一個峰值點,可作為跑步狀態特征點,因此可利用峰值點探測,完成跑步一步的步伐探測,再利用跨步階段探測進行零速區間和跨步階段劃分,建立了跑步狀態的多條件約束零速檢測算法。

圖4 跑步狀態角速度分析

圖5 跑步狀態加速度特征
(1)步伐探測
步態周期分為4個階段:腳著地靜止、腳跟抬起、跨步、腳跟著地。如圖5加速度在達到峰值后迅速降低接近零值,該時刻是跑步中腳完成跨步階段后,腳跟碰地時刻,此時腳跟撞擊地面迅速停下,造成加速度劇烈變化。因此,該峰值點可作為跑步完成一個跨步的標志性點,步伐探測即完成該峰值點的探測,進行步數更新。
根據以上分析,跑步狀態步伐探測利用波峰檢測算法,過程如下:
①選取20個歷元的滑動窗口,獲得當前窗口內加速度波峰進行閾值判斷,經過多次試驗數據分析,若峰值在區間[30 m/s2,90 m/s2]內即判斷為跑步狀態;
②計算窗口內波峰與前一波峰時間差,利用時間閾值進行判斷,在[0.2 s,1.4 s]內為跑步狀態,該時長為跑步時該腳著地靜止與跨步時間總和。
③將波峰與前后鄰域10個歷元比較,若為偽波峰則進行剔除,若仍為鄰域內峰值點則更新計步,完成步伐探測。
(2)跨步階段探測
跨步階段探測是確定跨步的起止時間,防止因擴大閾值而產生虛假檢測。算法在步伐探測到峰值點的基礎上,進行多條件約束,實現零速區間與跨步階段的劃分,過程如下:
①根據步伐探測的峰值點向后查找,利用加速度閾值區間[8 m/s2,15 m/s2]進行條件約束,檢測出峰值點后的零速區間,結果為C5。
②利用角速度閾值Ts=2進行約束,輔助檢測零速區間,如式(6)所示,結果為C6。
(6)
將角速度與加速度條件約束結果進行邏輯與運算,完成多條件限制確定跑步狀態零速區間C7。跨步階段則從零速區間的下一歷元開始,直至下一峰值點后的零速區間為止。
步態檢測實驗使用美國MicroStrain公司的高精度微型慣性傳感器3DM-GX3-25,如圖6所示,將傳感器3DM-GX3-25固定于腳上如圖7所示,采集數據頻率 100 Hz,實驗于中國礦業大學環境與測繪學院三樓的不同場景下進行,建筑分布如圖8所示,邀請不同性別、身高、體重人員進行兩種運動狀態的直線和回形路線的實驗,驗證算法有效性。

圖6 硬件設備3DM-GX3-25

圖7 傳感器固定示意圖

圖8 環測學院三樓建筑地圖
3.2.1 行走狀態實驗與分析
為驗證行走狀態零速檢測算法,對身高體重行走姿態差別較大的4名實驗者的7組實驗數據進行處理,結果如表1所示,計步誤差最大為一步,步態檢測正確率達99%以上,因此,行走狀態零速檢測算法可實現有效步態檢測。

行走狀態零速檢測算法統計 表1
3.2.2 跑步狀態實驗與分析
為驗證跑步狀態步態檢測算法是否有效,4名身高體重差異較大的實驗者進行了10組實驗,算法處理結果如表2所示,計步誤差最大為一步,步態判斷準確率達99%以上,實現了跑步狀態高精度的步態檢測與計步。其中,回形跑步計步錯誤是因為該實驗者轉角處速度過慢,加速度未滿足條件所致。

跑步狀態零速檢測統計 表2
跑步狀態步態檢測算法包括步伐探測和跨步階段探測,其中直線路線和回形路線實驗的步伐探測結果如圖9和圖10所示,探測出峰值點用圓圈標記,算法有效探測出腳著地瞬間產生的加速度峰值點,實現步伐更新。在此基礎上,跨步階段探測如圖11所示,其中“*”標志為零速靜止階段,其他為跨步階段。圖11中可以看出,算法有效探測出跑步狀態的零速區間,準確劃分零速靜止階段與跨步階段。

圖9 30 m跑步實驗步伐探測結果

圖10 回形路線實驗步伐探測結果

圖11 跨步階段探測
基于足部微型傳感器的行人慣性導航定位研究中,步態檢測具有舉足輕重的作用。本文提出利用足部著地和跨步時間條件限制的行走步態檢測算法,正確率在99%以上;并針對行人跑步狀態,將跑步狀態劃分為靜止階段和跨步階段,利用步伐探測和跨步階段探測設計了跑步狀態零速區間檢測算法,正確率達99%,避免了簡單擴大閾值引入的運動狀態誤判。綜上,針對行走與跑步狀態的步態檢測算法滿足了步態檢測高精度要求,為行人慣性導航的誤差修正,提高導航精度奠定基礎;不足之處在于未將行走狀態與跑步狀態算法統一,此為進一步研究的方向。