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