無線傳感器網(wǎng)絡(luò)用于監(jiān)測系統(tǒng)中的定位算法
2 基于RSSI測距的加權(quán)質(zhì)心定位原理
在無線傳感器網(wǎng)絡(luò)中,根據(jù)節(jié)點(diǎn)的位置是否己知,將節(jié)點(diǎn)分為未知節(jié)點(diǎn)和信標(biāo)節(jié)點(diǎn)。未知節(jié)點(diǎn)表示節(jié)點(diǎn)在無線傳感器網(wǎng)絡(luò)的位置需要定位,而信標(biāo)節(jié)點(diǎn)也稱為錨節(jié)點(diǎn),表示其位置已經(jīng)確定。信標(biāo)節(jié)點(diǎn)是通過人工事先放置好或者在節(jié)點(diǎn)上增加GPS模塊得到自身位置。信標(biāo)節(jié)點(diǎn)是未知節(jié)點(diǎn)定位時(shí)的參考點(diǎn),但是由于功耗和成本的限制,信標(biāo)節(jié)點(diǎn)不能太多。
2.1 RSSI測距原理
RSSI (received signal strength indicator)測距原理:利用節(jié)點(diǎn)接收信號強(qiáng)度與節(jié)點(diǎn)距離成反比的關(guān)系,通過測量接收到的信號強(qiáng)度和已知的信道衰落模型,估算出節(jié)點(diǎn)之間的距離。無線信號的發(fā)射功率和接收功率之間的關(guān)系可以用式(1)表示
PR是無線信號的接收功率,PT是無線信號的發(fā)送功率,d是收發(fā)單元之間的距離,n是傳播因子,數(shù)值大小取決于無線信號傳播的環(huán)境。給上式兩邊取對數(shù)得
10lgPR=10lgPT-10n·lgd (2)
當(dāng)距離d=1 m時(shí),PR=Pr,令10 lg RT=10 lg R=A,即是距離發(fā)射節(jié)點(diǎn)1 m遠(yuǎn)處的信號接收強(qiáng)度,將(2)式化簡為
PR(dBm)=A-10*nlgd (3)
可以看出常數(shù)A和n決定了接收信號強(qiáng)度和傳輸距離的關(guān)系。A值為無線收發(fā)節(jié)點(diǎn)相距1 m時(shí)接收節(jié)點(diǎn)接收到的無線信號強(qiáng)度值,n值是無線信號的傳播因子,這兩個(gè)值都是經(jīng)驗(yàn)值,和具體使用的硬件節(jié)點(diǎn)和無線信號傳播的環(huán)境密切相關(guān),所以測距前必須在應(yīng)用環(huán)境中把兩個(gè)經(jīng)驗(yàn)值標(biāo)定好,然后根據(jù)(3)式就可以求出距離d。
2.2 質(zhì)心定位原理
質(zhì)心定位的原理是:未知節(jié)點(diǎn)以所有在其通信范圍內(nèi)錨節(jié)點(diǎn)組成的幾何形狀的質(zhì)心作為自己的估計(jì)位置。質(zhì)心坐標(biāo)就是多邊形各頂點(diǎn)坐標(biāo)的平均值。
具體實(shí)現(xiàn)過程為:錨節(jié)點(diǎn)周期性的向鄰居節(jié)點(diǎn)廣播一個(gè)信標(biāo)信號,信號中包含有錨節(jié)點(diǎn)自身的ID和位置信息,未知節(jié)點(diǎn)接收到信標(biāo)信號以后將其存儲起來。當(dāng)未知節(jié)點(diǎn)在一段偵聽時(shí)間內(nèi)接收到來自某個(gè)錨節(jié)點(diǎn)的信標(biāo)信號數(shù)量超過預(yù)設(shè)的門限后,就認(rèn)為該錨節(jié)點(diǎn)與自身連通,最終該未知節(jié)點(diǎn)將自身位置確定為所有與之連通的錨節(jié)點(diǎn)所組成的多邊形的質(zhì)心。假設(shè)網(wǎng)絡(luò)中的n個(gè)固定錨節(jié)點(diǎn)坐標(biāo)為(Xi,Yi),其中1≤i ≤n,未知節(jié)點(diǎn)M的估測位置坐標(biāo)為(Xm,Ym),那么質(zhì)心定位計(jì)算未知節(jié)點(diǎn)的坐標(biāo)公式如下:
2.3 基于RSSI的加權(quán)質(zhì)心定位
傳統(tǒng)的質(zhì)心定位算法忽略了不同距離的錨節(jié)點(diǎn)對質(zhì)心定位精度的影響,針對傳統(tǒng)質(zhì)心定位算法的缺陷,將RSSI信息引入可以起到輔助信息的作用。其基本思想是:在確定了未知節(jié)點(diǎn)所在的多邊形以后,首先根據(jù)未知節(jié)點(diǎn)和錨節(jié)點(diǎn)通信時(shí)獲取到的RSSI值計(jì)算出未知節(jié)點(diǎn)和各個(gè)錨節(jié)點(diǎn)之間的距離d,然后以wi=1/di作為加權(quán)質(zhì)心定位算法中的權(quán)值,計(jì)算未知節(jié)點(diǎn)的坐標(biāo)。
假設(shè)網(wǎng)絡(luò)中的n個(gè)同定錨節(jié)點(diǎn)坐標(biāo)為(Xi,Yi),其中1≤i≤n,未知節(jié)點(diǎn)M的估測位置坐標(biāo)為(Xm,Ym),那么加權(quán)質(zhì)心計(jì)算公式5如下:
這樣選擇加權(quán)因子能夠體現(xiàn)出與未知節(jié)點(diǎn)距離不同的錨節(jié)點(diǎn)對未知節(jié)點(diǎn)定位的決定權(quán)的大小,其約束力符合加權(quán)質(zhì)心算法的要求。
3 節(jié)點(diǎn)定位的實(shí)現(xiàn)
3.1 定位系統(tǒng)的工作原理
節(jié)點(diǎn)的定位計(jì)算主要是在網(wǎng)關(guān)上完成的。本定位系統(tǒng)中采用了Android平板電腦做網(wǎng)關(guān),網(wǎng)關(guān)通過監(jiān)牙通信和中心節(jié)點(diǎn)上的藍(lán)牙模塊建立連接,藍(lán)牙配對成功后,中心節(jié)點(diǎn)將未知節(jié)點(diǎn)上傳的與之通信錨節(jié)點(diǎn)的RSSI值和對應(yīng)錨節(jié)點(diǎn)ID信息通過藍(lán)牙模塊無線透傳給網(wǎng)關(guān),在網(wǎng)關(guān)上進(jìn)行計(jì)算。定位系統(tǒng)原理如圖4所示。本文引用地址:http://m.butianyuan.cn/article/159474.htm
3.2 定位實(shí)現(xiàn)的步驟
(1) RSSI值的獲取
在成功組建Zigbee網(wǎng)絡(luò)后,錨節(jié)點(diǎn)周期性的向周同廣播一個(gè)包含自身ID的信標(biāo)信號,在通信范圍內(nèi)的未知節(jié)點(diǎn)接收到信標(biāo)信號以后,通過調(diào)用API函數(shù)獲取與自己通信錨節(jié)點(diǎn)的RSSI值和對應(yīng)的錨節(jié)點(diǎn)ID號,使用的API函數(shù)主要包括:emberIneoming MessageHandler主要是處理節(jié)點(diǎn)接收到的信息,在這個(gè)函數(shù)里面再調(diào)用API函數(shù)emberGetSender,獲取發(fā)送節(jié)點(diǎn)編號(node ID):調(diào)用API函數(shù)emberGetLastHopRssi,獲取目前接收信息的信號強(qiáng)度;調(diào)用API函數(shù)emberSendUnicast將接收到的數(shù)據(jù)發(fā)送給中心節(jié)點(diǎn),最終在中心節(jié)點(diǎn)調(diào)用API函數(shù)emberSerialPri ntf將數(shù)據(jù)通過串口發(fā)送給網(wǎng)關(guān)。獲取RSSI值的部分代碼如下:
評論