鐘亞洲, 吳 飛, 任師濤
(上海工程技術大學 電子電氣工程學院,上海 201620)
室內復雜多變環境下,利用信號強度進行定位時,易致電磁波信號產生衰減、多徑和干擾[1]。基于指紋數據庫的無線室內定位方法需要在目標環境中選取若干參考點進行采樣并通過指紋數據庫作為目標環境特征進行位置估計。無線接入點的性能和分布決定了定位的精度,如果想要在大區域級進行人員定位,大規模基礎設施建設導致基于指紋數據庫的無線室內定位方案優勢并不明顯。而智能手機感知環境的能力已經非常強大。因此,基于行人航跡推算(pedestrian dead reckoning,PDR)的定位和導航方式將帶來新的機遇[2~4]。文獻[3]提出了利用加速度和角速度建立行人運動模型,采用足綁式(Foot-mounted)方法和擴展卡爾曼濾波對導航參數誤差進行估計和補償;文獻[4]為了提高人員動作分類的準確率,提出了利用慣性數據特征,通過支持向量機理論構建行進動作分類器;文獻[5]針對人體三維坐標精準定位,提出了三維復雜運動模式航跡推算算法,通過有效跨步求解人體位置的三維坐標。但以上文獻均未利用環境信息來提高定位精度。
本文設計了粒子濾波(particle filtering,PF)器并且融合室內平面地圖和PDR信息,提出一種基于PF的PDR定位算法,提高了室內環境下用戶定位精度。
系統整體框架如圖1所示,首先使用手機內置的加速度計進行步伐檢測和計步,陀螺儀和磁力計進行方向估計;然后結合地圖匹配信息,使用PF算法對得到的定位數據進行濾波融合。

圖1 基于地圖匹配的室內定位流程
行人行走一步時,PDR算法需進行方向和步長估計。根據行人初始位置,可以推算出之后時刻行人的位置[6]。設坐標系為東北坐標系,行人位置更新為
(1)
式中xk為第k步時行人的東西坐標;yk為第k步時行人的南北坐標;SLk為第k步時的步長;θk為第k步時相對于北向的夾角。
行人實際的室內運動中一般包含著多種運動模式,通過PDR,可以將行人的行走運動模式建立為一個三維運動模型[7]。PDR需要步伐和頻率檢測,如果步伐檢測出現錯誤或者丟失步伐數值,將導致步行距離與實際行走的長度偏差較大。本文選用零點交叉法來檢測步伐。
使用加速度傳感器進行步伐檢測和計步時,會產生一些測量噪聲[8],將會導致步伐檢測和計步出現錯誤,影響步長估計的精度。用高通濾波器濾除重力加速度,即
aavg=a×0.1+aavg×0.9,ah=a-aavg
(2)
式中a,aavg,ah分別為加速度測量值、均值和經高通濾波后的值。
輸出的過零點加速度計檢測使用此信號。步伐檢測算法的結果如圖2所示。

圖2 加速度值零點交叉法
由于步長受線性模式的影響[9],使用式(3)~式(5)確定行走頻率與加速度方差
SL=α·WF+β·AV+γ
(3)
WF=1/(tk-tk-1)
(4)
(5)
式中α,β和γ參數根據環境進行設定;WF為行走頻率;AV為加速度方差。通過式(6)計算步行距離
(6)

取粒子數為N=100,對用戶的行走方向進行濾波。設定權值初始值為1/N,根據系統設定可知粒子的權值之和為1,每個粒子代表用戶的一個可能的運動狀態,即用戶的一個可能的位置。
通過粒子狀態不斷轉移,用戶的位置隨著時間的推移不斷更新。PF算法需要考慮到行人運動過程中的誤差控制, PDR算法中通過矢量疊加,不同的粒子權重在運動中將產生不同的路徑[10]。隨著時間和位置距離的累加,會導致位置信息的累計偏差增大。因此,將粒子權重w作為路徑航向平滑因子
(7)
式中θt為t時刻行人位置信息中方向信息,為引入平滑因子后第i個粒子代表的行走方向。圖3為粒子平滑示意。

圖3 粒子平滑示意
PF算法通過不斷更新粒子的位置和權重值來逼近系統的真實后驗概率分布。權重值越大,系統在該狀態的可能性越大。通過運動模型,粒子不斷更新位置,同時,通過量測模型粒子更新權重值。PDR算法需要考慮定位實時性問題,所以PF算法的計算量需要滿足硬件的需求,在智能手機硬件的基礎上盡可能提高PF算法的實時性[11]。為降低PF算法的計算量,選擇地圖匹配的PF算法。主要思路是充分利用環境信息,將地圖信息導入PDR系統中,利用地圖中的障礙物來更新粒子權重。設定當粒子遇到墻壁或者家居等障礙物時,粒子滅亡,粒子的權重變為零;否則,粒子存活并更新粒子的位置和權重。
重采樣能夠抑制退化現象[12],減少權值較小的粒子數目,對具有較大權值得粒子增加粒子數目,但會導致粒子多樣性降低,同時,增加粒子數目會導致PF算法的計算復雜度增加,從而消耗更多的計算時間。本文選擇權值選擇的PF算法[13],通過選出權值較大的粒子來估計行人的運動位置和狀態。結合地圖匹配的PF算法,可以提高PDR系統的重采樣效率,同時也解決了粒子退化問題。
實驗場地是一個70 m×50 m 的長方形區域,平面圖如圖4所示,圖中主要有走廊AB和走廊BC,走廊兩側的墻壁和門視為障礙物。本次仿真實驗按照正常速度行走進行測試。要求測試人員以A點為起點,沿著走廊AB從正西方向朝著正東方向行走,到達走廊BC之后立刻右轉彎,從B點沿著走廊BC從正北方向朝著正南方向行走,C點為單次實驗終點。

圖4 實驗場地平面

(8)
式中σv為高斯噪聲。設置高斯噪聲為零均值,標準差為0.08 m/s。
通過在室內環境下進行仿真實驗,比較了使用PF的PDR算法前后的定位精度誤差。仿真實驗要求測試人員以空心圓為起點,空心矩形為終點。使用的PDR算法記為PDR+PF_Method,使用PF的PDR算法記為PDR_Method。對于2種方法分別進行10次行走測試。通過對行人的行走過程進行軌跡分析和標定,將行人最終定位軌跡繪制在實驗平面圖中,為定位誤差分析提供了參考。圖5為仿真實驗平面示意。

圖5 仿真實驗平面
將2種方法計算的總距離與實際行走的距離進行比較,得到圖6所示的實驗誤差比較。

圖6 實驗誤差比較
由圖6可知,測試10次之后,PDR_Method算法計算出的總距離和實際軌跡距離誤差較大,誤差范圍大于等于5 %,占比70 %以上,而PDR+PF_Method測試10次的誤差范圍均在5 %以內。仿真實驗結果表明:本文基于PF的PDR定位算法提高了行人室內定位的精度。
本文針對目前PDR定位精度不高的缺點,提出一種基于PF的PDR定位算法。仿真實驗結果表明,使用PF算法輔助PDR之后,提高了定位精度。