朱家松,程 凱,周寶定,林偉東
(1. 深圳大學土木工程學院,廣東 深圳 518060; 2. 深圳大學空間信息智能感知與服務深圳市重點實驗室,廣東 深圳 518060)
隨著移動互聯網的發展和生活水平的提高,人們對位置服務的需求日益強烈。目前,室外環境主要應用于GPS衛星定位系統。但由于建筑物的遮擋,致使GPS定位系統的覆蓋范圍受限,無法應用于室內定位。因此開展室內定位的相關研究,成為位置服務領域的研究熱點[1-3]。
目前已經出現了很多室內定位的方法,其中基于WiFi的定位是研究的熱門[4],隨著智能手機和無線網絡的普及應用,WiFi定位的優勢明顯,成本低,無需額外的定位設施。目前,WiFi定位方法主要有兩類:基于位置指紋的方法和基于信號傳播模型的方法。其中基于位置指紋的方法應用最為廣泛,WiFi位置指紋是指某個位置采集的所有WiFi接入點的接收信號強度(received signal strength indicator,RSSI),每個接入點又具有唯一的介質訪問控制(media access control,MAC)地址。WiFi位置指紋定位具體以離線位置指紋采集及在線定位兩個階段實現[5-7]。由于室內障礙物的存在會引起信號多徑衰減的產生,也會影響信號的覆蓋范圍,因而導致接收信號強度(RSSI)有偏差[8]。同時無線信號的時變性會導致RSSI值波動[9-12]。這些因素使基于RSSI的室內定位精度和穩定性較差,無法滿足室內定位需求[11-13]。
從智能手機中可以獲取多種傳感器數據,利用慣性傳感器定位配合行人航位推算(pedestrian dead reckoning,PDR)方法可以實現連續無縫的定位。然而,PDR存在累積誤差問題,無法長時間定位[14-15]。此外,PDR只能實現相對定位,其初始化位置的判定十分關鍵,初始位置的準確性直接影響后序的定位結果。
綜上所述,本文提出一種基于互補濾波(complementary filtering)融合WiFi和PDR的室內定位方法。互補濾波可利用WiFi修正PDR的定位結果,減少PDR誤差累積,很好彌補彼此的缺點。除此之外,本文對WiFi位置指紋定位中K最近鄰(K-nearest neighbor,KNN)算法進行改行,通過自適應K的獲取來排除一些非臨近點的干擾;還對PDR初始位置的計算方法進行優化,通過多次定位結果動態反饋,推算準確的起始位置。
根據室內環境劃分室內坐標網格點,在相應的坐標點上采集WiFi離線指紋數據庫。數據主要有MAC數據{(1,mac1),(2,mac2),…,(n,macn)},mac為WiFi AP的MAC地址,n為總數。還有各個采樣點的位置指紋數據{(k1,rssk1),(k2,rssk2),…,(km,rsskm)},其中m表示MAC地址對應的編號,取值1~n,rsskm為對應MAC的平均接收信號強度。
定位階段,在室內任意位置采集WiFi指紋數據{(k1,RSSk1),(k2,RSSk2),…,(km,RSSkm)},然后計算當前點與各網格點對應MAC地址的強度平均差值,計算公式為
(1)
式中,Dj為在線WiFi指紋數據與第j個網格點的強度平均差值。依據Dj值升序排序,采用KNN算法,選取k個相似度最高的參考點(差值越小相似度越高)。其中,k自適應取值(k>1)。首先,筆者以相似度最高的點Dmin為確定參考點,設置閾值λ(λ>1,根據具體場景設定,一般為1.5左右);然后,在其他網格點中獲取所有小于λDmin的點,過濾掉與上個定位點距離大于d的網格點,d的取值大于兩次定位時間間隔與定位設備最大移動速度的乘積;完成以上計算后,得到k個定位參考點,計算這k個點的平均坐標作為WiFi定位的估測位置,公式如下
(2)
行人航位推算的主要原理是通過每一步的步長結合方向角信息推算相對位移信息。用Qk=(Xk,Yk,θk,Lk)表示第k步時行人的狀態信息,Xk、Yk表示行人的位置,θk表示第k步的航向角,Lk表示第k步的步長,則行人位置狀態轉移方程為
(3)
由式(3)可知,第k步的絕對位置由第k-1步的絕對位置推算得出。遞歸可得,行人航位推算的需要確定初始位置,因此行人航位推算的初始位置直接影響后續的定位結果。
根據第i步的WiFi位置指紋定位,得到根據強度差值D升序排序的候選定位點序列Si表示為
Si=xi1,yi1,xi2,yi2,…,xin,yin
(4)
式中,n為網格點的數目。行人從第一步行走至i-1步,由初始化的算法可得到所有候選軌跡的集合Ti-1,假設共有m條軌跡。將m條軌跡的最后一個點與Si中n個候選點進行距離和方向運算。用dkj表示Ti-1中第k條軌跡最后一個結點與第i步中第j個參考點的距離;用hkj表示兩點形成的向量與地理北極的夾角;同時計算第i步的航向角與hkj的方向偏差hdiff。分別對hdiff和dkj設定閾值,在閾值范圍內的軌跡才會被考慮,否則視為不可能的軌跡。根據試驗設dkj<3 m和hdiff<40°。
令不可能的軌跡ptotal=0,需進一步計算剩余軌跡的概率ptotal,以衡量其可能性。設定行人的步長為step_length,計算距離偏差ddiff=dkj-step_length。由文獻[16]可知,距離偏差ddiff和方向偏差hdiff可假設服從高斯分布,因此可得到概率公式為
(5)
式中,σd和σh分別為距離偏差和方向偏差的標準差;pd和ph為距離偏差和方向偏差的高斯分布概率。然后結合WiFi定位的得到Si中各參考點的相似度,得到第i步第j個點WiFi定位概率pkj為
(6)
式中,n代表可能定位的點;D代表WiFi指紋對應的強度差值,差值越小,相似度越高。最后計算Ti-1中第k條軌跡最后一個結點行走到第i步中第j個參考點的軌跡概率
ptotal=ωpkj+(1-ω)pdph
(7)
式中,ω為WiFi相似度的權重;(1-ω)為距離偏差和方向偏差所占的權重。本文將ω設為0.5。
每經過一次上述過程,將會得到m×n條軌跡的Ptotal,降序排序。將概率最高的軌跡對應的最后一個結點作為PDR定位結果輸出,表示為posPDR。為了減少后續的運算量,每一步定位完成后,僅保留前N條概率最高的軌跡。通過連續幾步定位后,使得定位誤差逐漸收斂,并將概率最高的軌跡中最后一個點作為下一步航位推算的起始位置。
互補濾波就是根據WiFi定位和PDR定位的不同特性,取長補短。短時間內PDR定位較準,而長時間后由于誤差累加,會造成輸出誤差比較大,甚至無法使用,而單獨的WiFi定位沒有累積誤差,長時間后仍可使用。因此每過一段時間就用WiFi去修正一下PDR的定位結果,公式如下
posfinal=posPDR?+posWiFi1-?
(8)
式中,?為PDR的定位權重;(1-?)為WiFi定位權重;posfinal為最終融合定位結果。在本文中,?取值0.7。
試驗地點位于深圳大學科技樓14樓,室內面積為52.5 m×52.5 m。確定相對坐標系,以西南角為坐標零點,正東方向為X軸(0~52.5 m),正北方向為Y軸(0~52.5 m)。試驗器材為Google Pixel2手機,WiFi掃描平均兩點幾秒一次,內置加速度計、陀螺儀、磁力計及氣壓計等,系統為Android 8.0。志愿者攜帶手機采集離線WiFi位置指紋數據,采樣點平均每隔1.5 m一個,總計246個點。如圖1所示。
其中每個采樣點采集10次以上的WiFi掃描數據。通過試驗分析,當MAC強度低于-80 dBm時,可以認為該AP在該采樣點位置信號微弱,波動較大,存在不穩定因素,因此筆者剔除掉每個點接收信號強度低于-80 dBm的MAC地址。最后,匯總所有點的指紋數據,生成離線指紋數據庫。
在線試驗過程中,將不同定位算法寫入智能手機中,每次定位會記錄多種不同的定位算法結果。為了保證試驗的準確性,分別在3種不同情景區域中測試定位效果,主要包括環境簡單的走廊區域、人員較多的辦公區域、開闊的電梯區域。區域路線如圖2所示。
其中走廊區域設置30個定位測試點,辦公和電梯區域各20個定位測試點。志愿者每經過測試點時停留,點擊按鈕記錄6次定位結果,最后取平均再與真值作比較。
本次試驗主要用融合定位算法對比了WiFi定位KNN算法、自適應KNN算法及PDR定位。試驗結果如圖3—圖5所示。
由圖3—圖5可知,在3種不同的區域中,精度方面,PDR的定位精度隨著距離越遠,定位效果越差,后面直接無法使用。從表1中可以看出WiFi-KNN的平均定位精度大致在3~5 m,空曠的電梯區域效果最差;自適應KNN的定位精度略有提高;然而融合定位平均精度均低于3 m,在環境簡單的走廊,平均精度更是達到了2.1 m。在穩定性方面,從表2定位標準差可以看出,純WiFi定位的穩定性較差,定位效果波動較大,融合PDR后定位標準差小了很多。因此基于互補濾波融合的WiFi和PDR的行人室內定位方法能大大提高室內定位的精度和穩定性。

表1 平均誤差 m

表2 標準差 m
本文提出了一種基于互補濾波融合WiFi和PDR的行人室內定位方法。通過自適應KNN算法改進WiFi定位精度,通過PDR初始化算法提高行人航位推算初始位置的準確性,最后利用互補濾波原理,根據WiFi和PDR定位優缺點,取長補短,最大可能優化定位結果。試驗表明本文方法能在低成本情況下提供較高的定位精度,相對其他常用定位方法,本文的定位算法更具備穩定性和精準性。此外,從試驗結果圖和表中可以看出在空曠的電梯區域,定位效果明顯差于其他兩個區域,因此下一步的工作是通過路網修正的算法,改善空曠區域的定位較差的問題。