基于APIT的無線傳感器網(wǎng)絡(luò)三維定位算法
摘要:根據(jù)經(jīng)典的APIT算法特點(diǎn),將其擴(kuò)展到三維空間中實(shí)現(xiàn)節(jié)點(diǎn)的定位。針對(duì)APIT算法的不足,提出了一種改進(jìn)的TDAPIT算法,并從節(jié)點(diǎn)定位誤差和定位覆蓋率兩個(gè)方面分析算法的性能。在改進(jìn)的算法中利用了循環(huán)的思想,大大減少了不良節(jié)點(diǎn)的數(shù)量。仿真實(shí)驗(yàn)結(jié)果證明,TDAPIT算法可以較好地應(yīng)用于三維空間定位,而且在定位覆蓋率上比APIT有了明顯提高。
本文引用地址:http://butianyuan.cn/article/160566.htm關(guān)鍵詞:無線傳感器;定位;APIT;TDAPlT
引言
通常,無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)信息采集節(jié)點(diǎn)是被隨機(jī)放置或是從飛機(jī)上隨機(jī)拋撒的。因此如何確定節(jié)點(diǎn)的具體位置成為無線傳感器網(wǎng)絡(luò)研究的難點(diǎn)和重點(diǎn)。
WSN的定位主要分對(duì)節(jié)點(diǎn)自身的定位和對(duì)外部目標(biāo)的跟蹤定位。WSN自身定位方法分為基于測距的方法和非基于測距的方法。基于測距的定位通過測量相鄰節(jié)點(diǎn)之間的絕對(duì)距離或方位等來計(jì)算未知節(jié)點(diǎn)的位置,需要特定的硬件設(shè)備,定位精度較高。而非基于測距的定位機(jī)制無需測距或角度信息,不用直接測量這些信息,僅根據(jù)網(wǎng)絡(luò)的連通性等信息實(shí)現(xiàn)節(jié)點(diǎn)的定位,典型的有質(zhì)心算法、DV-Hop算法、凸規(guī)劃算法和APIT算法等。
參考文獻(xiàn)提出了一種IAPIT的定位方法,主要思路是將3邊測量法以及幾何上的由已知兩點(diǎn)在輔助條件下求解兩圓交點(diǎn)的方法融入到APIT算法中,但是算法仍然局限于二維宅間中的定位。參考文獻(xiàn)通過對(duì)單跳質(zhì)心算法進(jìn)行多跳擴(kuò)展以改善定位比率,并加入場強(qiáng)加權(quán)過程和去中心化過程以提高定位精度。參考文獻(xiàn)提出將所有收集到的來自于同一信標(biāo)節(jié)點(diǎn)的RSSI值做平均,作為未知節(jié)點(diǎn)接收到此固定信標(biāo)節(jié)點(diǎn)的RSSI值,進(jìn)行定位計(jì)算。參考文獻(xiàn)結(jié)合三角形測試原理(PIT),主要針對(duì)信標(biāo)節(jié)點(diǎn)分布不均勻的情況提出了CBPIT算法。參考文獻(xiàn)提出了一種節(jié)點(diǎn)自身的定位方法,能夠通過相對(duì)準(zhǔn)確的測試來確定節(jié)點(diǎn)所在的區(qū)域,但是沒有考慮未知節(jié)點(diǎn)監(jiān)聽到信標(biāo)節(jié)點(diǎn)數(shù)目較少的情況。
本文針對(duì)三維空間的節(jié)點(diǎn)定位提出了改進(jìn)的TDAPIT算法。
1 算法描述
1.1 術(shù)語定義
①信標(biāo)節(jié)點(diǎn):已知位置并能協(xié)助未知節(jié)點(diǎn)定位的節(jié)點(diǎn),也稱錨節(jié)點(diǎn)。
②鄰居節(jié)點(diǎn):在節(jié)點(diǎn)的通信范圍內(nèi),并可與這個(gè)節(jié)點(diǎn)直接通信的所有節(jié)點(diǎn)。
③未知節(jié)點(diǎn):不知道自身的位置,需使用信標(biāo)節(jié)點(diǎn)的位置信息并運(yùn)用一定的算法得到估計(jì)位置的節(jié)點(diǎn),也稱待定位節(jié)點(diǎn)。
④已知節(jié)點(diǎn):圩始時(shí)不知道自身的位置信息,但是經(jīng)過一段時(shí)間的定位后,已經(jīng)通過信標(biāo)節(jié)點(diǎn)的位置信息并用一定的算法得到了位置信息的節(jié)點(diǎn)。
⑤不良節(jié)點(diǎn):定位過程結(jié)束后,仍然不能夠?qū)崿F(xiàn)定位的節(jié)點(diǎn)。
實(shí)際上,WSN的節(jié)點(diǎn)定位即未知節(jié)點(diǎn)在信標(biāo)節(jié)點(diǎn)的協(xié)助下轉(zhuǎn)變成已知節(jié)點(diǎn)的過程。在實(shí)際定位過程中,由于種種原因,難免會(huì)出現(xiàn)不良節(jié)點(diǎn),應(yīng)當(dāng)盡力減少不良節(jié)點(diǎn)的個(gè)數(shù)。
1.2 APIT算法
APIT算法的基本思想是未知節(jié)點(diǎn)任選3個(gè)相鄰信標(biāo)節(jié)點(diǎn),測試是否位于它們所組成的三角形中,使用不同信標(biāo)節(jié)點(diǎn)組合重復(fù)測試,直到窮盡所有組合或達(dá)到所需定位精度。最后,計(jì)算包含目標(biāo)節(jié)點(diǎn)的所有三角形交集的質(zhì)心位置,并以此作為目標(biāo)節(jié)點(diǎn)位置。
APIT算法理論基礎(chǔ)是PIT測試。如果存在一個(gè)方向,并且沿著此方向運(yùn)動(dòng)的未知節(jié)點(diǎn)會(huì)同時(shí)遠(yuǎn)離或者是接近三角形的三個(gè)頂點(diǎn),那么此未知節(jié)點(diǎn)在三角形的外部,否則在三角形的內(nèi)部。
在實(shí)際測試中,可以用未知節(jié)點(diǎn)和它的鄰居節(jié)點(diǎn)來模擬此運(yùn)動(dòng)。若未知節(jié)點(diǎn)的鄰節(jié)點(diǎn)都沒有同時(shí)遠(yuǎn)離或靠近3個(gè)信標(biāo)節(jié)點(diǎn),那么此未知節(jié)點(diǎn)就在三角形內(nèi),否則在三角形外。PIT測試時(shí),一般采用信號(hào)強(qiáng)度來判斷遠(yuǎn)離或者是接近信標(biāo)節(jié)點(diǎn)。
PIT測試誤差分析如下:
①PIT測試中容易出現(xiàn)InToOut和OutToIn錯(cuò)誤。InToOut錯(cuò)誤即將三角形內(nèi)部的點(diǎn)誤判為在三角形外面。PIT測試圖像如圖1所示。當(dāng)未知節(jié)點(diǎn)靠近或者正好在三角形的一條邊上時(shí),就容易出現(xiàn)上述的錯(cuò)誤。
②如果信標(biāo)節(jié)點(diǎn)和未知節(jié)點(diǎn)的鄰居節(jié)點(diǎn)密度過小,對(duì)定位結(jié)果的影響很大,抑或使得有些節(jié)點(diǎn)不能被定位,定位覆蓋率較低。
③在網(wǎng)絡(luò)的中間部分和未知節(jié)點(diǎn)相鄰的信標(biāo)節(jié)點(diǎn)可能很多,但是其中任意3個(gè)節(jié)點(diǎn)所組成的三角形可能都不包括未知節(jié)點(diǎn),因此在算法完成后仍不能定位這類節(jié)點(diǎn)。
④在網(wǎng)絡(luò)的邊緣部分,容易造成無法滿足APIT的定位條件,當(dāng)和未知節(jié)點(diǎn)相鄰的信標(biāo)節(jié)點(diǎn)數(shù)目少于3個(gè)時(shí),造成未知節(jié)點(diǎn)無法定位。
⑤對(duì)重疊區(qū)域的重心計(jì)算中,采用的是網(wǎng)格掃描的算法,效率較低,計(jì)算精度不高。
⑥算法中,未知節(jié)點(diǎn)不僅要與信標(biāo)節(jié)點(diǎn)交互信息,還要與其他的鄰居節(jié)點(diǎn)進(jìn)行協(xié)調(diào)信息處理,使得網(wǎng)絡(luò)中節(jié)點(diǎn)的計(jì)算量增大,通信開銷也上升了很多。
1.3 基于APIT的三維定位方法
1.3.1 TDAPIT算法原理
信標(biāo)節(jié)點(diǎn)是WSN空間中已經(jīng)知道自身坐標(biāo)位置的固定節(jié)點(diǎn)(如通過GPRS定位等),空間中的任意一個(gè)未知節(jié)點(diǎn),能夠監(jiān)聽到信標(biāo)節(jié)點(diǎn)的數(shù)目為n,那么從n中任意選取4個(gè)點(diǎn)組成一個(gè)四面體,共有C4n個(gè)四面體;然后,測試該未知節(jié)點(diǎn)是否在這4個(gè)信標(biāo)節(jié)點(diǎn)組成的四面體內(nèi),重復(fù)這種測試,直到監(jiān)聽到所有信標(biāo)節(jié)點(diǎn)的組合或者是達(dá)到了要求的精度;最后,計(jì)算包含未知節(jié)點(diǎn)的所有四面體的重疊區(qū)域,將重疊區(qū)域的質(zhì)心作為未知節(jié)點(diǎn)的位置。
1.3.2 TDAPIT測試
若存在一個(gè)方向,沿著這個(gè)方向未知節(jié)點(diǎn)M會(huì)同時(shí)遠(yuǎn)離或接近四面體的四個(gè)頂點(diǎn),則M位于四面體外,否則M位于四面體內(nèi)部。
在隨機(jī)部署的傳感器網(wǎng)絡(luò)中,有一些節(jié)點(diǎn)偵聽到的信標(biāo)節(jié)點(diǎn)個(gè)數(shù)小于4,則這些節(jié)點(diǎn)不能進(jìn)行PIT測試;有些節(jié)點(diǎn)盡管接收到的信標(biāo)節(jié)點(diǎn)數(shù)目大于或等于4個(gè),也能進(jìn)行PIT測試,但是卻仍然無法判斷其位置。在測試中,利用如下方法判斷未知節(jié)點(diǎn)位置:
①通過未知節(jié)點(diǎn)接收到信標(biāo)節(jié)點(diǎn)的RSS值大小來判斷節(jié)點(diǎn)和信標(biāo)節(jié)點(diǎn)之間的距離。
②通過未知節(jié)點(diǎn)的鄰居節(jié)點(diǎn)來模擬未知節(jié)點(diǎn)的移動(dòng),即假設(shè)未知節(jié)點(diǎn)移動(dòng)到它的鄰居節(jié)點(diǎn)。
③通過對(duì)未知節(jié)點(diǎn)所有鄰居節(jié)點(diǎn)的模擬來近似地遍歷未知節(jié)點(diǎn)的所有方向。
④為了減少InToOut和OutToIn錯(cuò)誤,我們可以通過在節(jié)點(diǎn)上設(shè)置相應(yīng)的MAXrss和MINrss閾值來進(jìn)一步判斷。對(duì)于初步判定為在三角形外部的節(jié)點(diǎn),如果未知節(jié)點(diǎn)接收到的信號(hào)強(qiáng)度值大于設(shè)置的閾值,則認(rèn)為判定錯(cuò)誤;同樣,對(duì)于判定為在三角形內(nèi)部的節(jié)點(diǎn),如果接收到的信號(hào)強(qiáng)度小于設(shè)定的閾值,則認(rèn)為發(fā)生OutToIn錯(cuò)誤。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評(píng)論