胡文強,胡建鵬
(上海工程技術(shù)大學 電子電氣工程學院,上海 201620)
作為位置服務手段,全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite System,GNSS)擁有良好的定位效果和廣泛的覆蓋范圍。然而,在空間結(jié)構(gòu)復雜的室內(nèi)環(huán)境下,由于GNSS信號被阻擋,無法進行精準的定位與導航服務。隨著5G技術(shù)商業(yè)化發(fā)展,室內(nèi)定位技術(shù)再度引起了廣泛關注。對于基于位置服務(Location Based Service,LBS)的需求日益增加,這也刺激了室內(nèi)定位系統(tǒng)和相關技術(shù)的快速發(fā)展[1]。
以WiFi為代表的室內(nèi)定位技術(shù)可與GNSS形成有效的互補。相較于其它定位技術(shù),WiFi定位能夠有效利用現(xiàn)有公共服務場合下的硬件設施,在滿足基本定位需求的同時,降低定位系統(tǒng)所需的成本。但由于WiFi信號在時域上具有波動性,因此僅靠單獨的定位系統(tǒng)進行位置服務存在較大的局限性,無法充分利用WiFi系統(tǒng)所表現(xiàn)出的優(yōu)勢。針對該問題,可以將多種信號進行融合互補,例如可以將WiFi與慣性導航系統(tǒng)進行融合[2]。
為提高目前單一定位系統(tǒng)的性能,研究人員圍繞有關WiFi與行人航位推算(Pedestrian Dead Reckoning,PDR)的定位系統(tǒng)展開了研究和討論。文獻[3]將慣性導航與WiFi指紋定位進行融合,設計完成了一套基于智能終端的絕對定位系統(tǒng)。文獻[4]針對WiFi定位存在的回跳及點位重積等問題,通過PDR方法對其進行修正,采用漸消因子的自適應加權(quán)擴展卡爾曼濾波(Extended Kalman Filtering,EKF)算法對兩種方法進行了松耦合。文獻[5]提出了一種改進的指紋定位方法,并以此設計并實現(xiàn)了相應的定位系統(tǒng)原型,該系統(tǒng)能起到抗干擾的作用,具有良好的魯棒性與可靠性。文獻[6]在WiFi定位部分采用了一種改進的加權(quán)K-最近鄰(Weighted K-Nearest Neighbor,WKNN)算法;PDR定位算法則使用了多重約束條件的步態(tài)檢測和在線步長估計方法;最后將EKF作為WiFi和PDR定位的融合濾波器。文獻[7]提出了一種基于自適應粒子濾波的室內(nèi)行人WiFi 與PDR 組合定位算法,該算法能夠通過自適應因子自動調(diào)節(jié)觀測量對粒子分布的影響。
上述研究將WiFi定位與慣性導航技術(shù)應用到了室內(nèi)定位系統(tǒng)中,并對系統(tǒng)的實時性、定位精度以及算法復雜度等進行了探討。但是目前存在以下需要解決的問題:(1)WiFi指紋定位在線匹配的計算性能問題沒有得到解決,這將導致定位系統(tǒng)無法進行實時定位;(2)在使用EKF算法時,融合階段的多傳感器融合部分沒有針對時間配準問題的解決方案,導致系統(tǒng)無法進行有效的數(shù)據(jù)融合?;谝陨蠁栴}和不足,本文在WiFi/PDR融合定位方法的基礎上,提出了一種基于區(qū)域限制的自適應滑動窗口指紋匹配方法,并在融合定位部分結(jié)合了EKF與PDR的系統(tǒng)特性來解決時間配準問題。本文所提方法通過自適應窗口縮小了指紋匹配的范圍,提高了定位系統(tǒng)的計算性能,同時能根據(jù)系統(tǒng)迭代過程中定位環(huán)境所反饋的信息進行動態(tài)調(diào)整,從而提高最終的定位精度。
基于接收信號強度指示(Received Signal Strength Indicator,RSSI)的WiFi指紋定位方法可被分為兩個階段:采集RSSI數(shù)據(jù)建立指紋庫的離線階段和匹配定位的在線階段[8-9]。
離線階段通過移動終端收集特定WiFi的RSSI數(shù)據(jù)。首先對定位區(qū)域進行部署規(guī)劃,利用一些地標信息將定位區(qū)域劃分為不同網(wǎng)格。然后,將每個網(wǎng)格的頂點作為定位參考點,并將其中的特征信息(包括坐標信息、WiFi信號強度值、MAC地址等)作為一組指紋信息,從而可以得到一組位置指紋數(shù)據(jù)RP
(1)
式中,(xL,yL)為第L個參考點的位置;附屬值代表在該參考點的RSSI數(shù)據(jù),其中rssiLN表示在位置L接收到的第N個信號接入點數(shù)據(jù)。
在線階段利用接收到的信號強度數(shù)據(jù),通過匹配算法得到移動終端的位置。在該階段中,采用WKNN算法作為指紋匹配方法。WKNN通過不同指紋節(jié)點的貢獻比來給每條指紋分配權(quán)重,從而提高了原始K-最近鄰(K-Nearest Neighbor,KNN)算法的運行精度[10]。WKNN經(jīng)過多次選擇,得到k條與未知點指紋相似度最小的指紋樣本,從而得到未知點的估算坐標。
WiFi指紋定位可有效地利用現(xiàn)存的WiFi信號接入點,無需增設額外的定位基站。在真實情景中,信號接收終端在不同行走區(qū)域所采集到的WiFi列表存在連續(xù)變動的情形,不同位置采集到的信號總數(shù)與信號強弱均有所不同,因此無法依據(jù)預先指定的信號接入點的MAC地址來獲取相應的RSSI數(shù)據(jù),這給后續(xù)指紋匹配的實現(xiàn)帶來了阻礙[11]。同時,在WiFi指紋定位的在線匹配階段,位置的全局搜索會增加定位誤差變大的概率,從而影響了算法最終的性能與復雜度。
為了解決上述問題,在指紋建庫階段,通過信號強度排列與列表交集來保留最能表征當前位置指紋的信號強度數(shù)據(jù)。在指紋匹配階段,本文采用了一種基于自適應滑動窗口的WiFi指紋匹配方法以提高定位系統(tǒng)的定位精度與算法執(zhí)行性能。具體的定位流程如下:
(1)離線階段采集數(shù)據(jù)建立WiFi指紋庫,將WiFi列表中的數(shù)據(jù)進行排序,并從中選取數(shù)值最大的M條信號強度數(shù)據(jù),則位置L采集到信號數(shù)據(jù)可以表示為RSSIL(i)(0
(2)計算參考點L信號數(shù)據(jù)的交集,從而獲取最接近真實值的位置信息,以此表征當前WiFi接入點的位置指紋數(shù)據(jù)
(2)
式中,M表示W(wǎng)iFi列表中的信號采樣數(shù)目;RSSIL(i)表示第i條信號強度數(shù)據(jù);
(3)對其中的每組信號強度數(shù)據(jù),通過高斯函數(shù)擬合RSSI采樣數(shù)據(jù)的分布狀態(tài),從而獲得概率值最大的RSSI數(shù)據(jù)[12]。其中,RSSI值服從(μ,σ2)的高斯分布,其概率密度函數(shù)為
(3)
其中
(4)
(5)
式中,M表示獲取交集以后的信號采樣數(shù)目;
(4)在在線階段采集RSSI信號,并與指紋庫中的數(shù)據(jù)進行配對。根據(jù)信號強度數(shù)據(jù)的歐式距離設定滑動窗口的大小,從而增加指紋匹配的區(qū)域限制。根據(jù)指紋數(shù)據(jù)的歐氏距離獲得滑動窗口SWk
(6)
式中,Dk表示相鄰狀態(tài)的信號強度數(shù)據(jù)的歐氏距離;[Dmin,Dmax]表示在一個穩(wěn)定環(huán)境下Dk的取值范圍;S表示W(wǎng)iFi定位方法的定位最大誤差,其中Dmin、Dmax、S均被設置為經(jīng)驗值。
當k=0時,初始值SW0為常量,為WiFi指紋定位方法的最大誤差;
當k≥1時,SWk由式(6)獲得,Dk為
(7)
式中,RSSI(k)表示用戶運動時,第k個狀態(tài)對應的位置點所采集到的一組WiFi信號強度數(shù)據(jù);
(5)在WKNN匹配算法執(zhí)行過程中,以上一狀態(tài)的定位坐標為基準,在搜索窗口大小為SWk×SWk的區(qū)域范圍內(nèi)選取距離最小的k個位置,位置的平均坐標即為最終的定位估計值
(8)
式中,x和y表示系統(tǒng)估計的定位坐標;xi和yi表示指紋匹配的可選位置;wi表示所選取第i個位置的權(quán)重。
在基于擴展卡爾曼濾波的融合定位系統(tǒng)中,以一種或多種融合信息源構(gòu)建狀態(tài)空間。與此同時,通過其他定位信息源構(gòu)建觀測空間信息,由卡爾曼增益賦予測量值和當前狀態(tài)估計值的相對權(quán)重,通過系統(tǒng)對不同參考信息進行調(diào)和以獲得精準的定位性能[13-14]。在基于擴展卡爾曼濾波的融合定位過程中,系統(tǒng)首先以PDR方法構(gòu)建狀態(tài)空間,然后以WiFi指紋定位方法構(gòu)建系統(tǒng)觀測空間,并按照模型規(guī)則對系統(tǒng)的狀態(tài)空間進行更新。系統(tǒng)流程圖如圖1所示。
《白皮書》顯示,全國年輕家庭母嬰用品月均花費達1294元,較2016年增長48%,高級別城市花費更多。但隨著租房成本上升,局部母嬰消費市場還是呈現(xiàn)出了明顯的“消費降級”趨勢。然而,絕大多數(shù)父母并不愿意在“食品”上動刀,而選擇把減少開支的矛頭指向“親子游”“玩具”等非必需品。
圖1 WiFi/PDR融合定位算法流程圖
PDR定位算法根據(jù)行人狀態(tài)(位置、航向角等)的變化,實時累積計算行人的位置[15]。在二維平面內(nèi),行人的運動軌跡可以通過步長和方向角計算得到。已知在第k-1步的坐標為 (Ek-1,Nk-1),則在第k步的位置坐標為
(9)
式中,dk-1為第k-1步到第k步間的行走步長;θk-1為第k-1步的航向角。通過式(9)可以推算出每一步的狀態(tài)信息。
在步頻檢測上,PDR采用峰值檢測法,通過檢測加速度計輸出信號的波峰來識別行人步數(shù)。在波峰搜索時,兩個連續(xù)波峰即被確定為一步[16]。本文通過Weinberg步長估計模型[17]來推算行人步長
(10)
式中,C為步長比例因子;amin和amax分別是行人行走一步時所檢測到的最小加速度和最大加速度。
在基于WiFi/PDR的融合定位系統(tǒng)中,不同傳感器的數(shù)據(jù)采集頻率不同。PDR所依賴的慣性傳感器采樣頻率可以達到幾十赫茲,例如iOS平臺的頻率為50 Hz,Android平臺的頻率為100 Hz。PDR的定位結(jié)果以每一步作為一個狀態(tài),因此與步頻一致,約為0.5~2.0 Hz。由于WiFi信號采樣頻率較低,大約為2 Hz,且頻率固定,因此在進行WiFi與PDR的數(shù)據(jù)融合前,需要對其進行時間對準處理[17]。WiFi與PDR數(shù)據(jù)采集頻率的差異如圖2所示。
圖2 WiFi與PDR采樣頻率示意圖
常見的時間配準方法是以最低頻率數(shù)據(jù)為基準,將高頻率數(shù)據(jù)進行低頻轉(zhuǎn)換。在所涉及定位系統(tǒng)中,行人的步行頻率為0.5~2.0 Hz。為了保留行人行走步伐中的有效信息,應當采用PDR信息的采集頻率。與在數(shù)據(jù)預處理階段進行時間配準的方法不同,本文按照如圖3所示的流程在融合階段進行時間配準。
圖3 融合定位算法流程圖
由圖3可知,只有在WiFi數(shù)據(jù)更新時才能通過EKF算法進行數(shù)據(jù)融合;在WiFi數(shù)據(jù)未更新時,定位終端的WiFi記錄值保留了上一狀態(tài)的數(shù)據(jù),該信息無法對定位結(jié)果進行校正,而PDR方法可以在較短的時間內(nèi)獲得相對準確的定位結(jié)果,此時可直接將PDR方法輸出的結(jié)果作為最終位置。
通過式(11)計算得到用戶運動時在第k步所對應的系統(tǒng)狀態(tài)矩陣X′k。
(11)
在完成EKF線性化與狀態(tài)初始化后,系統(tǒng)的先驗估計為
X′k=AXk-1+W
(12)
P′k=APk-1AT+Q
(13)
卡爾曼增益矩陣可以表示為
Kk=P′kHT(HP′kHT+R)-1
(14)
根據(jù)觀測結(jié)果,更新系統(tǒng)狀態(tài)與協(xié)方差矩陣,系統(tǒng)后驗估計為
Xk=X′k+Kk(Zk-HX′k)
(15)
Pk=(I-KkH)P′k
(16)
式中,A是作用在系統(tǒng)狀態(tài)Xk-1上的狀態(tài)變換矩陣;Q表示預測模型的噪聲;H是觀測模型矩陣,它將真實狀態(tài)空間映射成觀測空間;R表示觀測噪聲的協(xié)方差矩陣;P′k為先驗估計誤差協(xié)方差矩陣;Pk為后驗估計誤差協(xié)方差矩陣;I為單位矩陣;Kk為卡爾曼增益;Zk為系統(tǒng)的觀測變量。
為評估所提方法的性能,本文選取了本校電子電氣工程學院七樓整層作為實驗場所。實驗信號選用了校園網(wǎng)的WiFi信號接入點,其布局情況如圖4所示,WiFi接入點隨機分布在不同的辦公區(qū)域內(nèi)。實驗場所長約70 m,寬約25 m,是典型的室內(nèi)辦公環(huán)境。區(qū)域內(nèi)包括了展廳、師生辦公室、會議室等。實驗定位終端采用華為榮耀8作為PDR和WiFi數(shù)據(jù)的采集工具。參數(shù)中的Dmin、Dmax、S分別被設為20、70和10,滑動窗口初值SW0為10。
圖4 實驗場景及AP分布平面示意圖
在WiFi指紋定位的離線階段,以0.8 m大小的方格為間隔,離線采集了整層樓的WiFi指紋數(shù)據(jù)并建立了WiFi位置指紋數(shù)據(jù)庫,將其存儲為JSON格式數(shù)據(jù)。
實驗過程中,身高為170 cm、體重為70 kg的志愿者以固定姿態(tài)持握手機在定位系統(tǒng)測試區(qū)域正常行走。圖5中的帶箭頭實線為測試人員行走時的真實運動軌跡。
圖5 實驗場景及真實軌跡示意圖
在實驗中分別記錄了通過WiFi指紋定位與PDR方法所獲得的結(jié)果,并繪制了定位軌跡。此外,采用EKF算法獲得了融合定位軌跡,如圖6所示。
圖6 實驗軌跡對比圖
由圖6可見,相較于其它方法的定位軌跡,融合定位軌跡更為平滑,也更接近行人的實際軌跡。WiFi定位雖能輸出絕對的估計位置,但其數(shù)據(jù)波動較大,平均定位精度為3.42 m。PDR定位在短時間內(nèi)可保持良好的精確度,但隨著迭代次數(shù)的增加,累積誤差會越來越大,尤其在行人轉(zhuǎn)向時,可能會產(chǎn)生較大的偏差,最終累積誤差為5.74 m。本文所提的改進EKF算法能有效融合兩者的優(yōu)勢,其平均精度為2.27 m,精度提升較為明顯,表明該方法能提高最終的定位精度。
針對圖6中定位系統(tǒng)所估計的行人運動軌跡,圖7給出了對應的誤差累積分布函數(shù)曲線。該誤差累積分布函數(shù)曲線進一步分析了所提融合定位算法的運行性能。由圖可見,以定位誤差小于3 m為例,WiFi指紋定位與PDR定位的誤差累積分布函數(shù)均不到60%,而基于所提融合定位算法的定位誤差累積分布函數(shù)達到了80%,可見所提基于EKF的融合定位算法對定位精度有較明顯的提升作用,其結(jié)果也優(yōu)于單一定位系統(tǒng)的定位性能。
圖7 定位誤差累積分布函數(shù)
為實現(xiàn)室內(nèi)行人的實時定位,本文提出了一種基于EKF的WiFi/PDR融合定位算法。在WiFi定位的在線階段提出了一種自適應滑動窗口的指紋匹配方法,從而保證結(jié)果能快速收斂,提高了定位系統(tǒng)的計算性能。在融合定位階段,本文結(jié)合了EKF與PDR的系統(tǒng)特性來解決時間配準問題。結(jié)果表明,該系統(tǒng)在實際定位場景中具有較高的運行效果與穩(wěn)定性。然而,本文也存在一定的局限性,目前的實驗均采用了固定的行人手持終端姿態(tài),該情況不足以代表真實的應用場景。在未來的研究工作中,將設計更適用于當前軟硬件框架的定位方法,同時也會考慮復雜行人行走姿態(tài)對系統(tǒng)輸出結(jié)果所造成的影響。