摘 要: 為解決無法在室內(nèi)使用GPS的問題,設(shè)計并實現(xiàn)了基于常用手持設(shè)備(如手機(jī)、平板電腦)的室內(nèi)定位系統(tǒng)。系統(tǒng)融合了傳統(tǒng)的慣性定位方法和基于WiFi信號強(qiáng)度定位方法,易于搭建,僅需一個包含慣性傳感器、電子羅盤、WiFi掃描的手持設(shè)備。提出了慣性定位中的路徑匹配算法和WiFi信號定位方法中的位置估計算法。經(jīng)實際測試,系統(tǒng)定位精度小于4 m。
關(guān)鍵詞: 室內(nèi)定位;慣性定位;WiFi信號定位;路徑匹配
位置信息在人們的日常生活中扮演著重要的作用。目前全球定位系統(tǒng)GPS是獲取室外環(huán)境位置信息的最常用方式。但由于衛(wèi)星信號容易受到各種障礙物遮擋,使GPS衛(wèi)星定位技術(shù)并不適用于室內(nèi)或高樓林立的場合。目前無線室內(nèi)定位技術(shù)迅速發(fā)展,已成為GPS 的有力補(bǔ)充。
本文使用WiFi信號強(qiáng)度、電子羅盤和慣性(加速度)傳感器這三個信息來完成室內(nèi)定位。這三種信息可以輕易地從一個手持設(shè)備(如手機(jī)、平板電腦)上獲取。使用慣性傳感器和電子羅盤進(jìn)行的慣性定位最大的不足在于難以消除累積誤差,而現(xiàn)階段單純使用WiFi信號強(qiáng)度進(jìn)行定位則存在分辨率太低以及無法連續(xù)定位的缺陷。本系統(tǒng)則融合了慣性定位和以WiFi定位這兩種方法以彌補(bǔ)彼此的缺陷。
1 系統(tǒng)原理
系統(tǒng)原理如圖1所示。Open Street Map網(wǎng)站能提供類似于Google地圖的服務(wù),其最大特點在于允許用戶使用XML語言編輯地圖,并且生成大小與實際經(jīng)緯度成比例的PNG格式的地圖背景圖片[1]。本文使用Josm來編寫適用于該網(wǎng)站的XML文件并上傳,用戶可在遠(yuǎn)端通過手持設(shè)備從該網(wǎng)站上下載XML文件與PNG地圖背景。其中,XML文件包含地圖信息用于實際定位,PNG圖片用于界面顯示及用戶交互。在手持設(shè)備中,慣性傳感器可用來判斷用戶是否運(yùn)動,電子羅盤可獲取移動方向,通過這兩個信息以及用戶的步長便可實現(xiàn)慣性定位。系統(tǒng)中的WiFi信號用于獲取用戶當(dāng)前位置信息以及消除慣性定位中的累積誤差。
2 慣性定位
傳統(tǒng)的慣性定位系統(tǒng)通過目標(biāo)的初始位置、運(yùn)動方向以及運(yùn)動速度來實現(xiàn)目標(biāo)的定位[2]。在本文中初始位置通過WiFi信號獲得,運(yùn)動方向通過電子羅盤獲得,運(yùn)動速度通過用戶是否運(yùn)動以及運(yùn)動的步長來代替。其中步長由用戶的身高來估計,而用戶是否運(yùn)動則由慣性傳感器來獲取。
2.1 運(yùn)動檢測
手持設(shè)備中的慣性傳感器可分別檢測X、Y、Z方向上加速度的大小與持續(xù)時間。本文使用Z方向的數(shù)值來檢測運(yùn)動,因為其在用戶運(yùn)動時變化最顯著,其典型變化值如圖2所示。當(dāng)加速度峰值的持續(xù)時間、間隔時間以及峰值大小均達(dá)到一定數(shù)值時則可認(rèn)為用戶進(jìn)行了一次移動。通過合理設(shè)置這三個數(shù)值可消除抖動干擾。通過實驗發(fā)現(xiàn),間隔時間>333 ms、持續(xù)時間>165 ms、峰值大小>2 m/s2,較為接近實際情況。
2.2 路徑匹配算法
在獲取用戶的當(dāng)前位置以及目標(biāo)位置之后,系統(tǒng)通過從Open Street Map上下載的包含地圖信息的XML文件計算出最佳路徑,并在PNG格式的地圖背景圖片上繪制出最佳路徑。當(dāng)用戶沿著該最佳路徑移動時,系統(tǒng)使用路徑匹配算法將用戶的位置顯示在地圖背景圖片上,并通過判斷用戶是否移動來實時地更新顯示位置。
系統(tǒng)首先根據(jù)XML地圖信息文件、用戶的起始位置和選擇的終點位置以及用戶的步長來生成一個最佳路徑數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包含了用戶需要移動的期望步數(shù)和期望方向。當(dāng)用戶沿著最佳路徑移動時,系統(tǒng)通過電子羅盤和慣性傳感器獲取用戶實際的移動步數(shù)和方向,如圖3所示。根據(jù)實際經(jīng)驗,當(dāng)系統(tǒng)檢測到用戶移動且方向與最佳方向的夾角<40°時,則直接估算用戶位置并顯示到地圖背景上。但是由于用戶的步長是根據(jù)用戶的身高來估計的,這會導(dǎo)致用戶的實際步數(shù)和計算出來需要走的步數(shù)不一致。本文通過以下方法來解決此問題:當(dāng)連續(xù)檢測到多個步長的方向與期望步長方向不一致時,在最佳路徑數(shù)據(jù)結(jié)構(gòu)中向前搜索。若找到多段預(yù)期路徑,則選步數(shù)最長的期望路徑與檢測路徑匹配,此情況表明估計步長過小,期望步數(shù)多于實際步數(shù);若無法找到期望路徑,則放棄當(dāng)前的檢測路徑,此情況表明估計步長過大,實際步數(shù)多于期望步數(shù)。
3 基于WiFi信號定位
本文采用基于WiFi信號強(qiáng)度的“指紋”匹配定位方法來確定慣性定位導(dǎo)航的初始位置以及消除其累積誤差,此方法需要知道各WiFi接入點在地圖中參考節(jié)點的信號強(qiáng)度RSSI(Received Signal Strength Indicator),參考節(jié)點的選取決定了定位精度。實際中某一固定點的WiFi信號強(qiáng)度的概率分布接近于高斯分布,因此,可在參考節(jié)點多次測量信號強(qiáng)度并取平均來建立地圖的WiFi信號強(qiáng)度指紋庫[3-4]。
目前指紋匹配定位方法大多基于貝葉斯估計理論,根據(jù)選擇不同的似然函數(shù)來計算目標(biāo)位置的后驗概率,后驗概率最大的即為估計位置。這種方法精確度高,但是計算量大。而本系統(tǒng)所有的計算工作均需要在手持設(shè)備上完成,因此本文提出了一種兼顧精確度和計算量的定位算法,其偽碼描述如下:
n=0,Sum_L_P=0;
For Each APi:
For Each Lj:
If Object_APi_RSSI∈(Lj_APi_RSSI-σ,
Lj_APi_RSSI+σ);
n=n+1;
Lj_APi_Selected=True;
End If
End For;
For Each Lj:
If Lj_APi_Selected==True;
Sum_Lj_P=Sum_Lj_P+1/n;
End For;
n=0;
End For;
Return Max(Sum_L_P);
這里假設(shè)地圖上有m個WiFi信號源(AP),信號強(qiáng)度指紋庫有n個參考點。Object_APi_RSSI表示當(dāng)前位置第i(i=1,2,3…m)個信號源的信號強(qiáng)度,Lj_APi_RSSI表示第j(j=1,2,3…n)個參考點中第i個信號源的信號強(qiáng)度。對每個Object_APi_RSSI,在指紋庫中依次對比各參考點所對應(yīng)的信號源,若有n個參考點與Object_APi_RSSI的差值小于一個經(jīng)驗值σ,則將這些參考點的權(quán)值Lj_APi_P設(shè)為1/n。對所有信號源做如上處理后,選出累加權(quán)值Sum_Lj_P最大的參考點為估計位置。如有多個參考點權(quán)值一樣,則取這幾個點的平均為估計位置。
4 兩種方法的融合
本文在三個方面將慣性定位法和WiFi定位法進(jìn)行了融合:
?。?)基于WiFi信號的定位法的精確度反比于指紋庫中參考點的間隔距離,但是由于WiFi信號強(qiáng)度的類正態(tài)分布特性導(dǎo)致其精確度不能無限大。實際中參考點的間隔距離應(yīng)大于3 m,因此,單純地使用WiFi信號定位方法會給用戶視覺上認(rèn)為存在延時與不連續(xù),而慣性定位方法能根據(jù)慣性傳感器的移動檢測來實時更新用戶位置,同時WiFi信號定位法則為慣性定位法提供用戶的起始位置。
(2)慣性定位法需要知道用戶的步長,而此參數(shù)是靠用戶輸入身高來確定的。本文雖然在路徑匹配算法中對此進(jìn)行了補(bǔ)償,但是通過實驗發(fā)現(xiàn)當(dāng)用戶的行走距離超過50 m時,用戶位置和估計位置差會大于5 m。因此,當(dāng)系統(tǒng)檢測到用戶的位移超過50 m時,則自動調(diào)用WiFi定位法來估計用戶當(dāng)前位置,并將其作為新的起始位置重新啟動慣性導(dǎo)航。
(3)本文的路徑匹配算法的前提在于用戶需要按照系統(tǒng)給出的最佳路徑進(jìn)行移動,否則該算法無效。因此,在路徑匹配算法中連續(xù)出現(xiàn)20個檢測方向與期望方向不匹配時,則認(rèn)為用戶沒用按照最佳路徑移動,此時則啟動WiFi定位法來估計用戶當(dāng)前位置,并將其作為新的起始位置重新啟動慣性導(dǎo)航。
本文融合慣性定位法和WiFi定位法設(shè)計了一個的室內(nèi)定位系統(tǒng),提出了慣性定位方法中的路徑匹配算法和WiFi定位方法中的位置估計算法,內(nèi)部算法兼顧了定位的精確度和算法復(fù)雜性。該系統(tǒng)易于實現(xiàn),并在Android手機(jī)上實現(xiàn)了該系統(tǒng)。經(jīng)多次測試,系統(tǒng)的精確度小于4 m。
參考文獻(xiàn)
[1] 陳維克,李文鋒,首晰,等.基于RSSI的無線傳感器網(wǎng)絡(luò)加權(quán)質(zhì)心定位算法[J].武漢理工大學(xué)學(xué)報,2006(2):55-59.
[2] 韓霜,羅海勇,陳穎,等.基于TDOA的超聲波室內(nèi)定位系統(tǒng)的設(shè)計與實現(xiàn)[J].傳感技術(shù)學(xué)報,2010,23(3):347-353.
[3] 趙方,馬嚴(yán),羅海勇,等.基于核函數(shù)法及馬爾可夫鏈的節(jié)點定位技術(shù)[C].第三屆中國傳感器網(wǎng)絡(luò)學(xué)術(shù)會議,2009.
[4] 任維政,徐連明,鄧中亮,等.基于RSSI的測距差分修正定位算法[J].傳感技術(shù)學(xué)報,2008,21(7):1247-1250.