吳金凱, 蔡成林, 甘才軍, 孫 凱
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
隨著全球衛(wèi)星定位系統(tǒng)(global navigation satellite system,簡稱GNSS)的不斷發(fā)展與完善,其已成為室外定位的主要選擇,但在衛(wèi)星信號被遮擋的情況下,GNSS存在定位效果差甚至直接不可用的問題[1],而人們大部分時間都在室內度過。針對此問題,室內定位技術應運而生,因其廣泛的應用場景,室內定位技術已成為導航定位領域的研究熱點。
目前室內定位主要實現(xiàn)途徑有無線局域網(wǎng)WLAN[2]、射頻識別RFID[3]、藍牙Bluetooth[4]、超寬帶UWB[5]、地磁匹配和計算機視覺[6]。其中無線局域網(wǎng)、射頻識別、藍牙和超寬帶均需要額外布置信標節(jié)點,提高了定位成本和實現(xiàn)復雜度;地磁定位需要提前采集離線地磁信息,并且地磁信息需要經常更新,不適合大規(guī)模使用;計算機視覺定位技術定位精度較低,且算法實現(xiàn)難度較大。Foxlin等[7]提出基于慣性測量單元(IMU)的傳統(tǒng)導航方法,加速度二次積分得到行走距離,陀螺儀積分得到航向變化值,得到的定位結果較差,不適用于行人的定位與導航。宋鏢等[8]設計了地磁輔助慣導的手機室內定位系統(tǒng),用地磁指紋匹配校正慣導的累積誤差,并達到了1 m的定位精度,但是地磁指紋地圖建立過程繁瑣,且地磁信息不穩(wěn)定,不適合長時間大范圍的室內環(huán)境。為此,提出一種基于行人航跡推算(PDR)的行人室內定位算法,該PDR定位算法具有精度高、成本低和易實現(xiàn)的優(yōu)點,是當前消費級室內定位的最佳選擇。
行人航跡推算(pedestrian dead reckoning,簡稱PDR)定位原理是已知行人的初始位置P(t0)的坐標為E(t0)、N(t0)),利用加速度計、陀螺儀和磁力計數(shù)據(jù)解算出下一步的航向角γ和步長d,從而推算出從初始位置到當前位置的軌跡[9]:
(1)
其中:E(tn)和N(tn)分別為行人第n步的正東方向E和正北方向N的坐標;di為第i步的步長;γi為第i步的航向角,通常認為行人在單步內的航向角不變。PDR定位算法包括步頻檢測、步長檢測和航向檢測,其定位原理和數(shù)據(jù)解算系統(tǒng)框圖如1、2所示。
圖1 PDR定位原理示意圖
圖2 PDR定位系統(tǒng)框圖
利用人行走時加速度信號的周期性來解算行人的步頻和步長。為了避免手機具體朝向帶來的影響,對加速度數(shù)據(jù)進行歸一化處理。
(2)
圖3 歸一化后加速度波形
為了消除手機加速度傳感器精度較低和行人使用手機習慣不同帶來的噪聲影響,對原始加速度數(shù)據(jù)進行滑動窗口平滑濾波預處理。圖4為平滑濾波后的加速度波形,可以更加直觀地看到加速度變化趨勢。
圖4 平滑濾波后加速度波形
步頻檢測采用閾值交叉和極值檢測相結合的方法。設定上下閾值,當加速度高于上閾值時,檢測局部極大值,然后追蹤數(shù)據(jù);當加速度低于下閾值時,檢測局部極小值,記為單步完成。依次重復,直到檢測出所有有效跨步為止。
圖5 步頻檢測示意圖
步長檢測方法主要分為2類[10]:1)固定步長,在單步跨步內的步長是固定的,這種方法簡單方便,但行人的每一次跨步步長顯然不是固定不變的;2)動態(tài)步長,行人步長與步頻、加速度等的變化有關。采用動態(tài)步長檢測模型估計行人步長,
(3)
其中:amax為第k步單步內的最大加速度;amin為單步內的最小加速度;λ為比例系數(shù),在定位前用最小二乘法線性擬合加速度數(shù)據(jù)訓練得到。該模型參數(shù)較少,容易實現(xiàn),經實驗驗證,模型精度符合定位要求。
航向檢測是定位解算的關鍵步驟,較小的航向偏差經過長時間的累積也能造成較大的定位誤差,尤其針對消費級定位系統(tǒng),傳感器精度較低,對航向檢測算法有更高的要求。航向檢測算法主要是使用磁力計直接解算航向[11],結構簡單,易于實現(xiàn),但是磁力計易受到系統(tǒng)本身和外界環(huán)境的磁干擾,尤其是在室內地磁復雜多變的情況下,會大幅度降低磁力計的解算精度。為此,使用四元數(shù)解算三軸陀螺儀數(shù)據(jù),采用擴展卡爾曼濾波(extended Kalman filter,簡稱EKF)融合三軸加速度計、三軸陀螺儀和三軸磁力計數(shù)據(jù)解算行人航向角。陀螺儀可在短時間內提供較高的航向角,但航向誤差會隨時間累積,而加速度計和磁力計可提供絕對的航向角,但精度較低,融合三者數(shù)據(jù),可以得到長時間穩(wěn)定的高精度航向角。
四元數(shù)的剛體運動方程[12]和其矩陣形式為:
(4)
(5)
(6)
其中:gx、gy、gz為經過數(shù)據(jù)融合后的三軸角速度;Δt為手機傳感器采樣周期。最后,解算行人姿態(tài)角(橫滾角γ、俯仰角θ和航向角ψ):
(7)
擴展卡爾曼濾波用于估計離散時間序列的狀態(tài)變量。首先根據(jù)前一時刻的后驗估計值來估計當前時刻的狀態(tài),然后使用當前時刻的觀測值修正當前的狀態(tài),得到當前時刻的后驗估計值[14]。其狀態(tài)方程和觀測方程為:
Qk+1=FQk+wk;
(8)
(9)
圖6 航向角測試
設計手機端APP采集手機內置加速度計、陀螺儀和磁力計傳感器數(shù)據(jù),數(shù)據(jù)存儲在手機中,然后上傳至筆記本電腦,用Matlab平臺實現(xiàn)PDR定位算法的仿真。實驗測試手機為華為榮耀9,內置加速度和陀螺儀傳感器為LSM6DS3,地磁傳感器為AKM09911,設置算法的采樣頻率為50 Hz。測試之前,實驗者以不同速度行走,利用最小二乘法訓練步長比例系數(shù)λ,并完成磁力計的校準。
步頻步長測試場地為標準400 m跑道,選取不同的人分別沿直線行走50 m和100 m進行步頻步長測試。步頻檢測準確率接近100%。步長測試實驗結果如表1所示。從表1可看出,步長檢測誤差小于1%。
表1 步長測試實驗結果
圖7 室內定位效果
圖8 室內定位誤差
室內定位測試場地為圖書館內回字形走廊,其長寬分別為34 m和18 m,行走總長度約為100 m。已知行人初始位置,實驗者沿走廊走一圈回到起點位置,室內定位效果和誤差如圖7、8所示。從圖8可看出,該PDR定位算法最大定位誤差為1.72 m,平均定位誤差0.86 m,誤差小于1 m的為58.22%,誤差小于1.5 m的為95.89%。經多次實驗驗證,綜合定位誤差小于行走總路程的1.8%。定位精度較高,符合室內定位的要求。
針對當前室內定位的實際需求,提出了基于PDR的行人室內定位算法。利用加速度特性檢測行人步頻步長,采用非線性步長檢測模型,提高了步長檢測的準確率,基于四元數(shù)和擴展卡爾曼濾波(EKF)的航向解算算法,融合三軸加速度計、三軸陀螺儀和三軸磁力計解算行人航向角,大大提高了航向角解算精度,使得手機定位誤差在總行程的1.8%以內。在定位前無需布置任何信標節(jié)點,解決了消費級室內定位難以實現(xiàn)的問題。該方法定位精度較高,實用性強,應用范圍廣。