一種無時(shí)間同步的環(huán)路輔助水下定位方法
【專利摘要】本發(fā)明公開了一種無時(shí)間同步的環(huán)路輔助水下定位方法,首先每個(gè)節(jié)點(diǎn)通過發(fā)送一次HELLO消息與一次測(cè)距消息,完成鏈路對(duì)稱性探測(cè)以及獲取對(duì)稱鏈路長(zhǎng)度。然后,水面錨節(jié)點(diǎn)發(fā)送一次自身坐標(biāo)信息,利用距離與坐標(biāo)信息完成部分節(jié)點(diǎn)的定位,得到定位的節(jié)點(diǎn)亦發(fā)送一次自身坐標(biāo)信息,進(jìn)行迭代定位。最后,針對(duì)仍未得到定位節(jié)點(diǎn)采用環(huán)路輔助方法,得到非對(duì)稱鏈路連接的鄰居節(jié)點(diǎn)的坐標(biāo)與距離,并借此完成定位。得到定位后的節(jié)點(diǎn)將發(fā)送一次自身坐標(biāo)信息,引發(fā)新的迭代過程,進(jìn)一步擴(kuò)大定位覆蓋面,并完成整個(gè)定位過程。本發(fā)明可以滿足高精度、高覆蓋面的定位需求。在無時(shí)間同步的條件下,有效消除水下非對(duì)稱鏈路對(duì)節(jié)點(diǎn)定位的影響。
【專利說明】—種無時(shí)間同步的環(huán)路輔助水下定位方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于水下聲通信【技術(shù)領(lǐng)域】,涉及一種水下聲通信傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)定位方法,具體涉及一種無時(shí)間同步的環(huán)路輔助水下定位方法。
【背景技術(shù)】
[0002]隨著人類科學(xué)技術(shù)的發(fā)展,陸地可開采的資源日漸匱乏,開發(fā)利用水下資源成為必然趨勢(shì)。其中水下聲通信傳感器網(wǎng)絡(luò)是一種探索水下世界的有效方式,具有覆蓋范圍廣、數(shù)據(jù)準(zhǔn)確實(shí)時(shí)以及操作靈活等優(yōu)點(diǎn),在各個(gè)領(lǐng)域有著廣泛的應(yīng)用前景。水下聲通信傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)的位置信息十分重要,結(jié)合了位置信息的傳感器數(shù)據(jù)更具有實(shí)際應(yīng)用價(jià)值。如何精確有效的獲取水下節(jié)點(diǎn)的位置信息成為水下聲通信傳感器網(wǎng)絡(luò)應(yīng)用的難題之一。
[0003]現(xiàn)有的水下定位技術(shù)包括無需測(cè)距的定位技術(shù)與基于測(cè)距的技術(shù),其中基于測(cè)距的定位技術(shù)絕大部分需要時(shí)間同步,而時(shí)間同步在水下環(huán)境中很難實(shí)現(xiàn)。無需測(cè)距的定位技術(shù)雖不需要時(shí)間同步,但是定位精度較低,難以滿足高精度應(yīng)用的需求。少量不需要時(shí)間同步的基于測(cè)距的定位技術(shù)分為基于達(dá)到時(shí)間差測(cè)距的定位技術(shù)以及基于雙向到達(dá)時(shí)間測(cè)距的定位技術(shù)?;谶_(dá)到時(shí)間差測(cè)距的定位技術(shù)難以應(yīng)用在大規(guī)模的水下網(wǎng)絡(luò)中,給實(shí)際應(yīng)用帶來限制?,F(xiàn)有的基于雙向到達(dá)時(shí)間測(cè)距的定位技術(shù)無法處理水下非對(duì)稱鏈路的測(cè)距問題,不能達(dá)到較高的定位覆蓋面。
【發(fā)明內(nèi)容】
[0004]為了解決上述的技術(shù)問題,本發(fā)明提供了一種無時(shí)間同步的環(huán)路輔助水下定位方法,其目的在于,有效避免時(shí)間同步,并實(shí)現(xiàn)大范圍網(wǎng)絡(luò)的精確定位。
[0005]本發(fā)明所采用的技術(shù)手段是:一種無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于,包括以下步驟:
[0006]步驟1:搭建水下聲通信傳感器網(wǎng)絡(luò),所述的水下聲通信傳感器網(wǎng)絡(luò)由兩種節(jié)點(diǎn)構(gòu)成:一種為普通節(jié)點(diǎn),另外一種為錨節(jié)點(diǎn),其中普通節(jié)點(diǎn)為需要定位的節(jié)點(diǎn),錨節(jié)點(diǎn)為已知位置信息的水面節(jié)點(diǎn);
[0007]步驟2:采用鏈路探測(cè)機(jī)制進(jìn)行鏈路探測(cè),首先利用包括普通節(jié)點(diǎn)和錨節(jié)點(diǎn)在內(nèi)的每個(gè)節(jié)點(diǎn)發(fā)送一次HELLO消息獲取該節(jié)點(diǎn)的上游節(jié)點(diǎn)號(hào),然后每個(gè)節(jié)點(diǎn)通過發(fā)送一次測(cè)距消息獲取鏈路對(duì)稱性狀態(tài)并依據(jù)雙向到達(dá)時(shí)間測(cè)距的原理得到對(duì)稱鏈路的長(zhǎng)度;
[0008]步驟3:利用每一個(gè)錨節(jié)點(diǎn)主動(dòng)發(fā)送一次坐標(biāo)信息,完成靠近水面錨節(jié)點(diǎn)并可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)的定位;
[0009]步驟4:步驟3中得到定位的普通節(jié)點(diǎn)也發(fā)送坐標(biāo)信息,進(jìn)入迭代定位過程,完成其他可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)的定位;
[0010]步驟5:判斷是否有未定位的普通節(jié)點(diǎn),
[0011]若無未定位的普通節(jié)點(diǎn),則完成定位過程;
[0012]若仍然有未定位的普通節(jié)點(diǎn),繼續(xù)下面的步驟6 ;[0013]步驟6:對(duì)于仍未得到定位的普通節(jié)點(diǎn),利用環(huán)路輔助定位機(jī)制尋找一個(gè)包含了未知節(jié)點(diǎn)和非對(duì)稱鏈路鏈接的鄰居節(jié)點(diǎn)的環(huán)路,環(huán)路中除了該未知長(zhǎng)度的非對(duì)稱鏈路之夕卜,其他鏈路長(zhǎng)度都可知,借助該環(huán)路的總延時(shí)和已知鏈路的長(zhǎng)度來估算非對(duì)稱鏈路的長(zhǎng)度,并加以利用對(duì)仍未得到定位的普通節(jié)點(diǎn)進(jìn)行定位;
[0014]步驟7:判斷步驟6中是否有新的普通節(jié)點(diǎn)得到定位,
[0015]若無新普通節(jié)點(diǎn)得到定位,則完成定位過程;
[0016]若有新普通節(jié)點(diǎn)得到定位,則得到定位的普通節(jié)點(diǎn)將發(fā)送坐標(biāo)信息進(jìn)行新的迭代過程,隨后完成定位過程。
[0017]作為優(yōu)選,步驟I中所述的水下聲通信傳感器網(wǎng)絡(luò)由兩種節(jié)點(diǎn)構(gòu)成:一種為普通節(jié)點(diǎn),另外一種為錨節(jié)點(diǎn),所述的需要定位的普通節(jié)點(diǎn)隨機(jī)布置在水下三維環(huán)境中,所述的錨節(jié)點(diǎn)均勻分布在水面上,每個(gè)錨節(jié)點(diǎn)都可以直接接受到GPS信號(hào)直接得到位置,并配備有水聲調(diào)制解調(diào)器與所述的普通節(jié)點(diǎn)通信,每個(gè)普通節(jié)點(diǎn)都可以通過水聲信道進(jìn)行通信。
[0018]作為優(yōu)選,所述的錨節(jié)點(diǎn)的數(shù)量少于所述的普通節(jié)點(diǎn)的數(shù)量。
[0019]作為優(yōu)選,步驟2中所述的鏈路探測(cè)機(jī)制,目的是在無時(shí)間同步條件下,獲取鏈路對(duì)稱性狀態(tài)與對(duì)稱鏈路長(zhǎng)度為后續(xù)定位階段服務(wù);包括普通節(jié)點(diǎn)和錨節(jié)點(diǎn)的每個(gè)節(jié)點(diǎn)都配備上游節(jié)點(diǎn)表和下游節(jié)點(diǎn)表,首先每個(gè)節(jié)點(diǎn)發(fā)送一次發(fā)包含自身節(jié)點(diǎn)號(hào)的HELLO消息,當(dāng)其余節(jié)點(diǎn)收到HELLO消息后解析出HELLO包中的節(jié)點(diǎn)號(hào)加入自己的上游節(jié)點(diǎn)表中,并記錄本地接收時(shí)間;每個(gè)節(jié)點(diǎn)在發(fā)送HELLO消息的同時(shí)需要記錄自身的本地發(fā)送時(shí)間,若節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)收不到HELLO消息,并且該節(jié)點(diǎn)上游節(jié)點(diǎn)表不為空,就發(fā)送測(cè)距消息,其余節(jié)點(diǎn)接收到測(cè)距消息后檢查上游節(jié)點(diǎn)號(hào)中是否有自己的節(jié)點(diǎn)號(hào),如果有則將發(fā)送節(jié)點(diǎn)號(hào)加入到自身下游節(jié)點(diǎn)表中,并根據(jù)時(shí)間計(jì)算對(duì)應(yīng)的鏈路長(zhǎng)度保存在下游表中;其中下游節(jié)點(diǎn)表中的節(jié)點(diǎn)與自己之間都是對(duì)稱鏈路。
[0020]作為優(yōu)選,所述的測(cè)距消息的格式包含了消息類型、發(fā)送節(jié)點(diǎn)號(hào)、上游節(jié)點(diǎn)號(hào)和處理時(shí)間,所述的處理時(shí)間為HELLO消息接收時(shí)間與測(cè)距消息發(fā)送時(shí)間的差值。
[0021]作為優(yōu)選,步驟3中所述的完成靠近水面錨節(jié)點(diǎn)并可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)的定位,采用的方法是錨節(jié)點(diǎn)直接定位方法,其具體實(shí)現(xiàn)過程為每個(gè)錨節(jié)點(diǎn)在鏈路檢測(cè)階段結(jié)束后發(fā)送一次位置信息,普通節(jié)點(diǎn)收到位置信息后就檢查節(jié)點(diǎn)號(hào)是否在下游節(jié)點(diǎn)表中,若在,則代表是對(duì)稱鏈路并將坐標(biāo)與距離加入定位列表中,當(dāng)定位列表中有3個(gè)投影不共線的錨節(jié)點(diǎn)坐標(biāo)時(shí)就可以得到定位;通過錨節(jié)點(diǎn)直接定位方法,能夠直接被錨節(jié)點(diǎn)定位的普通節(jié)點(diǎn)完成了定位,一些沒有得到定位的普通節(jié)點(diǎn)的定位列表中也有了部分定位
息待用。
[0022]作為優(yōu)選,步驟4中所述的迭代定位,其具體實(shí)現(xiàn)過程為:在錨節(jié)點(diǎn)直接定位方法中得到定位的普通節(jié)點(diǎn)會(huì)在定位之后發(fā)送一次位置信息,與錨節(jié)點(diǎn)直接定位方法類似,其余普通節(jié)點(diǎn)接收到定位信息就會(huì)加以處理,完善自己的定位列表,只要定位列表滿足了定位條件,該節(jié)點(diǎn)即可得到定位并發(fā)送一次位置信息,這樣依次迭代下去,通過迭代定位方法,其他可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)完成了定位;并且少量仍然未得到定位的普通節(jié)點(diǎn)的定位列表中也有了部分定位信息待用。
[0023]作為優(yōu)選,步驟6中所述的環(huán)路輔助定位機(jī)制,所述的水下聲通信傳感器網(wǎng)絡(luò)中的普通節(jié)點(diǎn)在等待設(shè)定時(shí)間T后仍然未得到定位,將首先檢查下游節(jié)點(diǎn)表,滿足下游節(jié)點(diǎn)表不為空的普通節(jié)點(diǎn)將會(huì)發(fā)送環(huán)路測(cè)距請(qǐng)求包,其余包括普通節(jié)點(diǎn)和錨節(jié)點(diǎn)的節(jié)點(diǎn)收到環(huán)路測(cè)距請(qǐng)求包后,對(duì)環(huán)路測(cè)距請(qǐng)求包不直接進(jìn)行轉(zhuǎn)發(fā),而是需要對(duì)環(huán)路測(cè)距包進(jìn)行修改,然后發(fā)送;若該節(jié)點(diǎn)發(fā)現(xiàn)自身與該發(fā)送環(huán)路測(cè)距請(qǐng)求包的普通節(jié)點(diǎn)之間為對(duì)稱鏈路,則將環(huán)路測(cè)距請(qǐng)求包修改為上游環(huán)路測(cè)距包;若該節(jié)點(diǎn)發(fā)現(xiàn)自身與該發(fā)送環(huán)路測(cè)距請(qǐng)求包的普通節(jié)點(diǎn)之間為非對(duì)稱鏈路并且該節(jié)點(diǎn)已經(jīng)得到定位,則將環(huán)路測(cè)距請(qǐng)求包修改為下游環(huán)路測(cè)距包;這樣可以讓對(duì)稱鏈路鏈接的一跳節(jié)點(diǎn)繼續(xù)尋找環(huán)路,從而完成對(duì)非對(duì)稱鏈路鏈接的上游節(jié)點(diǎn)的測(cè)距,而讓非對(duì)稱鏈路鏈接的一跳節(jié)點(diǎn)轉(zhuǎn)而尋找與源節(jié)點(diǎn)為對(duì)稱鏈路鏈接的節(jié)點(diǎn)并將自身的坐標(biāo)與距離信息傳遞到源節(jié)點(diǎn),從而完成對(duì)非對(duì)稱鏈路鏈接的下游節(jié)點(diǎn)的測(cè)距;上游環(huán)路測(cè)距包和下游環(huán)路測(cè)距包統(tǒng)稱為環(huán)路測(cè)距包;收到環(huán)路測(cè)距包的普通節(jié)點(diǎn)或錨節(jié)點(diǎn),首先檢查發(fā)送節(jié)點(diǎn)與自己之間是否為對(duì)稱鏈路,如果不是就繼續(xù)判斷發(fā)送者和自己是否都已經(jīng)得到定位,若還不滿足則直接丟棄;如果為對(duì)稱鏈路或者發(fā)送者和自己都已經(jīng)得到定位,則代表兩者之間的鏈路長(zhǎng)度可知,那么就再判斷自己是否是是目的節(jié)點(diǎn),如果不是目的節(jié)點(diǎn)就更新中繼信息和發(fā)送節(jié)點(diǎn)信息并轉(zhuǎn)發(fā),如果是目的節(jié)點(diǎn)就需要繼續(xù)判斷包的類型;若為上游環(huán)路測(cè)距包就進(jìn)一步判斷節(jié)點(diǎn)是否已經(jīng)定位,若已定位直接發(fā)送應(yīng)答包,若該節(jié)點(diǎn)未得到定位則保存消息并等到定位后再發(fā)應(yīng)答包,若為下游環(huán)路測(cè)距包就直接發(fā)應(yīng)答包,普通節(jié)點(diǎn)收到應(yīng)答包后即可得到定位信息。
[0024]本發(fā)明的創(chuàng)新之處在于:
[0025](I)少量的錨節(jié)點(diǎn)均勻分布在水面上,每個(gè)錨節(jié)點(diǎn)都可以直接接受到GPS信號(hào)直接得到位置。需要定位的普通節(jié)點(diǎn)隨機(jī)布置在水下三維環(huán)境中,組成水下聲通信傳感器網(wǎng)絡(luò);
[0026](2)采用鏈路探測(cè)機(jī)制,首先利用每個(gè)節(jié)點(diǎn)發(fā)送一次HELLO消息獲取節(jié)點(diǎn)的上游節(jié)點(diǎn)號(hào),然后每個(gè)節(jié)點(diǎn)通過發(fā)送一次測(cè)距消息獲取鏈路對(duì)稱性狀態(tài)并依據(jù)雙向到達(dá)時(shí)間測(cè)距的原理得到對(duì)稱鏈路的長(zhǎng)度;
[0027](3)采用錨節(jié)點(diǎn)直接定位與迭代定位結(jié)合的方式,首先由錨節(jié)點(diǎn)主動(dòng)發(fā)送坐標(biāo)信息,完成部分節(jié)點(diǎn)的定位,然后得到定位的節(jié)點(diǎn)也發(fā)送坐標(biāo)信息,進(jìn)入迭代定位過程,完成大部分節(jié)點(diǎn)的定位;
[0028](4)針對(duì)仍未得到定位的節(jié)點(diǎn),利用環(huán)路輔助定位機(jī)制尋找一個(gè)包含了未知節(jié)點(diǎn)和非對(duì)稱鏈路鏈接的鄰居節(jié)點(diǎn)的環(huán)路,環(huán)路中除了該未知長(zhǎng)度的非對(duì)稱鏈路之外,其他鏈路長(zhǎng)度都可知。借助該環(huán)路的總延時(shí)和已知鏈路的長(zhǎng)度來估算非對(duì)稱鏈路的長(zhǎng)度,并加以利用進(jìn)行定位。得到定位的節(jié)點(diǎn)將發(fā)送坐標(biāo)信息進(jìn)行新的迭代過程,完成整個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的定位;
[0029](5)針對(duì)測(cè)量誤差問題,在計(jì)算節(jié)點(diǎn)坐標(biāo)時(shí),采用了基于交點(diǎn)數(shù)目的位置估算方法。三個(gè)以參考節(jié)點(diǎn)為圓心,以對(duì)應(yīng)的鏈路長(zhǎng)度為半徑的圓的交點(diǎn)數(shù)目可能為0-6個(gè),根據(jù)不同的交點(diǎn)數(shù)目,采用不同的估算方式,得到優(yōu)化的節(jié)點(diǎn)坐標(biāo)。
[0030]本發(fā)明的有益效果在于:成功避免的時(shí)間同步,可實(shí)現(xiàn)大范圍網(wǎng)絡(luò)的定位。充分考慮到水下非對(duì)稱鏈路的影響并加以利用,有效提高了定位覆蓋面??梢杂行Ы档蜏y(cè)量誤差的影響,提高定位的精度。
【專利附圖】
【附圖說明】[0031 ]圖1:是本發(fā)明實(shí)施例的網(wǎng)絡(luò)結(jié)構(gòu)圖。
[0032]圖2:是本發(fā)明實(shí)施例的流程圖。
[0033]圖3:是本發(fā)明實(shí)施例的測(cè)距示意圖。
[0034]圖4:是本發(fā)明實(shí)施例的環(huán)路輔助定位示意圖。
【具體實(shí)施方式】
[0035]為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0036]水下聲通信傳感器網(wǎng)絡(luò)結(jié)構(gòu)為圖1所示,水下傳感器網(wǎng)絡(luò)由兩種節(jié)點(diǎn)構(gòu)成:一種為普通節(jié)點(diǎn),另外一種為錨節(jié)點(diǎn)。少量的錨節(jié)點(diǎn)均勻分布在水面上,每個(gè)錨節(jié)點(diǎn)都可以直接接受到GPS信號(hào)直接得到位置,并配備有水聲調(diào)制解調(diào)器與水下普通節(jié)點(diǎn)通信。需要定位的普通節(jié)點(diǎn)隨機(jī)布置在水下三維環(huán)境中,每個(gè)普通節(jié)點(diǎn)都可以通過水聲信道進(jìn)行通信。
[0037]本發(fā)明所描述的一種無時(shí)間同步的環(huán)路輔助水下定位方法主要流程如圖2所示:
[0038]步驟1:搭建水下聲通信傳感器網(wǎng)絡(luò),所述的水下聲通信傳感器網(wǎng)絡(luò)由兩種節(jié)點(diǎn)構(gòu)成:一種為普通節(jié)點(diǎn),另外一種為錨節(jié)點(diǎn),其中普通節(jié)點(diǎn)為需要定位的節(jié)點(diǎn),錨節(jié)點(diǎn)為已知位置信息的水面節(jié)點(diǎn);
[0039]步驟2:采用鏈路探測(cè)機(jī)制進(jìn)行鏈路探測(cè),首先利用包括普通節(jié)點(diǎn)和錨節(jié)點(diǎn)在內(nèi)的每個(gè)節(jié)點(diǎn)發(fā)送一次HELLO消息獲取該節(jié)點(diǎn)的上游節(jié)點(diǎn)號(hào),然后每個(gè)節(jié)點(diǎn)通過發(fā)送一次測(cè)距消息獲取鏈路對(duì)稱性狀態(tài)并依據(jù)雙向到達(dá)時(shí)間測(cè)距的原理得到對(duì)稱鏈路的長(zhǎng)度;
[0040]步驟3:利用每一個(gè)錨節(jié)點(diǎn)主動(dòng)發(fā)送一次坐標(biāo)信息,完成靠近水面錨節(jié)點(diǎn)并可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)的定位;
[0041]步驟4:步驟3中得到定位的普通節(jié)點(diǎn)也發(fā)送坐標(biāo)信息,進(jìn)入迭代定位過程,完成其他可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)的定位;
[0042]步驟5:判斷是否有未定位的普通節(jié)點(diǎn),
[0043]若無未定位的普通節(jié)點(diǎn),則完成定位過程;
[0044]若仍然有未定位的普通節(jié)點(diǎn),繼續(xù)下面的步驟6 ;
[0045]步驟6:對(duì)于仍未得到定位的普通節(jié)點(diǎn),利用環(huán)路輔助定位機(jī)制尋找一個(gè)包含了未知節(jié)點(diǎn)和非對(duì)稱鏈路鏈接的鄰居節(jié)點(diǎn)的環(huán)路,環(huán)路中除了該未知長(zhǎng)度的非對(duì)稱鏈路之夕卜,其他鏈路長(zhǎng)度都可知,借助該環(huán)路的總延時(shí)和已知鏈路的長(zhǎng)度來估算非對(duì)稱鏈路的長(zhǎng)度,并加以利用對(duì)仍未得到定位的普通節(jié)點(diǎn)進(jìn)行定位;
[0046]步驟7:判斷步驟6中是否有新的普通節(jié)點(diǎn)得到定位,
[0047]若無新普通節(jié)點(diǎn)得到定位,則完成定位過程;
[0048]若有新普通節(jié)點(diǎn)得到定位,則得到定位的普通節(jié)點(diǎn)將發(fā)送坐標(biāo)信息進(jìn)行新的迭代過程,隨后完成定位過程。
[0049]具體實(shí)施方案包括:
[0050]1、鏈路探測(cè)實(shí)施方案
[0051]本發(fā)明采用鏈路探測(cè)機(jī)制,目的是在無時(shí)間同步條件下,獲取鏈路對(duì)稱性狀態(tài)與對(duì)稱鏈路長(zhǎng)度為后續(xù)定位階段服務(wù)。包括普通節(jié)點(diǎn)和錨節(jié)點(diǎn)的每個(gè)節(jié)點(diǎn)都配備上游節(jié)點(diǎn)表和下游節(jié)點(diǎn)表,首先每個(gè)節(jié)點(diǎn)發(fā)送一次發(fā)包含自身節(jié)點(diǎn)號(hào)的HELLO消息。當(dāng)節(jié)點(diǎn)收到HELLO消息后解析出HELLO包中的節(jié)點(diǎn)號(hào)加入自己的上游節(jié)點(diǎn)表中。并記錄本地接收時(shí)間。每個(gè)節(jié)點(diǎn)在發(fā)送HELLO消息的同時(shí)需要記錄自身的本地發(fā)送時(shí)間。若節(jié)點(diǎn)在設(shè)定時(shí)間Thelltj wait內(nèi)收不到HELLO消息,并且該節(jié)點(diǎn)上游節(jié)點(diǎn)表不為空,就發(fā)送測(cè)距消息。測(cè)距格式包含了消息類型、發(fā)送節(jié)點(diǎn)號(hào)、上游節(jié)點(diǎn)信息(上游節(jié)點(diǎn)號(hào)和處理時(shí)間)以及處理時(shí)間(HELLO消息接收時(shí)間與測(cè)距消息發(fā)送時(shí)間的差值)。節(jié)點(diǎn)接收到測(cè)距消息后檢查上游節(jié)點(diǎn)號(hào)中是否有自己的節(jié)點(diǎn)號(hào),如果有則將發(fā)送節(jié)點(diǎn)號(hào)加入到自身下游節(jié)點(diǎn)表中,并根據(jù)時(shí)間計(jì)算對(duì)應(yīng)的鏈路長(zhǎng)度保存在下游表中。很明顯下游節(jié)點(diǎn)表中的節(jié)點(diǎn)與自己之間都是對(duì)稱鏈路。
[0052]如圖(3)所示,假設(shè)節(jié)點(diǎn)I與節(jié)點(diǎn)2之間是對(duì)稱鏈路,節(jié)點(diǎn)2發(fā)送HELLO包的本地時(shí)間為^,節(jié)點(diǎn)2接收到節(jié)點(diǎn)I的測(cè)距消息的本地時(shí)間力f節(jié)點(diǎn)I接收到節(jié)點(diǎn)2的HELLO包的本地時(shí)間為Tm,節(jié)點(diǎn)I發(fā)送測(cè)距消息的本地時(shí)間為T2。另外假設(shè)每個(gè)節(jié)點(diǎn)的發(fā)送時(shí)延為τ s,那么節(jié)點(diǎn)I與節(jié)點(diǎn)2之間的距離為:
[0053]
【權(quán)利要求】
1.一種無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于,包括以下步驟: 步驟1:搭建水下聲通信傳感器網(wǎng)絡(luò),所述的水下聲通信傳感器網(wǎng)絡(luò)由兩種節(jié)點(diǎn)構(gòu)成:一種為普通節(jié)點(diǎn),另外一種為錨節(jié)點(diǎn),其中普通節(jié)點(diǎn)為需要定位的節(jié)點(diǎn),錨節(jié)點(diǎn)為已知位置信息的水面節(jié)點(diǎn); 步驟2:采用鏈路探測(cè)機(jī)制進(jìn)行鏈路探測(cè),首先利用包括普通節(jié)點(diǎn)和錨節(jié)點(diǎn)在內(nèi)的每個(gè)節(jié)點(diǎn)發(fā)送一次HELLO消息獲取該節(jié)點(diǎn)的上游節(jié)點(diǎn)號(hào),然后每個(gè)節(jié)點(diǎn)通過發(fā)送一次測(cè)距消息獲取鏈路對(duì)稱性狀態(tài)并依據(jù)雙向到達(dá)時(shí)間測(cè)距的原理得到對(duì)稱鏈路的長(zhǎng)度; 步驟3:利用每一個(gè)錨節(jié)點(diǎn)主動(dòng)發(fā)送一次坐標(biāo)信息,完成靠近水面錨節(jié)點(diǎn)并可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)的定位; 步驟4:步驟3中得到定位的普通節(jié)點(diǎn)也發(fā)送坐標(biāo)信息,進(jìn)入迭代定位過程,完成其他可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)的定位; 步驟5:判斷是否有未定位的普通節(jié)點(diǎn), 若無未定位的普通節(jié)點(diǎn),則完成定位過程; 若仍然有未定位的普通節(jié)點(diǎn),繼續(xù)下面的步驟6 ; 步驟6:對(duì)于仍未得到定位的普通節(jié)點(diǎn),利用環(huán)路輔助定位機(jī)制尋找一個(gè)包含了未知節(jié)點(diǎn)和非對(duì)稱鏈路鏈接的鄰居節(jié)點(diǎn)的環(huán)路,環(huán)路中除了該未知長(zhǎng)度的非對(duì)稱鏈路之外,其他鏈路長(zhǎng)度都可知,借助該環(huán)路的總延時(shí)和已知鏈路的長(zhǎng)度來估算非對(duì)稱鏈路的長(zhǎng)度,并加以利用對(duì)仍未得到定 位的普通節(jié)點(diǎn)進(jìn)行定位; 步驟7:判斷步驟6中是否有新的普通節(jié)點(diǎn)得到定位, 若無新普通節(jié)點(diǎn)得到定位,則完成定位過程; 若有新普通節(jié)點(diǎn)得到定位,則得到定位的普通節(jié)點(diǎn)將發(fā)送坐標(biāo)信息進(jìn)行新的迭代過程,隨后完成定位過程。
2.根據(jù)權(quán)利要求1所述的無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于:步驟I中所述的水下聲通信傳感器網(wǎng)絡(luò)由兩種節(jié)點(diǎn)構(gòu)成:一種為普通節(jié)點(diǎn),另外一種為錨節(jié)點(diǎn),所述的需要定位的普通節(jié)點(diǎn)隨機(jī)布置在水下三維環(huán)境中,所述的錨節(jié)點(diǎn)均勻分布在水面上,每個(gè)錨節(jié)點(diǎn)都可以直接接受到GPS信號(hào)直接得到位置,并配備有水聲調(diào)制解調(diào)器與所述的普通節(jié)點(diǎn)通信,每個(gè)普通節(jié)點(diǎn)都可以通過水聲信道進(jìn)行通信。
3.根據(jù)權(quán)利要求1或2所述的無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于:所述的錨節(jié)點(diǎn)的數(shù)量少于所述的普通節(jié)點(diǎn)的數(shù)量。
4.根據(jù)權(quán)利要求1所述的無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于:步驟2中所述的鏈路探測(cè)機(jī)制,目的是在無時(shí)間同步條件下,獲取鏈路對(duì)稱性狀態(tài)與對(duì)稱鏈路長(zhǎng)度為后續(xù)定位階段服務(wù);包括普通節(jié)點(diǎn)和錨節(jié)點(diǎn)的每個(gè)節(jié)點(diǎn)都配備上游節(jié)點(diǎn)表和下游節(jié)點(diǎn)表,首先每個(gè)節(jié)點(diǎn)發(fā)送一次發(fā)包含自身節(jié)點(diǎn)號(hào)的HELLO消息,當(dāng)其余節(jié)點(diǎn)收到HELLO消息后解析出HELLO包中的節(jié)點(diǎn)號(hào)加入自己的上游節(jié)點(diǎn)表中,并記錄本地接收時(shí)間;每個(gè)節(jié)點(diǎn)在發(fā)送HELLO消息的同時(shí)需要記錄自身的本地發(fā)送時(shí)間,若節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)收不到HELLO消息,并且該節(jié)點(diǎn)上游節(jié)點(diǎn)表不為空,就發(fā)送測(cè)距消息,其余節(jié)點(diǎn)接收到測(cè)距消息后檢查上游節(jié)點(diǎn)號(hào)中是否有自己的節(jié)點(diǎn)號(hào),如果有則將發(fā)送節(jié)點(diǎn)號(hào)加入到自身下游節(jié)點(diǎn)表中,并根據(jù)時(shí)間計(jì)算對(duì)應(yīng)的鏈路長(zhǎng)度保存在下游表中;其中下游節(jié)點(diǎn)表中的節(jié)點(diǎn)與自己之間都是對(duì)稱鏈路。
5.根據(jù)權(quán)利要求4所述的無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于:所述的測(cè)距消息的格式包含了消息類型、發(fā)送節(jié)點(diǎn)號(hào)、上游節(jié)點(diǎn)號(hào)和處理時(shí)間,所述的處理時(shí)間為HELLO消息接收時(shí)間與測(cè)距消息發(fā)送時(shí)間的差值。
6.根據(jù)權(quán)利要求1所述的無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于:步驟3中所述的完成靠近水面錨節(jié)點(diǎn)并可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)的定位,采用的方法是錨節(jié)點(diǎn)直接定位方法,其具體實(shí)現(xiàn)過程為每個(gè)錨節(jié)點(diǎn)在鏈路檢測(cè)階段結(jié)束后發(fā)送一次位置信息,普通節(jié)點(diǎn)收到位置信息后就檢查節(jié)點(diǎn)號(hào)是否在下游節(jié)點(diǎn)表中,若在,則代表是對(duì)稱鏈路并將坐標(biāo)與距離加入定位列表中,當(dāng)定位列表中有3個(gè)投影不共線的錨節(jié)點(diǎn)坐標(biāo)時(shí)就可以得到定位;通過錨節(jié)點(diǎn)直接定位方法,能夠直接被錨節(jié)點(diǎn)定位的普通節(jié)點(diǎn)完成了定位,一些沒有得到定位的普通節(jié)點(diǎn)的定位列表中也有了部分定位信息待用。
7.根據(jù)權(quán)利要求6所述的無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于:步驟4中所述的迭代定位,其具體實(shí)現(xiàn)過程為:在錨節(jié)點(diǎn)直接定位方法中得到定位的普通節(jié)點(diǎn)會(huì)在定位之后發(fā)送一次位置信息,與錨節(jié)點(diǎn)直接定位方法類似,其余普通節(jié)點(diǎn)接收到定位信息就會(huì)加以處理,完善自己的定位列表,只要定位列表滿足了定位條件,該節(jié)點(diǎn)即可得到定位并發(fā)送一次位置信息,這樣依次迭代下去,通過迭代定位方法,其他可通過對(duì)稱鏈路進(jìn)行定位的普通節(jié)點(diǎn)完成了定位;并且少量仍然未得到定位的普通節(jié)點(diǎn)的定位列表中也有了部分定位信息待用。
8.根據(jù)權(quán)利要求1所述的無時(shí)間同步的環(huán)路輔助水下定位方法,其特征在于:步驟6中所述的環(huán)路輔助定位機(jī)制,所述的水下聲通信傳感器網(wǎng)絡(luò)中的普通節(jié)點(diǎn)在等待設(shè)定時(shí)間T后仍然未得到定位,將首先檢查下游節(jié)點(diǎn)表,滿足下游節(jié)點(diǎn)表不為空的普通節(jié)點(diǎn)將會(huì)發(fā)送環(huán)路測(cè)距請(qǐng)求包,其余包括普通節(jié)點(diǎn)和錨節(jié)點(diǎn)的節(jié)點(diǎn)收到環(huán)路測(cè)距請(qǐng)求包后,對(duì)環(huán)路測(cè)距請(qǐng)求包不直接進(jìn)行轉(zhuǎn)發(fā),而是需要對(duì)環(huán)路測(cè)距包進(jìn)行修改,然后發(fā)送;若該節(jié)點(diǎn)發(fā)現(xiàn)自身與該發(fā)送環(huán)路測(cè)距請(qǐng)求包的普通節(jié)點(diǎn)之間為對(duì)稱鏈路,則將環(huán)路測(cè)距請(qǐng)求包修改為上游環(huán)路測(cè)距包;若該節(jié)點(diǎn)發(fā)現(xiàn)自身與該發(fā)送環(huán)路測(cè)距請(qǐng)求包的普通節(jié)點(diǎn)之間為非對(duì)稱鏈路并且該節(jié)點(diǎn)已經(jīng)得到定位,則將環(huán)路測(cè)距請(qǐng)求包修改為下游環(huán)路測(cè)距包;上游環(huán)路測(cè)距包和下游環(huán)路測(cè)距包統(tǒng)稱為環(huán)路測(cè)距包; 收到環(huán)路測(cè)距包的普通節(jié)點(diǎn)或錨節(jié)點(diǎn),首先檢查發(fā)送節(jié)點(diǎn)與自己之間是否為對(duì)稱鏈路,如果不是就繼續(xù)判斷發(fā)送者和自己是否都已經(jīng)得到定位,若還不滿足則直接丟棄;如果為對(duì)稱鏈路或者發(fā)送者和自己都已經(jīng)得到定位,則代表兩者之間的鏈路長(zhǎng)度可知,那么就再判斷自己是否是是目的節(jié)點(diǎn),如果不是目的節(jié)點(diǎn)就更新中繼信息和發(fā)送節(jié)點(diǎn)信息并轉(zhuǎn)發(fā),如果是目的節(jié)點(diǎn)就需要繼續(xù)判斷包的類型;若為上游環(huán)路測(cè)距包就進(jìn)一步判斷節(jié)點(diǎn)是否已經(jīng)定位,若已定位直接發(fā)送應(yīng)答包,若該節(jié)點(diǎn)未得到定位則保存消息并等到定位后再發(fā)應(yīng)答包,若為下游環(huán)路測(cè)距包就直接發(fā)應(yīng)答包,普通節(jié)點(diǎn)收到應(yīng)答包后即可得到定位信息。
【文檔編號(hào)】H04W64/00GK104039010SQ201410288604
【公開日】2014年9月10日 申請(qǐng)日期:2014年6月24日 優(yōu)先權(quán)日:2014年6月24日
【發(fā)明者】李德識(shí), 張松, 陳健, 廖子龍 申請(qǐng)人:武漢大學(xué)