胡先智 吳強 梁艷
摘 要:通過對典型WLAN定位方法的研究與分析,本文設計并實現(xiàn)了一種基于位置指紋的WLAN室內定位系統(tǒng)。同時,將NNSS、KWNN和基于概率密度三個經典WLAN定位算法應用于該系統(tǒng)中,進行了實際測試和分析,結果表明,本文所實現(xiàn)的系統(tǒng)具有很好的可靠性和實用性。
關鍵詞:WLAN;室內定位;RSSI;位置指紋
中圖分類號:TN929.5
1 前言
基于位置的服務(LBS)越來越受到人們的關注,越來越多的定位直接利用現(xiàn)成的無線通訊模塊來估計對象節(jié)點的位置,應運而生的WLAN定位技術以低成本、低功耗成為室內定位的主要方法之一。
2 基于WLAN的定位算法
基于WLAN的定位算法主要有到達角度定位(Angle 0f Arrival,AOA)、到達時間定位(Time Of Arrival,TOA)、信號強度分析法(Received Signal Strength,RSS)以及位置指紋定位法(Location Fingerprint)。AOA和TOA需要專門的設備支持,而且受非視距以及多徑影響比較嚴重;RSS對信道傳輸模型的依賴性非常強,多徑效應、墻壁的遮擋以及環(huán)境條件的變化都會使其精度嚴重惡化。采用位置指紋定位技術則可以有效地克服以上定位算法的缺點?;谖恢弥讣y的定位方法主要包括兩個階段:(1)構建指紋圖(Radio Map);(2)定位階段。
3 基于位置指紋的WLAN定位的實現(xiàn)方法
3.1 定位網絡構建
基于位置指紋的WLAN系統(tǒng)的實現(xiàn),首先需要搭建一個室內無線局域網環(huán)境,使每個可能出現(xiàn)移動用戶的位置被三個或三個以上AP信號覆蓋。在初始情況下,根據經驗和推測將AP放置在適當位置,保持一定的發(fā)射功率,然后選取一些關鍵點進行測量,如果發(fā)現(xiàn)盲區(qū),則調整AP的位置,或者提高AP的發(fā)射功率,再進一步測量,直至可能出現(xiàn)移動用戶的位置沒有盲區(qū)為止 。定位網絡系統(tǒng)由多個AP、多個移動客戶端和一個定位服務器組成。移動客戶端通過網卡獲取其到各個AP的RSSI,并發(fā)送到定位服務器進行處理。
3.2 RSSI采樣
參照室內平面圖選擇適當?shù)牟蓸狱c,在各個采樣點多次測量和記錄相應AP的RSSI值,并根據采樣數(shù)據分析環(huán)境的無線信道情況。由于實驗是構建環(huán)境RadioMap,因此必須采集盡可能多的數(shù)據。這就要求從多角度、多方面在同一采樣點測量多次。
3.3 計算RadioMap
RadioMap是元組(ap,x,y,s)的集合,其中ap是某個特定的AP,(x,y)是每個采樣點的平面坐標,s是(x,y)處ap的RSSI特征量,它被用作定位匹配算法的參考,直接影響定位精度,因此要求其中必須包含盡可能多的元組,而這些元組可以通過經驗值法全部采樣得到,也可以通過數(shù)學模型計算得到。
3.4 定位階段(OnLine階段)
當建立完RadioMap后,就可以運用相應的定位匹配算法,把實時測量的RSSI特征值和RadioMap中的位置指紋進行比較,找出最佳匹配,獲得最佳定位效果。
4 定位算法
目前,在位置指紋定位算法中,典型的定位算法包括最近鄰算法NNSS、加權k近鄰KWNN和基于概率密度的方法。
4.1 最鄰近算法
NNSS(Nearest Neighors in Signal Space)有n個AP,m個采樣點。直接把RSSI平均值作為上述位置指紋,計算測量點的RSSI值和采樣點的RSSI值之間的歐幾里得距離,即假定第i個采樣點的對各AP信號強度元組為(si1,si2…sin)用戶當前位置測量得到的信號強度為(s1,s2……sn)。則測量點和第i個采樣點的RSSI歐幾里得距離為disi,i從1到m中,取dis最小的值所對應的采樣點的位置為測量點的估計值。
4.2 加權K鄰近算法(KWNN)
需要注意選擇恰當?shù)膋值。因為如果k選取太大,則會將離用戶實際位置并不是很近的點也包括進來,反而降低了定位精度。首先求測量點RSSI和各個采樣點RSSI間的歐幾里得距離,再取出k個歐幾里得距離最小時對應的k個位置,求出該k個位置坐標的平均值作為該測量點的位置:
但直接求k個坐標的平均值作為測量點位置并不是很合適,應該距離越近的位置權值越大。根據該理論權值計算方法如下:
上述公式中k和q為兩個參數(shù),本系統(tǒng)中q被設為2。由此得出測量點坐標估計值為:
4.3 基于概率密度的定位算法(ProbabilityMethod)
在該定位方法中,一個采樣點1處的位置指紋是RSSI值在該采樣點上對各個AP的聯(lián)合的概率密度。由于各個AP獨立,因此聯(lián)合概率可由各AP的邊緣概率求得:
上式中 表示在l處AP1的RSSI為S1、AP2的RSSI為S2...APn的RSSI為Sn的聯(lián)合概率密度, 表示在i處APi的RSSI為Si發(fā)生的邊緣概率密度。
假設AP的所有RSSI樣本都屬于區(qū)間[min,max],其中min和max是RSSI樣本的最小值和最大值。該區(qū)間被劃分成k個子區(qū)間,k是一個可調參數(shù),影響著對概率密度估計的準確性。為了簡化問題,把k個子區(qū)間設為等寬,每個子區(qū)間寬度w為:
而子區(qū)間的樣本數(shù)量n的計算方法如下:
如圖1所示,Si、Si+1、...、Si+j+1、Si+j+2都為RSSI樣本,子區(qū)間寬度為w,由w1、w2、w3三部分組成,w1、w3為小數(shù)部分,w2為整數(shù)部分。
用上述直方圖法求可求出采樣點對各個AP的邊緣概率密度進而求出各采樣點的聯(lián)合概率密度。在算法實現(xiàn)中為避免概率為0,在用直方圖估計概率密度前給每個值設為1/N。測量點估計坐標為:
5 基于WLAN的定位系統(tǒng)實現(xiàn)
本系統(tǒng)的定位數(shù)據處理過程中,客戶端核心工作是獲取RSSI和發(fā)送RSSI,而服務器端的核心工作是接收RSSI,通過分析RSSI數(shù)據,計算并且形成RadioMap,最后通過定位計算,將位置呈現(xiàn)給用戶。
5.1 系統(tǒng)服務器端
系統(tǒng)服務器端劃分成如下。
實時定位模塊:用戶可以選擇定位算法,接收來自數(shù)據采集的OnLine數(shù)據并根據用戶選擇的定位算法進行定位計算,然后將計算出的位置結果呈現(xiàn)給用戶。
數(shù)據采集模塊:負責與客戶端的服務器通信模塊進行通信,從客戶端接收并解析RSSI數(shù)據包,將OnLine數(shù)據分發(fā)到實時定位模塊,OffLine存入RSSI數(shù)據庫,以便數(shù)據分析模塊進行分析。
數(shù)據分析模塊:分析數(shù)據采集模塊得到的OffLine數(shù)據,計算RadioMap并用圖表形式向用戶呈現(xiàn)結果。
設備管理模塊:負責AP以及移動終端的管理。
系統(tǒng)配置模塊:用戶可以配置數(shù)據庫,SuperMap服務器,以及數(shù)據此采集模塊的通信端口等。
5.2 系統(tǒng)客戶端
系統(tǒng)客戶端分為如下四個模塊。讀取RSSI模塊:負責從網卡中讀取RSSI值;服務器通信模塊:負責和服務器進行通信,發(fā)送RSSI數(shù)據,解析服務器的發(fā)給客戶端的配置信息。配置信息將影響讀取RSSI模塊的采集行為;客戶端配置模塊:讀取本地配置文件;本地存取RSSI模塊:當服務器通信模塊發(fā)送RSSI數(shù)據失敗時,負責將發(fā)送失敗的RSSI數(shù)據存入本地文件中,以便后期處理。
6 實驗結果與分析
本系統(tǒng)構建的定位區(qū)域為750cm*780cm的室內環(huán)境,為減少復雜環(huán)境對定位效果的影響,把每次數(shù)據采集布置成一個任務,每個任務對應一個位置指紋。定位所采用的指紋庫是在上述定位環(huán)境內的13個采樣點的指紋組成,共6個待測位置進行了定位實驗。每個采樣點采樣次數(shù)為100次,采樣周期為300ms,每個待測位置采集定位數(shù)據500-600次共3400次。
用三種定位算法進行定位,當取K=5時,三種算法的誤差比較如圖2所示。
從圖中可以看出:基于概率密度的誤差較小,NNSS的誤差最大,KWNN次之。在位置6處的誤差比其他位置處的誤差要大一些,原因是該點處距離每一個AP的距離都比較遠,因此誤差較大。
7 結束語
本文通過研究與分析典型的WLAN定位方法,設計與實現(xiàn)了一個WLAN定位系統(tǒng)。系統(tǒng)采用NNSS、KWNN和基于概率密度三種定位算法,并在實際環(huán)境中進行了測試,結果表明本文系統(tǒng)具有較高的定位準確性。