潘小琴 崔文婷 劉理想 戈婧佼
(1.西南科技大學工程技術中心,四川 綿陽 621010;2.西南科技大學工程技術中心智能機器人創新實踐班,四川 綿陽621010)
目前,無線傳感器網絡技術廣泛的應用于目標跟蹤、室內定位、智能巡檢、醫療監護等領域。由于室內環境無線信道比較復雜,墻壁、地板、人員的遮擋都將引起非視距傳輸和多徑效應等嚴重問題,這阻礙了室內定位技術的發展。如何提高室內定位的精度是一個非常具有實際意義的問題。
室內定位算法中,根據定位機制的不同,可以分為無需測距(Rang~Free)和基于測距(Rang~Based)兩類。常見的無需測距機制有質心法、DV~Hop法、APIT法等,這些算法需要節點部署得十分密集,并且定位精度與錨節點部署的位置有很大的關系[1]。然而室內環境中,無線傳感器節點通常按照具體要求進行部署,分布不均勻,節點密度無法得到保證,因此采用測距定位機制比較合適[2]。常見的基于測距機制的方法有:接收信號強度指示、到達時間、到達時間差和到達角度。相比之下,RSSI方法使用RF信號,無需增加額外的測距硬件,設備簡單、成本能耗低、節點硬件體積小,因此RSSI方法是室內定位的實際可行的方法。
在實際應用中,RSSI值需要轉換為對應的距離,而無線信號受環境影響衰減很大,僅僅依靠多次測量取平均無法得到準確的距離值。據此,本文提出一種劃分子區域的動態估計路徑損耗模型和測距誤差模型的定位算法。
無線傳感器網絡定位的原理為:通過依靠有限數量的位置坐標已知的無線傳感器節點,確定在待定位區域內其他未知傳感器節點的位置。考慮到室內定位通信距離短、速率低等特點,采用ZigBee技術搭建無線傳感器網絡實驗平臺。
針對室內的特殊結構,采用樹型網絡拓撲進行覆蓋,每個房間是一個單獨的定位區域,所有房間之間用中繼節點進行連接。有三種設備:網絡協調器、中繼節點、終端節點。網絡協調器負責整個無線網絡的建立和維護,與上位機之間采用UART進行通信。中繼節點用于協調器和終端節點之間數據的路由。單個房間內全部是終端節點,固定位置的稱為錨(anchor)節點、參考節點或者信標(Beacon)節點,其坐標信息已知;坐標信息未知的稱為待定位節點、未知節點或者盲節點,需要依靠錨節點來計算自己的位置坐標。
RSSI測距的思想是:已知發射節點信號強度,接收節點根據接收到的信號強度和信號傳輸的路徑損耗模型計算出兩個節點之間的距離,最后使用定位算法計算出坐標位置[3]。
在實際情況中,經常使用簡化后的Shadowing信道傳輸損耗模型:

上式中PL(d)為接收機與發射機距離為d時的路徑傳輸損耗,單位為dBm;d0為參考距離;PL0表示參考距離為d0的路徑傳輸損耗;n是路徑損耗指數,表征路徑損耗隨距離增加而增大的快慢程度,與環境有關;S是均值為0的高斯噪聲,其標準差Sσ隨節點布置環境的不同而不同;
接收節點接收的信號強度為:

其中,Pt表示信號的發射功率,單位為dBm。

參考距離通常取1m,即d0=1,令A=Pt-PL0,對多次測量接收到的信號強度RSSI取平均值,此時S均值為0,故上式化簡為:

于是:

由上式可以看出,距離d受RSSI值和環境參數A、n的影響。文獻[4]從噪聲和干擾著手,對RSSI值進行濾波、篩選處理,這些方法雖然可以提高測距精度,卻帶來了大量的通信和計算開銷。文獻[5]從環境因素著手提出精確估計出定位區域內的A和n。然而A、n是與射頻電路和無線信號傳輸環境密切相關的,隨著定位節點的移動,n是時變的。實際測試結果顯示:由于多徑、反射、障礙物阻擋等因素的影響,相同距離對應的RSSI相差很大,也就是不同環境對應的模型參數A、n是不同的,路徑損耗模型參數隨著環境的改變而改變。
為了減小定位誤差,又不增加通信和計算開銷,從環境因素著手,提出一種簡單有效的改進算法。算法先將定位區域劃分為多個子區域,再利用多個錨節點協作通信,動態估計A、n在該子區域內的較為精確的值[6],并且進一步推導出測量距離與實際距離之間的誤差模型,以此誤差模型來對測試距離進行修正,最后通過定位算法計算未知節點的坐標。
2.2.1 劃分子區域的路徑損耗模型參數估計
基本思想如圖1所示,X為未知節點,假設A、B、C、X兩兩之間能夠互相通信,且A、B、C、為距離X最近的三個不共線錨節點。我們假設△ABC所在區域是一個比較小的范圍,可以近似認為在這一區域內路徑損耗模型參數A、n是相同的,因此,我們可以利用錨節點來估計出所需要的A、n。

圖1 參數估計算法模型

由公式可以計算出A點相對于△ABC區域內的參數值AA、nA:

同理,可以得到B、C點相對△ABC區域的參數值AB、nB和AC、nC。
取整個△ABC區域的環境參數A、n為A、B、C三點所在位置參數的平均值:

2.2.2 測距誤差模型修正
由于公式(8)唯一確定A、n,數據具有偶然性,為了進一步提高定位精度,利用三個錨節點信息對測距階段的距離測量值進行修正。
假設影響錨節點A、B、C與未知節點X通信過程中的測距誤差和A、B、C互相通信過程中的誤差情況相同,設實際距離與測量距離滿足下列線性方程關系[7]:

dij是節點i到它鄰居節點j的實際距離,rij是節點i到它鄰居節點j的測量距離,△ij是節點i和j之間測距的隨機誤差。
依照公式(9)列出A、B、C之間的測距誤差關系式為:

已知根據RSSI值和環境參數 A、n可以得到 rAC、rBC、rAB, 根據 A、B、C 的坐標可以計算出 dAC、dBC、dAB,利用最小二乘法[8],計算出相應的k與△,從而得到測距誤差模型,用此模型來修正未知節點X與錨節點A、B、C之間的距離。
2.2.3 定位流程
改進算法的定位流程如下所示。
1)未知節點廣播發出自身信息和定位請求,比較錨節點返回的信號強度值,選取最近的三個錨節點參與定位;
2)選定錨節點,根據公式(4)計算各錨節點的 A、n;根據公式(8)計算出△ABC區域內的環境參數A、n;
3)使用步驟 2)得到的參數計算出 A、B、C 的測量距離 rAB、rBC、rAC;由 ABC 的坐標值計算出 dAC、dBC、dAB;
4)使用最小二乘法,根據公式(10)計算出測距誤差模型參數k與△;
5)未知節點周期性的向錨節點發送自身位置信息,計算未知節點到錨節點之間的測量距離rAX、rBX、rCX,用測量誤差模型對距離進行修正,得到實際距離 dAX、dBX、dCX;
6)最后,利用三邊定位算法,估算未知節點的坐標信息。
通過MATLAB仿真,分析比較路徑損耗模型參數采用典型值的算法與本文所提出的改進型算法的定位性能。假設在100m*100m的矩形區域內隨機分布200個節點,節點通信半徑為20m,實驗數據來自100次仿真實驗的平均值。
圖2給出了兩種算法的定位誤差與錨節點數的關系。結果顯示,隨著錨節點所占比例上升,兩種算法的定位精度都在提高,在相同條件下,本文提出的改進型算法始終優于原始算法,與傳統算法相比提高了8%。這是因為隨著錨節點數量的增加,相當于錨節點密度在提高,也就是改進算法的子區域劃分得更小,估計出的路徑損耗模型參數和測距誤差模型參數更加準確,因而定位誤差更小。

圖2 定位誤差和錨節點數的關系

圖3 覆蓋范圍和錨節點數的關系
圖3給出了兩種算法的覆蓋范圍和錨節點數的關系。結果顯示,隨著錨節點數增加兩種算法的定位覆蓋率均逐漸增加至1,但是改進算法的定位覆蓋率范圍快速達到了100%。在實際的應用中,改進型算法可以使用更少的錨節點來覆蓋整個定位區域,從而可以節約成本。
針對室內環境無線傳感器網絡節點定位的過程中,存在著使用固定路徑損耗模型參數而定位精度不高的問題,提出了一種動態調整路徑損耗模型參數A、n并通過測距誤差模型進行距離修正的定位算法。經過仿真研究驗證了該算法的有效性,在保證相同定位精度的前提下,所需錨節點數目減少,可以大大降低定位成本。同時與傳統算法相比,改進算法在相同條件下節點定位精度明顯更高,魯棒性更好。
[1]周祖德,王晟.一種適用于復雜環境的無線傳感定位算法研究[J].武漢理工大學學報,2006,28(11):121-124.
[2]武昊然.GPS和無線傳感器網絡融合定位算法研究[J].計算機仿真,2009,26(11):145-150.
[3]顏嘉俊,雷勇.基于RSSI的無線傳感器網絡節點定位[J].計算機仿真,2012,29(7):151-154.
[4]程遠國,耿伯英.基于高斯混合模型的無線局域網定位算法[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]李瑤怡,赫曉星,劉守印.基于路徑損耗模型參數實時估計的無線定位方法[J].傳感技術學報,2010,23(9):1328-1333.
[7]唐琳.無線傳感器網絡節點自定位算法的研究[D].北京:北京郵電大學,2010.
[8]徐海黎,江金金,朱志松,朱龍彪.基于ZigBee技術的家庭服務機器人定位問題研究[J].制造業自動化,2011,33(19):64-67.