基于RSSI測距的室內(nèi)定位技術(shù)
摘要 搭建了基于ZigBee技術(shù)的室內(nèi)定位實驗平臺,以實驗室樓道為室內(nèi)場景進行了接收信號強度(RSSI)測距和定位實驗研究。首先對測距實驗采集到的數(shù)據(jù)使用線性回歸分析擬合出當(dāng)前環(huán)境的具體測距模型,并對信標(biāo)和未知節(jié)點進行軟件開發(fā),實現(xiàn)了基于RSSI的定位算法。經(jīng)過定位實驗精度評估,文中算法的平均定位誤差為2.3 m,滿足大多室內(nèi)場景要求。
關(guān)鍵詞 室內(nèi)定位;無線傳感器網(wǎng)絡(luò);RSSI測距;線性回歸分析
隨著現(xiàn)代通信、網(wǎng)絡(luò)、全球定位系統(tǒng)(Global PositionSystem,GPS)、普適計算、分布式信息處理等技術(shù)的迅速發(fā)展,位置感知計算和基于位置的服務(wù)(Location Based Setvices,LBS)在實際應(yīng)用中越來越重要。GPS是目前應(yīng)用最廣泛和成功的定位技術(shù)。由于微波易被濃密樹林、建筑物、金屬遮蓋物等吸收,因此GPS只適合在戶外使用,在室內(nèi)場合,由于信道環(huán)境復(fù)雜、微波信號衰減厲害、測量誤差大,GPS并不適用。近年來基于低成本、低功耗、白組織的無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)定位技術(shù)得到了科研人員的重視和研究,具有廣泛地應(yīng)用前景。根據(jù)定位過程中是否實際測量節(jié)點間的距離,可將定位算法分為基于測距(Range-based)的定位和距離無關(guān)(range-free)的定位?;跍y距的定位先由未知節(jié)點硬件接收外部信標(biāo)節(jié)點發(fā)射的無線信號并記錄下TOA(Time of Arrival)、AOA(Angle of Arrival)、TDOA(Time Difference of Arrival)、RSSI(Received Signal strength Indicator)等測距度量值,然后將測距度量值轉(zhuǎn)為未知節(jié)點到信標(biāo)節(jié)點的距離或方位,然后再采用相關(guān)算法如三邊測量法、三角測量法、極大似然估計法等來計算未知節(jié)點的位置。由于RSSI檢測設(shè)備和機制簡單,硬件成本低,實現(xiàn)簡單,可通過多次測量平均獲得較準(zhǔn)確的信號強度值,降低多徑和遮蔽效應(yīng)影響,因此基于RSSI測距的定位技術(shù)成為近年來室內(nèi)定位研究的熱點。
1 RSSI測距原理
無線信號傳輸中普遍采用的理論模型為漸變模型(Shadowing Model)。
式中,p(d)表示距離發(fā)射機為d時接收端接收到的信號強度,即RSSI值;p(d0)表示距離發(fā)射機為d0時接收端接收到的信號功率;d0為參考距離;n是路徑損耗(Pass Loss)指數(shù),通常是由實際測量得到,障礙物越多,n值越大,從而接收到的平均能量下降的速度會隨著距離的增加而變得越來越快:X是一個以dBm為單位,平均值為0的高斯隨機變量,反映了當(dāng)距離一定時,接收到的能量的變化。
實際應(yīng)用中一般采用簡化的漸變模型
為便于表達和計算,通常取d0為1 m。于是可得
[p(d)]dBm=A-10nlg(d) (3)
把[p(d)dBm寫成RSSI的形式得到
RSSI=A-10nlg(d) (4)
其中,A為無線收發(fā)節(jié)點相距1 m時接收節(jié)點接收到的無線信號強度RSSI值。式(4)就是RSSI測距的經(jīng)典模型,給出了RSSI和d的函數(shù)關(guān)系,所以已知接收機接收到的RSSI值就可以算出它和發(fā)射機之間的距離。A和n都是經(jīng)驗值,和具體使用的硬件節(jié)點和無線信號傳播的環(huán)境密切相關(guān),因此在不同的實際環(huán)境下A和n參數(shù)不同,其測距模型不同。
2 RSSI測距定位算法
基于RSSI測距的定位算法流程如圖1所示。
節(jié)點定位采用極大似然估汁算法。已知n個信標(biāo)節(jié)點的坐標(biāo)分別為(x1,y1),(x2,y2),…,(xn,yn),未知節(jié)點坐標(biāo)為(x,y),算法具體步驟如下:
(1)信標(biāo)節(jié)點周期性向未知節(jié)點發(fā)送包含自身ID和自身位置信息的數(shù)據(jù)包。
(2)未知節(jié)點在收到同一ID信標(biāo)節(jié)點發(fā)來的數(shù)據(jù)包后,從中提取出收到陔幀數(shù)據(jù)的信號強度值RSSI,當(dāng)收到某個ID信標(biāo)節(jié)點發(fā)來的數(shù)據(jù)包超過一定閾值(實驗設(shè)置為100)后,對這100個RSSI值求平均值,得到最終的該ID信標(biāo)節(jié)點的RSSI值,然后使用RSSI測距公式RSSI=A-10nlg(d)導(dǎo)出距離d,這樣就得到了未知節(jié)點和某ID信標(biāo)節(jié)點的距離。對所有信標(biāo)節(jié)點都采用這種方法進行處理,得到n個距離d1,d2,…,dn。最后未知節(jié)點記錄下所有信標(biāo)節(jié)點的坐標(biāo)和對應(yīng)的距離數(shù)據(jù)。
(3)建立信標(biāo)節(jié)點與未知節(jié)點距離方程組
該方程為非線性方程組,用方程組中前n-1個方程減去第n個方程后,得到線性化的方程
AX=b (6)
其中
式(7)便是未知節(jié)點的坐標(biāo)計算值。
3 RSSI測距實驗和定位實驗
由圖1可以看出基于RSSI測距的定位算法需要根據(jù)式(4)將測距度量值RSSI轉(zhuǎn)為未知節(jié)點到信標(biāo)節(jié)點的距離后,才能進行定位計算,因此必須先確定式(4)中的A和n參數(shù)的值,從而建立準(zhǔn)確的室內(nèi)測距模型。測距模型的精確度在較大程度上會影響后續(xù)定位計算的精度。一般室內(nèi)無線環(huán)境復(fù)雜,存在多徑效應(yīng)與非視距傳輸,一個確定的信號傳播模型無法適應(yīng)不同的室內(nèi)環(huán)境,因此為了得到較為準(zhǔn)確的RSSI和d距離之間的映射關(guān)系,提高定位計算精度,要針對需要定位室內(nèi)環(huán)境,實地進行RSSI測距實驗并采集大量數(shù)據(jù),之后對實驗數(shù)據(jù)進行處理從而得到A和n的最優(yōu)值,建立符合當(dāng)前環(huán)境的測距模型。一旦環(huán)境改變,需要通過重新測距實驗來確定測距模型。
3.1 RSSI測距實驗
選擇實驗室樓道作為室內(nèi)定位技術(shù)研究實驗場景,所以RSSI測距實驗也在實驗室樓道進行。定位和測距實驗平臺選擇西安華凡公司HFZ-CC2430ZDKZigBee開發(fā)套件。在兩個HFZ-Smart-RF04EB母板上插入HFZ-CC2430EM射頻模塊作為發(fā)射機和接收機節(jié)點。兩個節(jié)點的核心芯片為TI公司的CC2430無線單片機。CC2430芯片支持RSSI監(jiān)測功能,在接收到的每幀數(shù)據(jù)中都有相應(yīng)的字段指示了接收機收到該數(shù)據(jù)包的信號強度值RSSI。該值可以通過編程讀出。
在樓道中央處選擇一個固定位置放置好發(fā)射機節(jié)點,發(fā)射機的輸出功率編程設(shè)置為0 dBm。發(fā)射機固定后,對接收機進行編程,以20 cm為間隔,在距離發(fā)射機20 m的范圍內(nèi)設(shè)置100個測量點,即距離發(fā)射機0.2 m,0.4 m,…,20 m等位置。對接收節(jié)點編程,設(shè)置一個RSSI值緩存區(qū)存儲接收到的數(shù)據(jù)包的RSSI值,在每個測試點接收100個數(shù)據(jù)包后,對100個RSSI值求平均值,再以平均后的RSSI值作為接收節(jié)點在該位置收到的信號強度。最后記錄RSSI和d的對應(yīng)關(guān)系,這樣就得到了100組測量數(shù)據(jù)(RSSIi,di),i=1,2,3,…,100,其中RSSI,表示距離為di時的RSSI測量值。將采集到的數(shù)據(jù)在二維坐標(biāo)系中描出,如圖1所示。從圖中可以看出RSSI隨著d的增加呈下降趨勢,在12 m以內(nèi)曲線下降比較陡,超過12 m后,有一定程度的回升,并且下降趨于平緩。
3.2 測距模型參數(shù)優(yōu)化
為使模型能夠最大程度符合當(dāng)前實驗室樓道環(huán)境中的無線信號傳播特性,使RSSI測距能獲得更高的精度,需要對參數(shù)A和n進行優(yōu)化,得到當(dāng)前室內(nèi)環(huán)境下的最優(yōu)值。一般通過線性回歸分析來估計參數(shù)A和n的值,因為RSSI值在超過14 m以后基本趨于平緩,不再符合接收信號強度隨著距離增大而衰減的規(guī)律。所以為保證測距精度,對在實驗室走廊所采集的前70組測量數(shù)據(jù),即14 m以內(nèi)的測量數(shù)據(jù)(RSSIi,di),i=1,2,3,…,70使用線性回歸分析,代入式(8)~式(12),得出A=-42,n=2。這樣就得到了實驗室樓道環(huán)境下的測距模型RSSI=-42-20lg(d)。圖2所示為參數(shù)優(yōu)化后的RSSI測距模型曲線,根據(jù)線性回歸分析可以較好地擬合出適應(yīng)當(dāng)前實驗環(huán)境的模型曲線。
3.3 定位實驗
定位實驗選取實驗室走廊為實驗場景,選擇14 m×2 m的實驗場地作為定位區(qū)域,建立坐標(biāo)系,其中走廊長的方向為x軸,寬的方向為y軸。未知節(jié)點和信標(biāo)節(jié)點都采用HFZ-CC2430EM ZigBee模塊。在實驗環(huán)境中布置8個信標(biāo)節(jié)點,位置分別定義為(0,0),(0,2),(5,0),(4,2),(9,0),(10,2),(14,0),(14,2)如圖3所示。在定位區(qū)域內(nèi)選擇8個坐標(biāo)已知的定位測試點,將未知節(jié)點放在測試點進行定位,對信標(biāo)節(jié)點和未知節(jié)點進行軟件開發(fā),記錄實驗數(shù)據(jù)如表1所示。
設(shè)未知節(jié)點的實際位置為(x,y),通過定位算法計算出的位置為(xe,ye),定義定位誤差為
從表中數(shù)據(jù)可以看出,文中定位算法的定位誤差基本都在3 m之內(nèi),平均誤差為2.3 m,最大定位誤差為3.4 m,定位效果如圖4所示??紤]到室內(nèi)定位應(yīng)用的實際需求主要是對人員和物品進行定位,文中算法2.3 m的平均定位誤差可以滿足寫字樓、圖書館、礦井隧道、貨品倉庫等一般室內(nèi)場景的人員或物品定位需求。另外由定位算法推導(dǎo)計算過程中的式(5)可以看出增加信標(biāo)節(jié)點數(shù)目會增加約束方程的個數(shù),從而會使定位計算更加準(zhǔn)確,但是由于定位算法是基于RSSI測距的,而RSSI測距引入的誤差不可避免,即式(5)右邊的距離都不是信標(biāo)節(jié)點和未知節(jié)點的真實距離,所以式(5)無解,只能求出最小二乘解,因此文中所用的極大似然估計算法只能求出未知節(jié)點坐標(biāo)的近似估計值,不可能消除定位誤差。所以在實際應(yīng)用中應(yīng)該綜合考慮系統(tǒng)成本和具體定位精度要求,適當(dāng)設(shè)置信標(biāo)節(jié)點個數(shù)。
4 結(jié)束語
對RSSI測距的原理進行了分析,建立了經(jīng)典測距模型,在對室內(nèi)測距實驗采集到的數(shù)據(jù)使用線性回歸分析后,得到了當(dāng)前實驗場景的最優(yōu)測距模型。實現(xiàn)了基于RSSI測距的定位算法,經(jīng)過定位實驗驗證了算法的可行性,平均定位誤差為2.3 m,滿足大多室內(nèi)定位實際要求。