潘小琴 崔文婷 劉理想 戈婧佼
(1.西南科技大學工程技術中心,四川 綿陽 621010;2.西南科技大學工程技術中心智能機器人創(chuàng)新實踐班,四川 綿陽621010)
目前,無線傳感器網(wǎng)絡技術廣泛的應用于目標跟蹤、室內(nèi)定位、智能巡檢、醫(yī)療監(jiān)護等領域。由于室內(nèi)環(huán)境無線信道比較復雜,墻壁、地板、人員的遮擋都將引起非視距傳輸和多徑效應等嚴重問題,這阻礙了室內(nèi)定位技術的發(fā)展。如何提高室內(nèi)定位的精度是一個非常具有實際意義的問題。
室內(nèi)定位算法中,根據(jù)定位機制的不同,可以分為無需測距(Rang~Free)和基于測距(Rang~Based)兩類。常見的無需測距機制有質心法、DV~Hop法、APIT法等,這些算法需要節(jié)點部署得十分密集,并且定位精度與錨節(jié)點部署的位置有很大的關系[1]。然而室內(nèi)環(huán)境中,無線傳感器節(jié)點通常按照具體要求進行部署,分布不均勻,節(jié)點密度無法得到保證,因此采用測距定位機制比較合適[2]。常見的基于測距機制的方法有:接收信號強度指示、到達時間、到達時間差和到達角度。相比之下,RSSI方法使用RF信號,無需增加額外的測距硬件,設備簡單、成本能耗低、節(jié)點硬件體積小,因此RSSI方法是室內(nèi)定位的實際可行的方法。
在實際應用中,RSSI值需要轉換為對應的距離,而無線信號受環(huán)境影響衰減很大,僅僅依靠多次測量取平均無法得到準確的距離值。據(jù)此,本文提出一種劃分子區(qū)域的動態(tài)估計路徑損耗模型和測距誤差模型的定位算法。
無線傳感器網(wǎng)絡定位的原理為:通過依靠有限數(shù)量的位置坐標已知的無線傳感器節(jié)點,確定在待定位區(qū)域內(nèi)其他未知傳感器節(jié)點的位置。考慮到室內(nèi)定位通信距離短、速率低等特點,采用ZigBee技術搭建無線傳感器網(wǎng)絡實驗平臺。
針對室內(nèi)的特殊結構,采用樹型網(wǎng)絡拓撲進行覆蓋,每個房間是一個單獨的定位區(qū)域,所有房間之間用中繼節(jié)點進行連接。有三種設備:網(wǎng)絡協(xié)調器、中繼節(jié)點、終端節(jié)點。網(wǎng)絡協(xié)調器負責整個無線網(wǎng)絡的建立和維護,與上位機之間采用UART進行通信。中繼節(jié)點用于協(xié)調器和終端節(jié)點之間數(shù)據(jù)的路由。單個房間內(nèi)全部是終端節(jié)點,固定位置的稱為錨(anchor)節(jié)點、參考節(jié)點或者信標(Beacon)節(jié)點,其坐標信息已知;坐標信息未知的稱為待定位節(jié)點、未知節(jié)點或者盲節(jié)點,需要依靠錨節(jié)點來計算自己的位置坐標。
RSSI測距的思想是:已知發(fā)射節(jié)點信號強度,接收節(jié)點根據(jù)接收到的信號強度和信號傳輸?shù)穆窂綋p耗模型計算出兩個節(jié)點之間的距離,最后使用定位算法計算出坐標位置[3]。
在實際情況中,經(jīng)常使用簡化后的Shadowing信道傳輸損耗模型:
上式中PL(d)為接收機與發(fā)射機距離為d時的路徑傳輸損耗,單位為dBm;d0為參考距離;PL0表示參考距離為d0的路徑傳輸損耗;n是路徑損耗指數(shù),表征路徑損耗隨距離增加而增大的快慢程度,與環(huán)境有關;S是均值為0的高斯噪聲,其標準差Sσ隨節(jié)點布置環(huán)境的不同而不同;
接收節(jié)點接收的信號強度為:
其中,Pt表示信號的發(fā)射功率,單位為dBm。
參考距離通常取1m,即d0=1,令A=Pt-PL0,對多次測量接收到的信號強度RSSI取平均值,此時S均值為0,故上式化簡為:
于是:
由上式可以看出,距離d受RSSI值和環(huán)境參數(shù)A、n的影響。文獻[4]從噪聲和干擾著手,對RSSI值進行濾波、篩選處理,這些方法雖然可以提高測距精度,卻帶來了大量的通信和計算開銷。文獻[5]從環(huán)境因素著手提出精確估計出定位區(qū)域內(nèi)的A和n。然而A、n是與射頻電路和無線信號傳輸環(huán)境密切相關的,隨著定位節(jié)點的移動,n是時變的。實際測試結果顯示:由于多徑、反射、障礙物阻擋等因素的影響,相同距離對應的RSSI相差很大,也就是不同環(huán)境對應的模型參數(shù)A、n是不同的,路徑損耗模型參數(shù)隨著環(huán)境的改變而改變。
為了減小定位誤差,又不增加通信和計算開銷,從環(huán)境因素著手,提出一種簡單有效的改進算法。算法先將定位區(qū)域劃分為多個子區(qū)域,再利用多個錨節(jié)點協(xié)作通信,動態(tài)估計A、n在該子區(qū)域內(nèi)的較為精確的值[6],并且進一步推導出測量距離與實際距離之間的誤差模型,以此誤差模型來對測試距離進行修正,最后通過定位算法計算未知節(jié)點的坐標。
2.2.1 劃分子區(qū)域的路徑損耗模型參數(shù)估計
基本思想如圖1所示,X為未知節(jié)點,假設A、B、C、X兩兩之間能夠互相通信,且A、B、C、為距離X最近的三個不共線錨節(jié)點。我們假設△ABC所在區(qū)域是一個比較小的范圍,可以近似認為在這一區(qū)域內(nèi)路徑損耗模型參數(shù)A、n是相同的,因此,我們可以利用錨節(jié)點來估計出所需要的A、n。
圖1 參數(shù)估計算法模型
由公式可以計算出A點相對于△ABC區(qū)域內(nèi)的參數(shù)值AA、nA:
同理,可以得到B、C點相對△ABC區(qū)域的參數(shù)值AB、nB和AC、nC。
取整個△ABC區(qū)域的環(huán)境參數(shù)A、n為A、B、C三點所在位置參數(shù)的平均值:
2.2.2 測距誤差模型修正
由于公式(8)唯一確定A、n,數(shù)據(jù)具有偶然性,為了進一步提高定位精度,利用三個錨節(jié)點信息對測距階段的距離測量值進行修正。
假設影響錨節(jié)點A、B、C與未知節(jié)點X通信過程中的測距誤差和A、B、C互相通信過程中的誤差情況相同,設實際距離與測量距離滿足下列線性方程關系[7]:
dij是節(jié)點i到它鄰居節(jié)點j的實際距離,rij是節(jié)點i到它鄰居節(jié)點j的測量距離,△ij是節(jié)點i和j之間測距的隨機誤差。
依照公式(9)列出A、B、C之間的測距誤差關系式為:
已知根據(jù)RSSI值和環(huán)境參數(shù) A、n可以得到 rAC、rBC、rAB, 根據(jù) A、B、C 的坐標可以計算出 dAC、dBC、dAB,利用最小二乘法[8],計算出相應的k與△,從而得到測距誤差模型,用此模型來修正未知節(jié)點X與錨節(jié)點A、B、C之間的距離。
2.2.3 定位流程
改進算法的定位流程如下所示。
1)未知節(jié)點廣播發(fā)出自身信息和定位請求,比較錨節(jié)點返回的信號強度值,選取最近的三個錨節(jié)點參與定位;
2)選定錨節(jié)點,根據(jù)公式(4)計算各錨節(jié)點的 A、n;根據(jù)公式(8)計算出△ABC區(qū)域內(nèi)的環(huán)境參數(shù)A、n;
3)使用步驟 2)得到的參數(shù)計算出 A、B、C 的測量距離 rAB、rBC、rAC;由 ABC 的坐標值計算出 dAC、dBC、dAB;
4)使用最小二乘法,根據(jù)公式(10)計算出測距誤差模型參數(shù)k與△;
5)未知節(jié)點周期性的向錨節(jié)點發(fā)送自身位置信息,計算未知節(jié)點到錨節(jié)點之間的測量距離rAX、rBX、rCX,用測量誤差模型對距離進行修正,得到實際距離 dAX、dBX、dCX;
6)最后,利用三邊定位算法,估算未知節(jié)點的坐標信息。
通過MATLAB仿真,分析比較路徑損耗模型參數(shù)采用典型值的算法與本文所提出的改進型算法的定位性能。假設在100m*100m的矩形區(qū)域內(nèi)隨機分布200個節(jié)點,節(jié)點通信半徑為20m,實驗數(shù)據(jù)來自100次仿真實驗的平均值。
圖2給出了兩種算法的定位誤差與錨節(jié)點數(shù)的關系。結果顯示,隨著錨節(jié)點所占比例上升,兩種算法的定位精度都在提高,在相同條件下,本文提出的改進型算法始終優(yōu)于原始算法,與傳統(tǒng)算法相比提高了8%。這是因為隨著錨節(jié)點數(shù)量的增加,相當于錨節(jié)點密度在提高,也就是改進算法的子區(qū)域劃分得更小,估計出的路徑損耗模型參數(shù)和測距誤差模型參數(shù)更加準確,因而定位誤差更小。
圖2 定位誤差和錨節(jié)點數(shù)的關系
圖3 覆蓋范圍和錨節(jié)點數(shù)的關系
圖3給出了兩種算法的覆蓋范圍和錨節(jié)點數(shù)的關系。結果顯示,隨著錨節(jié)點數(shù)增加兩種算法的定位覆蓋率均逐漸增加至1,但是改進算法的定位覆蓋率范圍快速達到了100%。在實際的應用中,改進型算法可以使用更少的錨節(jié)點來覆蓋整個定位區(qū)域,從而可以節(jié)約成本。
針對室內(nèi)環(huán)境無線傳感器網(wǎng)絡節(jié)點定位的過程中,存在著使用固定路徑損耗模型參數(shù)而定位精度不高的問題,提出了一種動態(tài)調整路徑損耗模型參數(shù)A、n并通過測距誤差模型進行距離修正的定位算法。經(jīng)過仿真研究驗證了該算法的有效性,在保證相同定位精度的前提下,所需錨節(jié)點數(shù)目減少,可以大大降低定位成本。同時與傳統(tǒng)算法相比,改進算法在相同條件下節(jié)點定位精度明顯更高,魯棒性更好。
[1]周祖德,王晟.一種適用于復雜環(huán)境的無線傳感定位算法研究[J].武漢理工大學學報,2006,28(11):121-124.
[2]武昊然.GPS和無線傳感器網(wǎng)絡融合定位算法研究[J].計算機仿真,2009,26(11):145-150.
[3]顏嘉俊,雷勇.基于RSSI的無線傳感器網(wǎng)絡節(jié)點定位[J].計算機仿真,2012,29(7):151-154.
[4]程遠國,耿伯英.基于高斯混合模型的無線局域網(wǎng)定位算法[J].計算機工程,2009,35(4):25-27.
[5]Caltabiano D,Muscato G,Russo F.Localization and Self-Calibration of a Robot for volcano Exploration[C].Proceedings of the 2004 IEEE ICRA.New O rleans:IEEE Robotics and Automation Society,2004.
[6]李瑤怡,赫曉星,劉守印.基于路徑損耗模型參數(shù)實時估計的無線定位方法[J].傳感技術學報,2010,23(9):1328-1333.
[7]唐琳.無線傳感器網(wǎng)絡節(jié)點自定位算法的研究[D].北京:北京郵電大學,2010.
[8]徐海黎,江金金,朱志松,朱龍彪.基于ZigBee技術的家庭服務機器人定位問題研究[J].制造業(yè)自動化,2011,33(19):64-67.