一種未知節(jié)點(diǎn)利用多跳錨點(diǎn)鄰居對(duì)其自身進(jìn)行定位的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及無線網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是一種在無線網(wǎng)絡(luò)中未知節(jié)點(diǎn)利用其多跳錨 點(diǎn)鄰居對(duì)其自身進(jìn)行定位的方法。
【背景技術(shù)】
[0002] 無線網(wǎng)和傳感網(wǎng)在機(jī)場(chǎng)中的應(yīng)用非常普遍,這些應(yīng)用對(duì)位置信息的依賴也越來越 嚴(yán)重,因此依托于這類網(wǎng)絡(luò)的定位方法一直很受重視。目前,一般把無線傳感器網(wǎng)絡(luò)的節(jié) 點(diǎn)定位算法分為兩類:一類是基于測(cè)量距離(range-based)的定位方法;另一種是非測(cè)距 (range-free)的定位方法?;跍y(cè)距的定位方法雖然定位精度高,但一般需要專門的硬件 來實(shí)現(xiàn)對(duì)節(jié)點(diǎn)間的距離或角度的測(cè)量,成本較高;而非測(cè)距定位方法雖然定位精度有限,但 由于不需要額外的硬件支撐,因此成本較低。由于不同的應(yīng)用對(duì)定位精度有不同的要求, 非測(cè)距定位算法能夠滿足很多應(yīng)用系統(tǒng)對(duì)定位精度的要求,且其成本最低,因此這類算法 越來越受到青睞。然而,現(xiàn)有非測(cè)距定位算法的定位精度都很有限,比如:Bounding-Box、 DV-HOP、APIT、SOM等等,它們的定位精度都不高,這限制了這些方法在實(shí)際系統(tǒng)中的應(yīng)用。
[0003]在 2002 年由Simic提出的Bounding-Box算法(SimicS.,andSastryS.: 'Distributedlocalizationinwirelessadhocnetworks' ,UCBerkeley,Tech. R印.,UCB/ERLM02/26,2002)屬于非測(cè)距算法,通過求未知節(jié)點(diǎn)的直接錨點(diǎn)鄰居的輻射 范圍的交集實(shí)現(xiàn)了對(duì)未知節(jié)點(diǎn)的定位。它首先將未知節(jié)點(diǎn)的直接錨點(diǎn)鄰居的輻射范圍簡(jiǎn)化 為一個(gè)正方形,然后求出未知節(jié)點(diǎn)的所有直接錨點(diǎn)鄰居的正方形輻射范圍的重疊區(qū)域,并 將重疊區(qū)域的中心作為未知節(jié)點(diǎn)的位置。Bounding-Box算法簡(jiǎn)化了定位計(jì)算,但是它的定 位精度和定位覆蓋率都不高。
[0004]DV-hop算法是Niculescu于2003年提出的非測(cè)距定位算法(NiculescuD.and NathB. :'DVbasedpositioninginadhocnetworks'Telecommun.Syst., 2003, 22, (1-4),pp. 267-280)。該算法由3個(gè)階段組成:首先,通過鄰居發(fā)現(xiàn)算法讓每個(gè)錨節(jié)點(diǎn)獲 得除自己以外的其他每一個(gè)錨節(jié)點(diǎn)距離自己的跳數(shù),并讓每個(gè)未知節(jié)點(diǎn)獲得每一個(gè)錨節(jié)點(diǎn) 距離自己的跳數(shù);其次,每個(gè)錨節(jié)點(diǎn)分別計(jì)算除自己以外的其他每一個(gè)錨節(jié)點(diǎn)到自己的平 均每跳距離,并將該信息發(fā)送給它周邊的未知節(jié)點(diǎn),未知節(jié)點(diǎn)則以距離自己的跳數(shù)最少且 最先收到消息的錨點(diǎn)計(jì)算所得的平均每跳距離作為各錨點(diǎn)到自己的平均每跳距離,并乘以 相應(yīng)的跳數(shù)得到各錨點(diǎn)距離自己的估計(jì)距離;最后使用三邊測(cè)量法確定節(jié)點(diǎn)的位置。該方 法的定位覆蓋率得到了較大提高,但該方法所達(dá)到的定位精度也不高,應(yīng)用范圍有限。
[0005]APIT算法是Tian在2003年提出的非測(cè)距定位算法,并于2005年發(fā)表在ACM Trans.Embed.Comput.Syst上(HeT. ,HuangC. ,BlumB.M. ,Stankovic,J.A. ,and Abdelzaher,T.F. :'Rangefreelocalizationanditsimpactonlargescalesensor networks',ACMTrans.EmbedComput.Syst. , 2005, 4, (4),pp. 877-906.)。該算法 首先收集未知節(jié)點(diǎn)所有鄰居錨節(jié)點(diǎn)的信息,然后測(cè)試未知節(jié)點(diǎn)是否位于不同的三個(gè)錨節(jié)點(diǎn) 組成的三角形內(nèi),計(jì)算所有包含該未知節(jié)點(diǎn)的三角形的重疊區(qū)域,最后用該區(qū)域的質(zhì)心作 為未知節(jié)點(diǎn)的坐標(biāo)。該方法獲得了較高的精度,但是其定位覆蓋率有限。尤其對(duì)于那些不 在任何由三個(gè)錨點(diǎn)組成的三角形內(nèi)的未知節(jié)點(diǎn),該方法無法定位。
[0006]S0M算法(Giorgetti,G.,Gupta,S.K.,andManes,G. : 'Wireless localizationusingselforganizingmaps,.Inti.Conf.onInformationprocessing insensornetworks, (IPSN),Cambridge,MA,USA,Aptil, 2007))是Giorgetti在 2007年提出的非測(cè)距定位算法。該算法利用全網(wǎng)絡(luò)的節(jié)點(diǎn)間的跳數(shù)關(guān)系,并通過機(jī)器學(xué)習(xí) 的方法實(shí)現(xiàn)了對(duì)節(jié)點(diǎn)的位置估計(jì)。該方法提高了定位覆蓋率,且其定位精度也有大幅提升, 但依然無法滿足一些需要較高定位精度的應(yīng)用,且該方法需要集中計(jì)算,通信開銷和計(jì)算 開銷都較大。
[0007] 綜上,BoundingBox,DV-H0P,APIT等方法定位精度都不高且定位覆蓋率也不能 滿足應(yīng)用需要,S0M的定位覆蓋率雖然有提高,但不能實(shí)現(xiàn)分布式計(jì)算,且由于需要收集全 網(wǎng)絡(luò)節(jié)點(diǎn)間的跳數(shù)關(guān)系,通信量大,計(jì)算復(fù)雜。
[0008] 在民航領(lǐng)域,各種無線網(wǎng)的應(yīng)用非常普及,許多應(yīng)用需要較高精度的位置信息,但 又不必花費(fèi)專門硬件去實(shí)現(xiàn)精確定位,這就為無須任何輔助定位設(shè)備的適用于固定或者移 動(dòng)終端定位的非測(cè)距定位方法提供了廣闊的應(yīng)用空間。本發(fā)明正是在這樣一種應(yīng)用和需求 背景下提出的。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的發(fā)明目的在于:針對(duì)上述存在的問題,提供一種在無線網(wǎng)絡(luò)中未知節(jié)點(diǎn) 利用其多跳錨點(diǎn)鄰居對(duì)其自身進(jìn)行定位的方法,特別適用于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位,不 需要額外的硬件支持,可以較大幅度地提高定位精度和定位覆蓋率。
[0010] 本發(fā)明將實(shí)際場(chǎng)景中部署的節(jié)點(diǎn)分為兩類:一類是錨點(diǎn),即已知自身位置坐標(biāo)的 節(jié)點(diǎn),比如:帶有GPS的節(jié)點(diǎn),標(biāo)記為為-JMU^ ;另一類是未知節(jié)點(diǎn),即不知道自身位置 坐標(biāo)的節(jié)點(diǎn),標(biāo)記為,它們需要借助于某種定位方法來實(shí)現(xiàn)對(duì)自身的定位。本發(fā) 明所指節(jié)點(diǎn)包含錨點(diǎn)(錨節(jié)點(diǎn))和未知節(jié)點(diǎn)。
[0011] 本發(fā)明還給出了虛擬輻射范圍(縮寫為VRR其值表示為1(4))的定義:某個(gè)錨 點(diǎn)為-相對(duì)于某個(gè)未知節(jié)點(diǎn)R的虛擬輻射范圍是這樣一個(gè)圓范圍--該圓的中心坐標(biāo)就是 為-所在的位置坐標(biāo),該圓的半徑是kR。其中k是為-到珥的跳數(shù),R是所有節(jié)點(diǎn)的實(shí)際輻射 半徑的最大值,通常所有節(jié)點(diǎn)(包括錨點(diǎn)和未知節(jié)點(diǎn))的實(shí)際輻射半徑取相同值。
[0012] 錨點(diǎn)的虛擬輻射范圍是一個(gè)相對(duì)的概念,錨點(diǎn)只有相對(duì)于某個(gè)未知節(jié)點(diǎn)才具有虛 擬輻射范圍。對(duì)于不同的未知節(jié)點(diǎn)而言,同一錨點(diǎn)的虛擬輻射范圍可能是不同的。此外,當(dāng) 某錨點(diǎn)是某未知節(jié)點(diǎn)的一跳鄰居時(shí),則該錨點(diǎn)相對(duì)于該未知節(jié)點(diǎn)的虛擬輻射范圍就是其實(shí) 際輻射范圍。
[0013] 概括地說,本發(fā)明方法通過引入未知節(jié)點(diǎn)Ui的n跳錨點(diǎn)鄰居~相對(duì)于該未知節(jié)點(diǎn) 的虛擬輻射范圍,從而將定位問題轉(zhuǎn)化為求該未知節(jié)點(diǎn)的所有n跳錨點(diǎn)鄰居相對(duì)于該未知 節(jié)點(diǎn)的虛擬輻射范圍的交疊區(qū)域的問題;這個(gè)交疊區(qū)域就是M在當(dāng)前時(shí)刻只可能出現(xiàn)的 可能位置區(qū)域(縮寫為PLA),當(dāng)前時(shí)刻M不可能出現(xiàn)在該區(qū)域以外的地方。該可能位置區(qū) 域可以表示為其值表示為?。最后求出交疊區(qū)域的質(zhì)心坐標(biāo)作為 該未知節(jié)點(diǎn)的估計(jì)位置。
[0014] 本發(fā)明的方法具體如下: 一種未知節(jié)點(diǎn)利用其多跳錨點(diǎn)鄰居對(duì)其自身進(jìn)行定位的方法,包括如下步驟: 步驟一、通過鄰居發(fā)現(xiàn)技術(shù),未知節(jié)點(diǎn)收集距離自己n跳以內(nèi)的全部錨點(diǎn)鄰居的位置 信息以及跳數(shù)信息k(1 <k<n),并確定這些錨點(diǎn)鄰居相對(duì)于自己的虛擬輻射范圍。
[0015] 步驟二、未知節(jié)點(diǎn)將整個(gè)網(wǎng)絡(luò)區(qū)域作為自己的初始可能位置區(qū)域。
[0016] 步驟三、未知節(jié)點(diǎn)從小跳數(shù)到大跳數(shù)依次遍歷自己的所有錨點(diǎn)鄰居,分別求出這 些錨點(diǎn)鄰居相對(duì)于自己的虛擬輻射范圍與自己的當(dāng)前可能位置區(qū)域的交疊區(qū)域作為自己 的更新的可能位置區(qū)域。
[0017] 步驟四、未知節(jié)點(diǎn)計(jì)算自己最后得到的可能位置區(qū)域的質(zhì)心坐標(biāo),并以該質(zhì)心坐 標(biāo)作為自己的估計(jì)位置。
[0018] 求未知節(jié)點(diǎn)的可能位置區(qū)域的第一種優(yōu)選方法:當(dāng)未知節(jié)點(diǎn)功能較弱時(shí),比如: 采用類似8051的普通單片機(jī),未知節(jié)點(diǎn)將把距離自己k跳的錨點(diǎn)鄰居相對(duì)于自己的虛擬輻 射范圍設(shè)定為以該錨點(diǎn)鄰居所在處為中心、邊長(zhǎng)為2kR的正方形區(qū)域,該正方形區(qū)域的邊 與x軸或y軸平行。則最后得到的該未知節(jié)點(diǎn)的可能位置區(qū)域?yàn)槠渌绣^點(diǎn)鄰居相對(duì)于自 己的虛擬輻射范圍(為正方形區(qū)域)的交疊區(qū)域。其中,R為所有節(jié)點(diǎn)的真實(shí)輻射范圍的半 徑的最大值。
[0019] 求未知節(jié)點(diǎn)的可能位置區(qū)域的第二種優(yōu)選方法:當(dāng)未知節(jié)點(diǎn)的計(jì)算能力較強(qiáng)時(shí), 比如采用16位或32位單片機(jī)時(shí),則先將整個(gè)無線網(wǎng)絡(luò)區(qū)域劃分成密集的網(wǎng)格并給每個(gè)網(wǎng) 格賦予一個(gè)唯一編號(hào),未知節(jié)點(diǎn)的每個(gè)錨點(diǎn)鄰居相對(duì)于自己的虛擬輻射范圍與自己的當(dāng)前 可能位置區(qū)域的交疊區(qū)域就是自己的更新的可能位置區(qū)域。則最后得到的該未知節(jié)點(diǎn)I的 可能位置區(qū)域?yàn)樵谄涿總€(gè)錨點(diǎn)鄰居相對(duì)于自己的虛擬輻射范圍內(nèi)都出現(xiàn)過的網(wǎng)格的集合。
[0020] 求未知節(jié)點(diǎn)的可能位置區(qū)域的第三種優(yōu)選方法:當(dāng)未知節(jié)點(diǎn)采用功能強(qiáng)大的處理 器時(shí),比如ARM類型的處理器,當(dāng)所述錨點(diǎn)鄰居相對(duì)于該未知節(jié)點(diǎn)的跳數(shù)為k時(shí),則將這些 錨點(diǎn)鄰居相對(duì)于該未知節(jié)點(diǎn)的虛擬輻射范圍設(shè)為半徑為kR的圓范圍,圓心為這些錨點(diǎn)所 在的位置坐標(biāo),R是所有節(jié)點(diǎn)的真實(shí)輻射范圍的半徑的最大值。則最后所得的未知節(jié)點(diǎn)的 可能位置區(qū)域?yàn)槿舾蓷l圓弧所圍成的凸多邊形區(qū)域,將該凸多邊形區(qū)域中每條圓弧的兩個(gè) 端點(diǎn)直接相連,從而形成一個(gè)凸多邊形。這種求未知節(jié)點(diǎn)的可能位置區(qū)域的方法雖然舍棄 了部分扇形區(qū)域,但該方法的估計(jì)誤差相對(duì)較低,因?yàn)樗辉谧詈笠徊竭M(jìn)行了合理的舍棄, 并不影響之前的精確計(jì)算。
[0021] 優(yōu)選其中一種求未知節(jié)點(diǎn)估計(jì)位置的方法:取未知節(jié)點(diǎn)最后得到的可能位置區(qū)域 的所有頂點(diǎn)的X軸坐標(biāo)的平均值