一種利用多跳未知節(jié)點鄰居來提高定位精度的定位方法
【技術領域】
[0001] 本發(fā)明涉及一種未知節(jié)點定位方法,特別是一種利用多跳未知節(jié)點鄰居來提高定 位精度的定位方法,屬于無線傳感器網絡技術領域。
【背景技術】
[0002] 根據(jù)定位過程中是否需要測距,目前常用的定位算法可以分為基于測距的定位算 法和非測距的定位算法。由于非測距的定位算法不需要傳感器節(jié)點配置額外的硬件,同時 能量消耗低、便于部署、實現(xiàn)簡單,因此能滿足大多數(shù)傳感器網絡的需求。
[0003] 目前研究主要就集中在非測距的定位算法方面,國內外的研究者也提出了許多非 測距的無線傳感器網絡節(jié)點定位算法,下面例舉幾個算法并分別簡要分析它們的優(yōu)劣之 處。
[0004] Nicolescu D 提出的 DV-Ηορ 算法(Dragos Nioulescu and Badri Nath, "DV based positioning in ad hoc networks,',in Journal Telecommunication Systems,PP. 267-280, 2003.)是最早的非測距定位算法。該算法使用節(jié)點之間的跳數(shù)來衡 量節(jié)點之間的距離,在網絡分布均勻的情況下能夠達到較好的效果。但是當網絡中節(jié)點分 布不均勻時,平均每跳距離的計算將會出現(xiàn)比較大的偏差,定位精度也會受到較大的影響。
[0005] 在 DV-Ηορ 算法的基礎上,Agpal R N 提出了 Amorphous 算法(Nagpal R, Shrobe H and Bachrach J,''Organizaing a global coordirate systerm from local information on an AD Hoc sensor network[C]. in Proc. Int. Workshop on infremation Processing in Sensor Networks, 2003, LNCS2634, PP. 333-348. 2003.)。該算法使用節(jié)點的通信半徑作 為平均每跳距離,雖然網絡通信開銷降低并且計算簡單,但是定位誤差較大。
[0006] Simics N在同一時期提出了 BoundingBox算法(Slobodan N Simic and Shankar Sastry, "Distributed localization in wireless ad hoc networks,',in Technical Import,PP. 1-13, 2001.)。該算法將信標節(jié)點的通信區(qū)域設定為一個正方形,未知節(jié)點把其 所有直接信標節(jié)點鄰居的正方形通信區(qū)域的交集作為自己的可能位置區(qū)域,并取其中心作 為自己的定位位置,該算法實現(xiàn)簡單、計算簡便。但是該算法假設網絡中的各節(jié)點具有同樣 大小的正方形通信范圍,同時對網絡中信標節(jié)點的密度要求相對較高,所以在應用中不是 特別廣泛。
[0007] He T等人將三角形內點測試定理引入到無線傳感器網絡定位領域,提出了 APIT 算法(T. He, C. Huang, B. M. Blum, J. A. S tankovic, and T. Abdelzaher, "Range-free Localization Schemes in Large Scale Sensor Networks",in Proceedings of the9th Annual International Conference on Mobile Computing and Networking(MbiCom2003) ,PP. 81-95, 2003)。該算法采用近似三角形內點測試法來判斷未知節(jié)點是否位于以任意三個 信標節(jié)點為頂點所組成的三角形內,然后求出未知節(jié)點在其內的所有三角形的重疊區(qū)域作 為該未知節(jié)點的可能位置區(qū)域,并以其重心作為該未知節(jié)點的定位位置。APIT算法實現(xiàn)簡 單,但是因為進行PIT測試,所以網絡的通信開銷相對較大。且由于其定位覆蓋率有限,平 均定位精度有限。
[0008] 所以在節(jié)點及網絡能量有限的情況下,最大限度提高定位精度是一個很受關注的 問題。
【發(fā)明內容】
[0009] 本發(fā)明的發(fā)明目的在于:本發(fā)明針對現(xiàn)有技術對于節(jié)點及網絡的能量消耗與定位 精度不能同時達到滿意結果的情況,提出一種利用多跳未知節(jié)點來提高定位精度的定位方 法。
[0010] 本發(fā)明首先假定:
[0011] 1、網絡區(qū)域為矩形,網絡中節(jié)點總數(shù)量為n,其中錨點數(shù)量為m ;
[0012] 2、由于個體及測量誤差的存在,網絡中每個節(jié)點的最大通信半徑和最小通信半徑 是不相同的;
[0013] 3、每一個節(jié)點與網絡范圍內其他節(jié)點之間的跳數(shù)已知;
[0014] 4、為了工程計算的方便,所有節(jié)點的可能通信范圍與必然通信范圍都被當做圓來 處理。
[0015] 本發(fā)明的大概思路為:未知節(jié)點利用網絡中其它未知節(jié)點鄰居相對于自己的虛擬 通信圓以及未知節(jié)點鄰居的必然通信圓,分別與未知節(jié)點的當前可能位置區(qū)域之間的位置 關系來不斷縮小未知節(jié)點的可能位置區(qū)域,未知節(jié)點遍歷網絡中所有的未知節(jié)點鄰居,當 未知節(jié)點的PLA不再變化時,計算出此時未知節(jié)點當前可能位置區(qū)域的質心作為未知節(jié)點 的估計位置。
[0016] 在對本發(fā)明方法進行描述之前,先對一些名詞術語進行定義:
[0017] 未知節(jié)點:為未知坐標位置的節(jié)點。
[0018] 未知節(jié)點的可能位置區(qū)域:在本發(fā)明每一步驟操作之后均保證其為一個凸多邊形 形狀。
[0019] 未知節(jié)點的可能位置圓:包含未知節(jié)點的可能位置區(qū)域的所有頂點的最小圓。
[0020] 如2所示為未知節(jié)點U1的當前可能位置區(qū)域和可能位置圓的示意圖。
[0021] 未知節(jié)點的必然通信圓(在后文中有時簡稱為必然通信圓):圓心為未知節(jié)點的 當前坐標位置,半徑為該未知節(jié)點的最小通信半徑。
[0022] 未知節(jié)點鄰居相對于未知節(jié)點的虛擬通信圓(在后文中有時簡稱為虛擬通信 圓):圓心為未知節(jié)點鄰居的當前坐標位置,半徑為該未知節(jié)點鄰居的可能通信圓的半徑 加上彳Λ^,Α。丨集合中所有節(jié)點的最大通信半徑的累加和。
[0023] 如圖3所示為未知節(jié)點U1的必然通信圓和虛擬通信圓的示意圖。
[0024] 未知節(jié)點的可能通信圓:圓心為未知節(jié)點的當前坐標位置,半徑為該未知節(jié)點的 最大通信半徑。
[0025] _drf.,.Asj集合:從未知節(jié)點鄰居As(l彡s彡m)到未知節(jié)點U d(m+1彡d彡η)所經 過的跳數(shù)最少的路徑上的未知節(jié)點的集合,包括中間經過的全部未知節(jié)點但不包括作為起 始節(jié)點的Ud節(jié)點和作為目的節(jié)點的As節(jié)點。
[0026] 本發(fā)明的具體技術方案如下:
[0027] -種利用多跳未知節(jié)點鄰居來提高定位精度的定位方法,包括以下步驟:
[0028] 步驟一、未知節(jié)點搜集網絡中其他未知節(jié)點鄰居的當前可能位置區(qū)域信息以及距 離自己的跳數(shù)信息。
[0029] 步驟二、未知節(jié)點按照每個未知節(jié)點鄰居到自己的跳數(shù)從小到大的順序依次遍歷 自己的所有未知節(jié)點鄰居,未知節(jié)點對每個未知節(jié)點鄰居的處理過程具體如下:
[0030] A、求出未知節(jié)點鄰居相對于未知節(jié)點的當前虛擬通信圓;
[0031] B、若該虛擬通信圓與未知節(jié)點的當前可能位置區(qū)域有部分交集,則繼續(xù)執(zhí)行C步 驟,若該虛擬通信圓包含未知節(jié)點的當前可能位置區(qū)域,則不做任何處理,直接跳到下一個 未知節(jié)點鄰居;
[0032] C、找到未知節(jié)點的當前可能位置區(qū)域位于該虛擬通信圓外的所有頂點并將這些 頂點與虛擬通信圓的圓心分別連接成直線;
[0033] D、通過這些直線與虛擬通信圓的交點作虛擬通信圓的切線,這些切線分別將未知 節(jié)點的當前可能位置區(qū)域切分為兩部分;
[0034] E、未知節(jié)點分別以這些切線為界,消除遠離該虛擬通信圓的當前可能位置區(qū)域的 部分,將剩余部分作為更新后的當前可能位置區(qū)域。
[0035] 步驟三、未知節(jié)點按照每個未知節(jié)點鄰居到自己的跳數(shù)從小到大的順序依次遍歷 自己的所有跳數(shù)大于1的未知節(jié)點鄰居,未知節(jié)點對每個未知節(jié)點鄰居的處理過程具體如 下:
[0036] A、未知節(jié)點根據(jù)自己的當前可能位置區(qū)域求出當前可能位置圓,并求出未知節(jié)點 鄰居的必然通信圓;
[0037] B、若該必然通信圓與未知節(jié)點的當前可能位置區(qū)域有交集區(qū)域,則執(zhí)行C步驟, 若該必然通信圓與未知節(jié)點的當前可能位置區(qū)域無交集區(qū)域,則不做任何處理,直接跳到 下一個未知節(jié)點鄰居;
[0038] C、求出該必然通信圓與未知節(jié)點的當前可能位置圓的兩個交點所在直線,該直線 將未知節(jié)點的當前可能位置區(qū)域切分成兩部分;
[0039] D、消除靠近必然通信圓的當前可能位置區(qū)域的部分,將剩余部分作為更新后的當 前可能位置區(qū)域。
[0040] 步驟四、未知節(jié)點將自己更新后的當前可能位置區(qū)域廣播給其他未知節(jié)點鄰居, 其他未知節(jié)點鄰居根據(jù)本未知節(jié)點當前的可能位置區(qū)域更新自己的可能位置區(qū)域,然后再 分別將結果廣播給本未知節(jié)點,如此反復計算,一直到網絡中所有未知節(jié)點的可能位置區(qū) 域不再變化。
[0041] 步驟五、未知節(jié)點計算最后得到的可能位置區(qū)域的質心坐標,作為該未知節(jié)點的 估計位置。
[0042] 綜上所述,由于采用了上述技術方案,本發(fā)明的有益效果有以下幾點:
[0043] 1、利用網絡中所有多跳未知節(jié)點鄰居的位置信息以及跳數(shù)關系來進行未知節(jié)點 的可能位置區(qū)域的消除,有效地提高了定位精度。
[0044] 2、本發(fā)明提出的計算方法基于對凸多邊形的運算,計算量小,可以有效減小節(jié)點 及網絡的能量消耗,延長網絡的生命周期。
【附圖說明】
[0045] 圖1是本發(fā)明的閥體流程圖。
[0046] 圖2顯示了本發(fā)明中未知節(jié)點U1的可能位置區(qū)域Vpu(U 1)和可能位置圓V^(U1) 之間的關系。其中,4為可能位置圓V^(U1)的半徑。
[0047] 圖3顯示了本發(fā)明中未知節(jié)點U1的可能通信圓Vra(U 1)和必然通信圓Vra(U1) 之間的關系。其中,可能通信圓V ra(U1)的半徑為必然通信圓Vira(U1)的半徑為
為未知節(jié)點U1的最大通信半徑,.為未知節(jié)點U1的最小通信半徑。
[0048] 圖4顯示了本發(fā)明實施例中利用未知節(jié)點U2的可能通信圓Vrce(U 2)來縮小未知節(jié) 點U1的當前可能位置區(qū)域Va(U1)。
[0049] 圖5顯示了本發(fā)明實施例中利用未知節(jié)點U3相對于U1的虛擬通信圓V veeOJ1, U3) 來縮小未知節(jié)點U1的當前可能位置區(qū)域Vpu(U 1)。