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