張殿臣,魏國亮,田 昕,朱凱群
1(上海理工大學 光電信息與計算機工程學院,上海 200093)2(上海理工大學 理學院,上海 200093)
基于無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSN)的室內(nèi)定位系統(tǒng)已經(jīng)在很多領(lǐng)域得到了廣泛應(yīng)用,如工廠倉庫的工人和設(shè)備的監(jiān)測,博物館或購物中心的導游服務(wù)以及醫(yī)院的患者定位等.實用的定位技術(shù)主要基于以下幾種方式:到達時間(Time of Arrival,ToA)[1],達到時間差(Time Difference of Arrival,TDoA)[2],到達角(Angle of Arrival,AoA)[3]以及接收信號強度指示器(Received Signal Strength Indication,RSSI)[4-6].基于ToA、TDoA和AoA的定位方式需要額外的硬件設(shè)備,增加了成本[7].而基于RSSI的定位方式是一種簡單且廉價的定位技術(shù),更適合在WSN中使用.
基于RSSI的定位方法通常分為指紋識別[6,8,9]和基于信道模型[5,10-12]兩種.基于信道模型的定位方法需要準確的信道模型以獲得高精度的定位結(jié)果.然而,由于室內(nèi)環(huán)境的動態(tài)特性,信號強度的衰減會發(fā)生很大變化,很難獲得適用于所有情況的通用信道模型.
可以通過融合不同傳感器信息的方法提升基于信道模型RSSI定位系統(tǒng)的定位性能.常用的慣性傳感器價格低廉且不需要額外基礎(chǔ)設(shè)施,特別是慣性傳感器中隱含的姿態(tài)信息可以用來計算人體運動參數(shù),然后借助于行人航位推算算法(Pedestrian Dead Reckoning,PDR)追蹤行人的位置.文獻[11,13,14]建議通過數(shù)據(jù)融合技術(shù)將其與RSSI系統(tǒng)融合.由于該系統(tǒng)的非線性特點,一般采用非線性濾波器,如擴展卡爾曼濾波器(extended Kalman filter,EKF)[15]、無跡卡爾曼濾波器(unscented Kalman filter,UKF)[16]和粒子濾波器(particle filter,PF)[17]來做數(shù)據(jù)融合.由于PF在高度非線性環(huán)境中具有更好的濾波性能和處理非高斯噪聲影響的測量系統(tǒng)的能力,因此在定位系統(tǒng)中得到了廣泛應(yīng)用.然而,PF也存在不足之處,即粒子的多樣性損失導致估計誤差的增加,且單純的融合定位系統(tǒng)也沒有解決非視距(Non-Line-of-Sight,NLOS)環(huán)境下定位誤差較大的問題.NLOS通常是由障礙物或墻壁遮擋通信信道引起的,在室內(nèi)或建筑物內(nèi),環(huán)境更加復雜,更容易產(chǎn)生NLOS的情況.因此,如何在NLOS的影響下進行精確的室內(nèi)定位成為了亟需解決的問題.本文采用PF來融合從RSSI和PDR獲得的位置信息.為了防止粒子多樣性的退化問題,在重采樣階段將其中一些粒子加入隨機量,使權(quán)值無法聚集在少數(shù)乃至一個粒子上,提升了定位精度.而且,我們利用PF融合之后得到的位置信息,以迭代的形式持續(xù)更新信道模型的參數(shù),實時模擬動態(tài)通信信道,使我們的定位系統(tǒng)在NLOS的環(huán)境下,依然可以精確的定位.
本文的貢獻可以歸納為:1)在PF的重采樣階段,通過將其中一些粒子添加隨機量的方式,使PF不會因粒子耗盡而陷入局部最優(yōu),引起定位誤差的增大;2)在NLOS環(huán)境中實時跟蹤信道模型中的路徑損耗因子,進而獲得NLOS下的信道模型,使系統(tǒng)在NLOS環(huán)境中仍可進行精確定位;3)在視距(Line-of-Sight,LOS)環(huán)境中,通過設(shè)定閾值的方式,減少因噪聲引起路徑損耗因子的波動問題.
本文通過粒子濾波將RSSI定位系統(tǒng)與行人航位推算(PDR)系統(tǒng)相結(jié)合,實現(xiàn)精確的室內(nèi)定位.
RSSI定位系統(tǒng)包含布置在已知位置的參考節(jié)點、由要定位的人或?qū)ο髷y帶的移動節(jié)點以及負責上位機與移動節(jié)點通信的無線傳感器網(wǎng)關(guān).考慮了一個動態(tài)的室內(nèi)環(huán)境,即信號的傳輸是在非視距(NLOS)條件下,移動節(jié)點測量每個參考節(jié)點的RSSI值,并通過網(wǎng)關(guān)將數(shù)據(jù)上傳.
PDR系統(tǒng)通過采集慣導模塊的加速度信息進行行人的步數(shù)檢測與步長估計,再利用電子羅盤來獲得行人的方向.PDR算法的實現(xiàn)可能會受慣導模塊安裝位置的影響,在本文中,采用了腳部安裝傳感器的方式.
考慮式(1)中的基于無線通信的對數(shù)距離路徑損耗模型[18]:
(1)
其中:η為路徑損耗指數(shù),表示路徑損耗隨距離增長的速率;d0為近地參考距離(一般為1m);d為T-R(Transmitter-Receiver)距離;P(d)和P(d0)分別代表當距離為d和d0時的接收信號強度,dBm表示分貝毫瓦.
根據(jù)公式(1)可以推導出發(fā)射器(參考節(jié)點)與接收器(移動節(jié)點)之間的距離d,如式(2)所示:
(2)
式(2)中路徑損耗因子η會受周圍環(huán)境的影響而呈現(xiàn)不同的數(shù)值,因此在利用式(2)估計距離d之前,需要通過大量的實驗來校準η.但在NLOS環(huán)境中,如建筑物內(nèi)的分隔和阻擋物,使通信信道發(fā)生改變,此時很難估計出固定的η值,因此,為了進行精確定位,實時更新η變得非常重要.

(3)
根據(jù)(3)式,當參考節(jié)點i≠1時,將其與參考點(i=1) 相減,則得到:

(4)
將式(4)寫成式(5)所示的矩陣形式:
HX=b
(5)
其中:z*表示行人的高度,且為定值,

該等式的最小二乘解為:
X=(HTH)-1HTb
(6)
行人航跡推算(Pedestrian Dead Reckoning,PDR)是基于當前確定的位置,利用方位角和步長推算下一時刻行人位置的定位算法.通過使用慣導模塊的加速度計判斷是否發(fā)生走步行為,利用電子羅盤獲得方位角,再乘以步長即可計算出行人的位置信息:
(7)
其中:xt、yt為t時刻行人在X和Y坐標系下的坐標,SLt為t時刻的步長,θt為t時刻行人的航向角.
為了確定是否發(fā)生步行行為,采用峰值檢測的方法[19].首先定義一個峰值檢測的參數(shù),然而在實驗中發(fā)現(xiàn),由于個人行走的習慣及噪聲的影響,檢測到的步數(shù)通常高于實際步數(shù),如圖1所示.因此我們定義了一個峰值之間的間隔ΔTn,如果在ΔTn內(nèi)出現(xiàn)多個峰值, 則將第一個峰值作為行人的一步并將峰值大小作為后續(xù)的步長估計值,并忽略ΔTn時間內(nèi)的其他峰值.因為常人的步頻通常不超過3Hz,而本文中采用的是單腳綁定慣導模塊的方式,即通常的兩步為本方案的一步,所以將ΔTn設(shè)為0.6s.

圖1 基于峰值檢測的步數(shù)計算Fig.1 Step calculation based on peak detection
步長可以設(shè)成一個固定值,也可以通過加速度信號進行計算,本文應(yīng)用文獻[20]中的經(jīng)驗公式,利用z軸的加速度信息對步長進行估計:
SL=K×(Amax-Amin)(1/4)
(8)
其中:Amax和Amin是在單步中的最大和最小垂直加速度,K是常數(shù),可通過步行訓練得到.
由于PDR系統(tǒng)模型具有明顯的非線性特點,而粒子濾波算法源于蒙特卡羅思想,可以處理非線性和非高斯的估計問題,因此粒子濾波更適合用于集成PDR和RSSI定位系統(tǒng).
2.3.1 初始化

2.3.2 粒子更新
在本文中,將PDR算法獲得的行人位置作為狀態(tài)量,將RSSI定位系統(tǒng)獲得的行人位置作為觀測量.首先將初始化的粒子帶入到式(7)中進行更新,為了驗證粒子的合理性,需要將各粒子與觀測量進行對比,即將各粒子所代表的可能行人位置信息與由式(6)求出的觀測位置信息進行比較,越接近觀測量的粒子所獲得的權(quán)重越大,反之則越小.假設(shè)由式(6)求出的行人位置為(a,b),則粒子的權(quán)重如式(9)所示:
(9)
其中:k與M為常數(shù),且M足夠大.將權(quán)值進行歸一化處理:
(10)
2.3.3 行人位置確定
根據(jù)上述更新粒子的位置信息,以及各粒子的權(quán)重,通過加權(quán)和的方式求出行人的位置信息:
(11)
2.3.4 改進的重要性重采樣
傳統(tǒng)的粒子濾波采用序貫重要性采樣的方法,該方法會產(chǎn)生粒子的退化問題,為了避免這種情況,本文采用了重要性重采樣(Sampling Importance Resampling,SIR)的方法,忽略權(quán)重低的粒子,復制權(quán)重高的粒子.但這種重采樣的方式又會出現(xiàn)另一種極限情況,即粒子集中只包含一種粒子及其復制,引起嚴重的粒子耗盡問題.
針對這種情況,在重采樣之后,對其中一些粒子的位置信息加入隨機量,改進粒子容易陷入局部最優(yōu)的缺點,并且加入隨機量的粒子會在更新時獲得相應(yīng)的權(quán)重,不會對定位結(jié)果造成較大的影響.
綜合以上內(nèi)容,可得到基于改進的粒子濾波的室內(nèi)定位算法,如算法1所示.
算法1.基于改進的粒子濾波室內(nèi)定位算法
初始化:

循環(huán):
if 檢測到行人的一步步行行為,方向為θt
1.根據(jù)式(7)更新各粒子
2.根據(jù)式(9)計算各粒子的權(quán)重,并由式(10)進行歸一化處理
3.根據(jù)式(11)確定行人位置
4.執(zhí)行改進的重要性重采樣
5.t=t+1
End if
2.3.5 NLOS處理
當兩個節(jié)點之間存在障礙物時,使得兩個節(jié)點之間的通信信號出現(xiàn)反射、衍射或繞射等情況的現(xiàn)象,稱為非視距(NLOS)傳播.由于室內(nèi)環(huán)境復雜,障礙物較多,很容易產(chǎn)生NLOS現(xiàn)象,并且NLOS誤差會隨著環(huán)境改變.在RSSI的定位系統(tǒng)中,當環(huán)境發(fā)生變化時,路徑損耗模型中的路徑損耗因子η會隨環(huán)境改變,而η值對定位精度又有很大的影響.為了實時獲取在不同環(huán)境下的η值,使定位更加準確,利用上文中的算法1獲得的融合之后的位置信息以迭代的形式來動態(tài)的更新η.根據(jù)式(1)可以推導出η的以下形式:
(12)

算法2.NLOS環(huán)境下的粒子濾波融合算法
初始化:

循環(huán):
if 檢測到行人的一步步行行為,方向為θt
1. 應(yīng)用算法1計算出行人的位置信息
2. 將位置信息代入式獲得更新后的ηnew
3. if |ηnew-η|>T
用ηnew替換掉式(2)中的η
4. endif
5.t=t+1
end if
為了驗證定位系統(tǒng)的性能,模擬了一個室內(nèi)定位的場景.在模擬中,假設(shè)在一個以原點為中心的100×100的房間內(nèi),在固定的地點分布有8個參考節(jié)點,行人帶有移動節(jié)點和慣性導航模塊在8個參考節(jié)點的覆蓋范圍內(nèi),從(30,-30)點直線運動到(30,30)點,逆時針旋轉(zhuǎn)90度后直線運動到(-30,30)處.PDR系統(tǒng)中步長設(shè)為0.7m,共走了173步,角度噪聲設(shè)為Na~(0,π/50).RSSI定位系統(tǒng)中P(d0)設(shè)為-45dBm,接收信號強度的噪聲設(shè)為Np~(0,π/50).粒子濾波中粒子數(shù)N為100,路徑損耗因子更新閾值T為0.05.
為了證明在噪聲的影響下,提出的方法與單純使用粒子濾波進行定位的方式有同等的定位性能,進行如下實驗.根據(jù)第二節(jié)可知,環(huán)境變化時,路徑損耗因子η會隨環(huán)境改變,為了模擬LOS環(huán)境,可將路徑損耗因子η設(shè)為固定值2.因為RSSI值受噪聲的影響,估計的路徑損耗因子η也會發(fā)生波動,增加定位誤差,所以需要設(shè)置閾值T,減小噪聲對算法在LOS環(huán)境下的影響.由圖2可知,在LOS環(huán)境下,沒有設(shè)置閾值時,路徑損耗因子η的波動范圍大多在±0.05范圍內(nèi),因此將T設(shè)為0.05.

圖2 無閾值T時的路徑損耗因子的誤差Fig.2 Error of path loss exponent without threshold T
由圖3可知,估計的路徑損耗因子η基本保持不變,說明在噪聲影響下的路徑損耗因子η的大小一般不超過閾值T.圖4顯示了算法2和改進的PF方法以及RSSI定位的誤差,從中可看出算法2與改進的PF方法的定位誤差基本一致,且最大誤差均在1.6m以下,而RSSI的最大定位誤差達到了8.5m.由圖3和圖4兩個圖形結(jié)果的分析可知,在LOS環(huán)境以及噪聲的影響下,路徑損耗因子η不會隨著噪聲波動,因此,系統(tǒng)依然有很好的定位性能.

圖3 估計的路徑損耗因子Fig.3 Estimated path loss exponent
上文已經(jīng)證明提出的兩種方法在LOS環(huán)境下具有很好的定位性能,但主要目的是為了處理在NLOS環(huán)境下的定位問題.具體為,在NLOS環(huán)境中實時估計和更新路徑損耗因子η,動態(tài)校準信道模型,以減小NLOS的影響,這是基于RSSI的定位系統(tǒng)及其混合定位系統(tǒng)所不具備的,也是算法2具備高定位精度的原因.
因為系統(tǒng)需要跟蹤路徑損耗因子η的值,而路徑損耗因子η可能會在兩種環(huán)境下發(fā)生改變:1)因為室內(nèi)溫度、濕度等的緩慢變化,導致路徑損耗因子η的緩慢變化;2)當參考節(jié)點被障礙物或墻壁遮擋,導致路徑損耗因子η從一個值突然跳變到另一個值.以下試驗將模擬以上兩種情況,證明系統(tǒng)在上述兩種情況下依然具有很好的定位性能.

圖4 三種定位方式的定位誤差比較Fig.4 Comparison of positioning errors of three positioning methods
3.2.1 路徑損耗因子η緩慢變化
在此模擬中,將真實的路徑損耗因子η從2緩慢增長到2.34.由圖5可知,在閾值T內(nèi)估計的路徑損耗因子ηnew不變,在閾值T之后估計的路徑損耗因子ηnew在真實路徑損耗因子η附近波動,而且誤差都在±0.08內(nèi),證明估計的路徑損耗因子ηnew很準確.且由圖6可以看出,系統(tǒng)在路徑損耗因子η緩慢變化時仍具有很好的定位性能,最大誤差在2m左右,而未經(jīng)算法2處理的PF定位方式,最大誤差達到了13.8m,RSSI定位系統(tǒng)的誤差更是呈指數(shù)性增長,這是由信道損耗模型所決定的.由這些結(jié)果可知,算法2的NLOS處理方法能充分利用PDR和RSSI系統(tǒng)的融合結(jié)果,在路徑損耗因子η緩慢變化時仍然具有較好的定位性能.

圖5 估計的路徑損耗因子η與真實路徑損耗因子η比較Fig.5 Comparison of estimated path loss exponent and the real path loss exponent
3.2.2 路徑損耗因子η突然變化
在此模擬中,當行人走到第86步時,路徑損耗因子η從2突變到2.4.由圖7可知,估計的路徑損耗因子ηnew的誤差均在±0.05內(nèi),說明算法2可以快速的跟蹤真實的路徑損耗因子η的變化.特別是在圖8中可以明顯地看到,在第86步之后,未經(jīng)過算法2處理的PF定位系統(tǒng)的定位誤差明顯增加,達到了8.9m,而算法2處理之后的定位方法,定位誤差在此前后沒有明顯變化,均在2m以下.這說明在路徑損耗因子η突然改變時算法2仍然具備穩(wěn)定的定位性能,而未經(jīng)算法2處理的RSSI和PF方法定位誤差非常大,無法達到良好的定位效果.

圖6 路徑損耗因子η緩慢變化時的三種定位方式的定位誤差比較Fig.6 Comparison of positioning errors of three positioning modes with the slowly changing path loss exponent η

圖7 估計的路徑損耗因子η與真實路徑損耗因子η比較Fig.7 Comparison of estimated path loss exponent η and the real path loss exponent η

圖8 路徑損耗因子η突然改變時的三種定位方式的定位誤差比較Fig.8 Comparison of positioning errors of three positioning modes when the real path loss exponent η is suddenly changed
3.2.3 不同比例的隨機量粒子性能分析
本節(jié)測試了將不同比例的粒子加入隨機量對定位性能的影響.在上一小節(jié)中的路徑損耗因子η突然變化的模擬實驗的基礎(chǔ)上,分別對不同比例的粒子加入隨機量,將得到的估計位置與實際位置做均方根誤差分析.由圖9可以看出,當加入隨機量的粒子比例為30%時,均方根誤差最小,定位性能最好.

圖9 加入隨機擾動的粒子比例對定位精度的影響Fig.9 Effect of the proportion of randomly disturbed particles on the localization accuracy
為了驗證提出的定位算法的定位性能,自主搭建了融合PDR和RSSI的定位系統(tǒng)平臺(如圖10所示).該定位系統(tǒng)包括慣性導航模塊(MPU6050),電子羅盤(SCM225),無線數(shù)傳模塊(SP3232EEN)以及由TI公司生產(chǎn)的具有無線通信功能的CC2530芯片為主體的移動節(jié)點、參考節(jié)點和網(wǎng)關(guān).實驗中,慣導模塊和移動節(jié)點安裝在行人的腳部,參考節(jié)點置于房間的四個角,移動節(jié)點將采集到的參考節(jié)點的ID與RSSI值發(fā)送到網(wǎng)關(guān),網(wǎng)關(guān)再將數(shù)據(jù)發(fā)送給PC,慣導模塊通過無線數(shù)傳模塊將慣導數(shù)據(jù)發(fā)送到PC端,PC端使用LabVIEW程序處理數(shù)據(jù)實現(xiàn)對行人的實時定位.

圖10 室內(nèi)定位系統(tǒng)實驗圖Fig.10 Experiment diagram of indoor localization system
利用上述系統(tǒng)進行驗證,在一個9m×7m的房間內(nèi)的四個頂點布置參考節(jié)點,行人在此區(qū)域的一個8m×5m的長方形上順時針行走一圈,當行人走到一半的路程時,將其中一個參考節(jié)點通過添加阻擋物的方式,改變路徑損耗因子η的值,達到NLOS的效果.

圖11 兩種定位方式的誤差比較Fig.11 Comparison of errors between two localization methods
由圖11可知,算法2在NLOS環(huán)境下,由于動態(tài)更新路徑損耗因子η,使NLOS前后算法2的定位誤差沒有太大的變化,均在2.2m以下.從圖11中還可以看出,未經(jīng)算法2處理的PF融合定位方式的最大定位誤差達到了7.8m.這表明算法2能夠處理NLOS問題,且定位性能非常穩(wěn)定.
本文提出了一種能在NLOS環(huán)境下進行正常定位的混合室內(nèi)行人定位系統(tǒng),該系統(tǒng)通過粒子濾波器將基于RSSI的定位系統(tǒng)與PDR系統(tǒng)相結(jié)合.并對粒子濾波器進行了改進,使其不會發(fā)生樣本貧化的問題.針對以前方法中復雜且耗時的信道模型校準問題,提出了通過融合之后的結(jié)果迭代更新路徑損耗因子的形式,實時更新信道模型,使系統(tǒng)在NLOS的環(huán)境下,仍能進行準確定位.