馮 帆,吳 春,陳軍慧
(中電??导瘓F(tuán)有限公司,浙江 杭州 310012)
物聯(lián)網(wǎng)(Internet of Things,IOT)技術(shù)的發(fā)展,使得室內(nèi)定位技術(shù)獲得廣泛關(guān)注,而在室內(nèi)環(huán)境中,全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite System,GNSS)的定位信號微弱,不能用于室內(nèi)定位,由此衍生出GNSS之外的室內(nèi)定位技術(shù)。
對于室內(nèi)定位技術(shù),根據(jù)距離可將其分為測距法和非測距法,其中基于非測距法包括:質(zhì)心算法[1]、APIT算 法 (Approximate Point-in-triangulation Test)[2]、位置指紋匹配算法[3]等;基于測距的常用方法包括:三角定位算法,最小二乘定位算法,基于信號到達(dá)角度(Angle of Arrival,AoA)[4]、信號達(dá)到時(shí)間(Time of Arrival,ToA)[5]、信號到達(dá)時(shí)間差(Time Difference of Arrival,TDoA)[6]、信號強(qiáng)度RSSI(Received Signal Strength Indicator)的定位[7]算法等。
由于基于測距的定位精度一般要比基于非測距的定位精度高,實(shí)際應(yīng)用往往采用基于測距的定位算法??紤]到基于RSSI測距無需精確的時(shí)間同步和角度測量,也不需要增加額外設(shè)備,功耗成本低且實(shí)施簡單,更加適用于室內(nèi)定位系統(tǒng),所以本文采取基于RSSI的定位技術(shù)來預(yù)估室內(nèi)待測節(jié)點(diǎn)的位置,同時(shí)結(jié)合粒子濾波與卡爾曼濾波,來提高定位精度。
本文基于RSSI定位模型的流程圖如圖1所示。
圖1 RSSI定位算法流程圖Fig.1 Algorithm flow chart of RSSI localization
在利用RSSI進(jìn)行定位之前,首先需要建立基于RSSI測距的模型,即信號強(qiáng)度RSSI和距離d的關(guān)系。
理論上,無線信號和距離存在一定關(guān)系。若在已知發(fā)射節(jié)點(diǎn)和接收節(jié)點(diǎn)功率的情況下,可根據(jù)理論或經(jīng)驗(yàn)傳播模型把傳播損耗轉(zhuǎn)換為距離。傳統(tǒng)的無線信號傳播衰減模型為[8]:
其中:RSSI(d)表示距離發(fā)射節(jié)點(diǎn)為d的接收節(jié)點(diǎn)接收到的信號強(qiáng)度;α表示信號傳播過程中的損耗因子;ζσ表示標(biāo)準(zhǔn)差為σ的服從正態(tài)分布的隨機(jī)量。一般情況下,為簡化模型,令d0=0,即距離為1m時(shí)的信號強(qiáng)度,且不考慮影響較小的ζσ,則簡化后的模型為:
根據(jù)簡化后的信號衰減模型,對測量的RSSI和d進(jìn)行對數(shù)擬合,得到常系數(shù)A=RSSI(1)和α,從而就可確定RSSI和d的關(guān)系。
基于RSSI測距的模型,就可以在已知RSSI的情況下,根據(jù):
計(jì)算得出標(biāo)簽與信標(biāo)的距離,從而就能夠?qū)?biāo)簽進(jìn)行定位。
對于處于靜止?fàn)顟B(tài)的標(biāo)簽,對標(biāo)簽接收到的RSSI做高斯濾波處理;而對于移動(dòng)狀態(tài)下的標(biāo)簽,標(biāo)簽位置會發(fā)生變化,標(biāo)簽接收到的RSSI也不是同一位置的值。如果對移動(dòng)標(biāo)簽接收到的RSSI采用常用的濾波方法,如:均值濾波、中值濾波、高斯濾波處理等,得到的結(jié)果并不具有參考價(jià)值。標(biāo)簽在移動(dòng)時(shí),由于當(dāng)前位置和前一位置存在某種關(guān)系,采用速度常量濾波[9]處理標(biāo)簽在某一時(shí)間段內(nèi)接收到的RSSI值,并利用濾波后的值對標(biāo)簽進(jìn)行位置預(yù)估。
對于某個(gè)標(biāo)簽接收到的所有RSSI數(shù)據(jù){ri}in=1,采用速度常量濾波進(jìn)行處理,該濾波過程有兩個(gè)階段:
其中:riprev為i時(shí)刻RSSI的測量值,ripred為i時(shí)刻RSSI的預(yù)測值,riest為i時(shí)刻RSSI的預(yù)估值,vipred為i時(shí)刻RSSI變化率的預(yù)測值,viest為i時(shí)刻RSSI變化率的預(yù)估值;a,b為增益值,為采樣時(shí)間間隔。
結(jié)合粒子濾波(Particle Filter,PF)用于目標(biāo)追蹤的思想,將粒子濾波用于室內(nèi)移動(dòng)標(biāo)簽定位,以標(biāo)簽的位置坐標(biāo)為狀態(tài)值,接收到的RSSI值為觀測值,其具體過程如下:
(1)初始狀態(tài):根據(jù)初始位置估計(jì),對初始位置增加隨機(jī)擾動(dòng),得到粒子的初始位置;
(2)預(yù)測階段:根據(jù)標(biāo)簽移動(dòng)規(guī)則以及粒子前一位置信息,預(yù)測粒子當(dāng)前的位置;
(3)校正階段:對每個(gè)粒子的預(yù)測位置進(jìn)行評估,越接近于實(shí)際觀測值的粒子權(quán)重越大;
(4)重采樣:根據(jù)粒子權(quán)重對粒子進(jìn)行篩選,篩選過程中,既要大量保留權(quán)重大的粒子,又要有一小部分權(quán)重小的粒子;
(5)濾波:將重采樣后的粒子作為新的粒子,并取其位置均值作為當(dāng)前預(yù)估位置,轉(zhuǎn)步驟2。
考慮到標(biāo)簽在移動(dòng)過程中前一位置和后一位置之間存在線性關(guān)系,采用線性卡爾曼濾波(Kalman Filter,KF)對粒子濾波的結(jié)果進(jìn)行優(yōu)化。以標(biāo)簽位置坐標(biāo)和速度為狀態(tài)值,以粒子濾波預(yù)估位置為觀測值,則卡爾曼濾波的迭代方程為:
其中,Xk=(xk,yk,vxk,vyk)為k時(shí)刻的狀態(tài)值,表示k時(shí)刻的預(yù)估位置和預(yù)估速度;
測試環(huán)境為某個(gè)辦公室,標(biāo)簽置于高度約2.5m的天花板,測試人員佩戴標(biāo)簽在室內(nèi)移動(dòng)。設(shè)置標(biāo)簽發(fā)包頻率為1s/3次,移動(dòng)狀態(tài)下的標(biāo)簽每2s計(jì)算一次位置。
考慮到測試人員佩戴標(biāo)簽在移動(dòng)的過程中會出現(xiàn)面對信標(biāo)、背對信標(biāo)、側(cè)對信標(biāo)等各種情況,在測量RSSI和距離關(guān)系的時(shí)候,分別采集了測試人員在面對和背對信標(biāo)的兩種情況下接收到的RSSI值。
由于RSSI值浮動(dòng)較大,在每種情況下的每個(gè)位置均采集了2min的數(shù)據(jù)。對于采集的2min數(shù)據(jù),采用高斯濾波處理方式得到當(dāng)前位置所對應(yīng)的RSSI,最后將面對和背對情況下處理后的RSSI值取均值,結(jié)果見表1。
表1 RSSI以及對應(yīng)的距離dTable 1 RSSI and its corresponding distance d
根據(jù)RSSI和距離d的關(guān)系:
可知,RSSI和距離d的對數(shù)成線性關(guān)系。因此,對RSSI和log10d做線性擬合,擬合參數(shù)見表2。
表2 線性擬合參數(shù)Table 2 Parameters of linear fitting
從而得到A=-57.51α=2.24。將系數(shù)重新代回式(7),得到RSSI和距離的關(guān)系式,其擬合曲線如圖2所示。
圖2 RSSI和距離擬合曲線Fig.2 Fitting curve of RSSI and distance
在獲得RSSI和距離的關(guān)系之后,開始測試預(yù)估標(biāo)簽在不同狀態(tài)(靜止和移動(dòng))下的室內(nèi)位置。測試環(huán)境主要在辦公室四樓,安裝在辦公室的信標(biāo)的位置示意如圖3所示,各個(gè)信標(biāo)的坐標(biāo)見表3。
圖3 信標(biāo)安裝位置示意圖Fig.3 Position schematic diagram of installed beacons
表3 信標(biāo)坐標(biāo)Table 3 Positions of beacons
2.2.1 靜止標(biāo)簽定位
將標(biāo)簽置于某工位上,收集信標(biāo)發(fā)出的信號一定時(shí)間后,對該段時(shí)間內(nèi)收集到的RSSI做高斯濾波處理,然后采用本文提出的濾波算法進(jìn)行位置預(yù)估,得到的預(yù)估結(jié)果如圖4所示。
在圖4中,實(shí)心五角星點(diǎn)為標(biāo)簽真實(shí)位置,空心五角星為該段時(shí)間內(nèi)預(yù)估的標(biāo)簽位置。以標(biāo)簽真實(shí)位置為圓心,分別作半徑為3m,4m和5m的圓,可以發(fā)現(xiàn)采用本算法預(yù)估的標(biāo)簽位置基本均在4m圓的范圍內(nèi),大多數(shù)落在2m圈內(nèi)。將標(biāo)簽固定在某一位置進(jìn)行多次測試,分別計(jì)算預(yù)估位置落在2m圈、3m圈、4m圈以及5m圈內(nèi)的概率;同時(shí),與傳統(tǒng)質(zhì)心法、丁恩杰等人[10]提出的基于距離的加權(quán)質(zhì)心算法的定位精度概率進(jìn)行了對比,結(jié)果見表4。
表4 不同算法的預(yù)估位置精度概率對比Table 4 Comparison of estimated position accuracy probability of different algorithms
圖4 靜止于某位置的標(biāo)簽定位結(jié)果圖Fig.4 Positioning results of a tag in a certain position
2.2.2 移動(dòng)標(biāo)簽定位
測試人員將標(biāo)簽以佩戴工作牌的方式佩戴在胸前,在布置信標(biāo)區(qū)域內(nèi)勻速運(yùn)動(dòng),測試結(jié)果如圖5所示。
圖5 待定位目標(biāo)移動(dòng)軌跡示意圖Fig.5 Moving track of a target to be localized
圖5中實(shí)心五角星表示本文算法預(yù)估的位置,從小標(biāo)號到大標(biāo)號為測試人員移動(dòng)方向,其中存在部分預(yù)估位置重合的情況,比如13和14,16和17,35和36等,出現(xiàn)這種情況是由于標(biāo)簽當(dāng)前接收到的RSSI信號較弱。測試結(jié)果顯示,預(yù)估的移動(dòng)軌跡與測試人員實(shí)際行走路徑一致,且滿足定位誤差要求。
本文研究了基于RSSI的室內(nèi)定位算法,首先采用粒子濾波預(yù)估標(biāo)簽位置,然后利用卡爾曼濾波對標(biāo)簽的預(yù)估位置進(jìn)行優(yōu)化。對于靜止?fàn)顟B(tài)下的標(biāo)簽,采用高斯濾波處理RSSI;對于移動(dòng)狀態(tài)的標(biāo)簽采用速度常量濾波處理,最后均采用以上方法進(jìn)行定位。
在室內(nèi)場景進(jìn)行實(shí)際測試,結(jié)果表明本文提出的定位方法能夠達(dá)到低于3m的定位精度的概率為99.5%,而且能夠?qū)崿F(xiàn)對移動(dòng)標(biāo)簽的實(shí)時(shí)定位。