專利名稱:一種可重構(gòu)的多移動機器人通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可重構(gòu)的多移動機器人通信方法。
技術(shù)背景為了協(xié)作完成某個任務(wù),多個移動機器人之間需要相互通信。當前多移 動機器人間的通信大多采用通過一個總控臺進行通信,屬于一對多的通信方 式。隨著機器人團隊規(guī)模的擴大和機器人移動速度的增加,目前的這種通信 方式明顯不能滿足要求,容錯性得不到保障,不利于多機器人團隊的高效協(xié) 作以及多機器人生存能力的提高。而可重構(gòu)的通信技術(shù)在通信過程中傳播的 路由信息較少,降低了大型通信網(wǎng)絡(luò)的存儲要求和通信載荷,能提高機器人 之間實時通信的性能和改善通信的容錯性,增加機器人團隊對環(huán)境的自適應(yīng) 性,有利于機器人團隊高效協(xié)同合作。發(fā)明內(nèi)容為了解決現(xiàn)有多機器人集中式通信方式存在的技術(shù)問題,本發(fā)明提供一 個可重構(gòu)的多移動機器人通信方法。本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案包括以下步驟機器人向周 圍機器人發(fā)送HELLO消息,根據(jù)接收到的HELLO消息,建立機器人簇結(jié)構(gòu),維 護鄰居機器人節(jié)點表, 一個簇結(jié)構(gòu)由一個簇頭和一個或多個簇成員構(gòu)成,簇 頭機器人到簇內(nèi)每一個機器人節(jié)點都有一個雙向通信鏈路;機器人進行數(shù)據(jù)發(fā)送時,節(jié)點在兩跳之內(nèi)利用鄰居機器人節(jié)點表的兩跳 拓撲信息來實現(xiàn),對于大于兩跳的目的機器人節(jié)點,由簇頭廣播發(fā)送路由請 求消息,尋找一個到終點的路由,根據(jù)尋找的路由完成數(shù)據(jù)發(fā)送。本發(fā)明的技術(shù)效果在于1) 本發(fā)明中機器人周期性的廣播HELLO消息,用以維持簇結(jié)構(gòu),而不是 像表驅(qū)動路由通信方式那樣維持路由表信息,有效地減少表驅(qū)動路由通信方 法周期性發(fā)送HELLO消息所造成的能量消耗。2) 本發(fā)明中采用按需路由方式,即根據(jù)需要發(fā)送RREQ,開始請求到目的 地的路由。此時不是全網(wǎng)洪泛發(fā)送,而是向簇頭發(fā)送RREQ,也只有簇頭能轉(zhuǎn)發(fā)RREQ,具有通信速度快、延時小、參與節(jié)點少的優(yōu)點,有利于多機器人間 信息實時交互。3) 本發(fā)明中機器人發(fā)送的RREQ消息中并不攜帶完整的源路由信息,這 樣節(jié)省了路由開銷的能量。4) 本發(fā)明利用HELLO消息中攜帶本機鄰居表信息組建兩跳拓撲數(shù)據(jù)結(jié)構(gòu), 可以進行局部的鏈路修復(fù),適合于多機器人在大范圍內(nèi)的信息交互。5) 本發(fā)明中機器人由于移動而丟失簇頭之后,可快速進行簇結(jié)構(gòu)重構(gòu), 保證機器人之間的通信暢通。
圖1為本發(fā)明中一個節(jié)點收到HELLO消息后修改鄰居表流程圖。 圖2為本發(fā)明中利用簇機制進行路由發(fā)現(xiàn)過程的示意圖。圖3為本發(fā)明中破損鏈路局部重構(gòu)示意圖。 圖4為本發(fā)明中鏈路局部重構(gòu)流程圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步的說明。 可重構(gòu)的多移動機器人通信方法具體步驟如下 第一步,數(shù)據(jù)包的截獲。數(shù)據(jù)包的截獲是機器人之間進行通信的基礎(chǔ)。在本通信方式中,數(shù)據(jù)包 具有不同類型,如HELLO包、普通數(shù)據(jù)包、RREQ包等,截獲的數(shù)據(jù)包不同, 處理方式不同,如截獲的數(shù)據(jù)包是普通數(shù)據(jù)包,則不做任何處理;截獲的數(shù) 據(jù)包是HELLO包,則創(chuàng)建和更新簇結(jié)構(gòu)或者更新本機的鄰居機器人節(jié)點表; 截獲的數(shù)據(jù)包是RREQ包,則判斷RREQ包的接收方是不是自身,從而做相應(yīng) 的打包轉(zhuǎn)發(fā)等操作。第二步,組建機器人的簇結(jié)構(gòu)組建機器人的簇結(jié)構(gòu)是通過周期性的發(fā)送HELLO消息(g陽ELL0包)來實 現(xiàn)的。HELLO消息還用來組建或更新每個機器人的鄰居機器人節(jié)點表。每個機 器人隔一段時間/向周圍機器人節(jié)點廣播HELLO消息,通知其周圍鄰近機器人自 己的存在。如果時間f固定,會造成網(wǎng)絡(luò)的阻塞,因此采用隨機策略廣播消息,確定方法為<formula>formula see original document page 6</formula>。其中<formula>formula see original document page 6</formula>為 一 個時間 常量,表示HELLO信息發(fā)送的一個間隔時間,m"d()是一個產(chǎn)生0 l之間的隨機 函數(shù)。每個機器人通過上面的HELLO消息的發(fā)送來維護一個鄰居機器人節(jié)點表。 鄰居機器人節(jié)點表包含的信息有鄰居的IP地址,鏈路的狀態(tài)(單向還是雙 向的)以及該鄰居的角色(是簇頭或者是成員)。它主要用于保存與本機相鄰 的機器人的狀態(tài)信息以及鏈路信息,另外在發(fā)送HELLO消息時把自己的鄰居表 發(fā)送給其它機器人,可以用于組建兩跳拓撲數(shù)據(jù)結(jié)構(gòu)。節(jié)點A在從它的鄰居B 收到一個HELLO包,節(jié)點A按流程圖1修改自身的鄰居表。各機器人在維護自身鄰居機器人節(jié)點表時,就同時組建了機器人的簇結(jié) 構(gòu)。兩個機器人之間組建簇關(guān)系是根據(jù)"最小IP"原則,即IP小的機器人充 當簇頭;當?shù)谌_機器人加入該簇結(jié)構(gòu)的時候,根據(jù)"先到先得"的原則,如 果該機器人的IP在三臺機器人中是最小的,也不會重新組建簇結(jié)構(gòu),而是加 入已有的簇結(jié)構(gòu),在一個通信網(wǎng)簇結(jié)構(gòu)中,簇頭機器人到簇內(nèi)每一個機器人 節(jié)點都有一個雙向通信鏈路。機器人有三種狀態(tài)簇頭,簇成員,未定狀態(tài)。 每個機器人初始化的時候都是未定狀態(tài)。鄰居表的信息存在一個過期時間,如果在過期時間t內(nèi)沒有收到己登記 機器人發(fā)送的HELLO包,則刪除該機器人的記錄項。這種機制可以保證機器 人自身對周圍環(huán)境有較靈敏的感知度。時間間隔設(shè)為<formula>formula see original document page 6</formula> 是允許丟失的HELL0信息的數(shù)目,&//。/她,/為一個時間常量。當一個機器人節(jié)點附近的拓撲穩(wěn)定時,該機器人節(jié)點的鄰居表會立刻完善所有到自身有雙向或單向鏈路的所有機器人節(jié)點的信息。第三步,發(fā)送數(shù)據(jù)包時進行路由發(fā)現(xiàn)路由發(fā)現(xiàn)是機器人節(jié)點S獲得一個到D的源路由,然后發(fā)送一個包到終 點D的機制。圖2所示為利用簇機制進行路由發(fā)現(xiàn)的過程。本通信方法在路 由發(fā)現(xiàn)過程中,只有簇頭廣播發(fā)送RREQ(路由請求消息),尋找一個到終點的 源路由。這種簇機制使得參與路由發(fā)現(xiàn)的機器人節(jié)點數(shù)顯著地減少,不像其 他通信方法那樣,全網(wǎng)廣播RREQ尋找到終點的路由。路由發(fā)現(xiàn)以后,數(shù)據(jù)包 就可以發(fā)送。第四步,簇結(jié)構(gòu)重構(gòu)機器人的移動或破損,都會使機器人的簇結(jié)構(gòu)發(fā)生變化,為了使機器人 保持通信暢通,需進行簇結(jié)構(gòu)的重建,簇結(jié)構(gòu)的重建過程如下① 如果一個未定狀態(tài)機器人從一個簇頭機器人收到HELLO消息,且該機 器人與該簇頭機器人之間有雙向通信鏈路,則該機器人會加入該簇頭機器人 所在的簇結(jié)構(gòu),并設(shè)置自身的狀態(tài)為簇成員。② 某個機器人成員在一定時間以后如果沒有收到簇頭機器人再次發(fā)送來 的消息,則認為簇頭丟失,簇成員機器人自動改為未定狀態(tài),然后進行新一 輪的簇頭發(fā)現(xiàn),進行簇結(jié)構(gòu)重構(gòu)。③ 某個未定狀態(tài)機器人在一定時間以后仍然沒有加入任何簇結(jié)構(gòu),則它 自動變?yōu)榇仡^,等待其它機器人的加入。簇結(jié)構(gòu)重構(gòu)的規(guī)則如下為了避免頻繁的改變簇頭而增加簇結(jié)構(gòu)的動蕩,如果簇頭機器人之間的 距離很近,且超過規(guī)定的時間時,則其中一個機器人將會丟失簇頭的角色。當簇頭機器人由于離開本簇范圍或者損壞而不能參與簇結(jié)構(gòu)的管理時, 簇成員會進行新一輪的簇頭機器人選舉過程,選出新的簇頭機器人來管理本 簇。機器人在周期性的發(fā)送HELLO消息的同時,每個機器人節(jié)點都在本地維 護了一個鄰居機器人節(jié)點表,可將其鄰居表發(fā)送給其所有的鄰居。理論上講,每個機器人節(jié)點都可以維護一個距離自己;t跳的鄰居表,它記錄了該網(wǎng)絡(luò)所能收集到的A跳內(nèi)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)。不過為提高獲得的拓撲結(jié)構(gòu) 信息的準確性,同時盡量降低發(fā)送HELLO包的系統(tǒng)開銷,限定/t為2,稱為 兩跳拓撲信息結(jié)構(gòu)。這樣利用兩跳拓撲結(jié)構(gòu),機器人節(jié)點在兩跳之內(nèi)的尋路 可以利用兩跳拓撲信息來實現(xiàn),而無須啟用路由發(fā)現(xiàn)過程;對于大于兩跳的 目的機器人節(jié)點,再啟動發(fā)送RREQ按需路由機制。這樣可以節(jié)省一部分路 由開銷,另外,兩跳拓撲數(shù)據(jù)結(jié)構(gòu)可以對路由過程中的破損鏈路進行局部修 復(fù)。當成員機器人由于自身的移動或損壞而離開一個簇結(jié)構(gòu),該簇的簇頭機 器人會根據(jù)反饋信息了解到這個情況,并更新自己保存的簇成員鏈表。簇頭 機器人在一段時間t內(nèi)沒有收到相應(yīng)簇成員的HELLO包,則認為該機器人成員已經(jīng)離開該簇結(jié)構(gòu),從鏈表中將其刪除。機器人的移動或破損,同時會使得鏈路鏈接狀態(tài)發(fā)生變化。如圖3所示, 數(shù)據(jù)包的傳輸路徑在3->4段發(fā)生了鏈路破損,此時發(fā)送路由請求消息或者傳 輸數(shù)據(jù)包的過程中,就需要鏈路的局部重構(gòu)來重構(gòu)破損的鏈路。重構(gòu)破損的 鏈路并不需要從源節(jié)點重新發(fā)起路由尋找過程;而通過機器人節(jié)點3的兩跳 拓撲信息繼續(xù)轉(zhuǎn)發(fā)路由請求消息。它從自身的兩跳信息發(fā)現(xiàn)可以通過機器人 節(jié)點2到達機器人4號,進而將消息轉(zhuǎn)發(fā)給2號機器人。鏈路的局部重構(gòu)流程圖如圖4所示。 一個轉(zhuǎn)發(fā)路由請求消息的機器人節(jié) 點,通過它自身的兩跳拓撲信息來修復(fù)破損的鏈路重構(gòu)機制,可以有效的減 少重新發(fā)起路由請求的延時和相應(yīng)的能量損耗,提高網(wǎng)絡(luò)通信的執(zhí)行效率。 圖中RRER意為路由請求錯誤消息。
權(quán)利要求
1、一種可重構(gòu)的多移動機器人通信方法,包括以下步驟機器人向周圍機器人發(fā)送HELLO消息,根據(jù)接收到的HELLO消息,建立機器人簇結(jié)構(gòu),維護鄰居機器人節(jié)點表;發(fā)送方機器人需要進行數(shù)據(jù)發(fā)送時,首先查詢兩跳拓撲信息結(jié)構(gòu),如果接收方機器人在兩跳范圍之內(nèi),則直接進行數(shù)據(jù)傳輸;如果接收方機器人在大于兩跳范圍之外,則發(fā)送方機器人先向自己的簇頭發(fā)送請求,然后再由簇頭機器人廣播發(fā)送路由請求消息,尋找到接收方機器人的路由,再進行數(shù)據(jù)發(fā)送。
2、 根據(jù)權(quán)利要求l所述的可重構(gòu)的多移動機器人通信方法,所述機器人 向周圍機器人HELLO消息的時間間隔為<formula>formula see original document page 2</formula>其中他/z。/"^v。/為一個時間常量,表示HELLO信息發(fā)送的一個間隔時間,raw/() 是一個產(chǎn)生0 1之間的隨機函數(shù)。
3、 根據(jù)權(quán)利要求l所述的可重構(gòu)的多移動機器人通信方法,所述鄰居機 器人節(jié)點表包含的信息有鄰居的IP地址,鏈路的狀態(tài)以及該鄰居的角色。
4、 根據(jù)權(quán)利要求l所述的可重構(gòu)的多移動機器人通信方法,所述組建簇 結(jié)構(gòu)時,兩個機器人之間IP小的機器人充當簇頭,當?shù)谌_機器人加入該簇 結(jié)構(gòu)的時候,成為該簇結(jié)構(gòu)的成員。
5、 根據(jù)權(quán)利要求1所述的可重構(gòu)的多移動機器人通信方法,所述機器人 如果在過期時間t內(nèi)沒有收到已登記機器人發(fā)送的HELLO包,則刪除該機器 人的i己錄J頁,時間間隔設(shè)為<formula>formula see original document page 2</formula>,其中/z五zxo —是允許丟失的HELL0信息的數(shù)目,//e/to/wto^/為一個時間常量。
6、 根據(jù)權(quán)利要求1所述的可重構(gòu)的多移動機器人通信方法,如果一個 未定狀態(tài)機器人從一個簇頭機器人收到HELLO消息,且該機器人與該簇頭機 器人之間有雙向通信鏈路,則該機器人加入該簇頭機器人所在的簇結(jié)構(gòu),并 設(shè)置自身的狀態(tài)為簇成員。
7、 根據(jù)權(quán)利要求1所述的可重構(gòu)的多移動機器人通信方法,如果機器人 簇成員在一定時間以后如果沒有收到簇頭機器人再次發(fā)送來的消息,則認為 簇頭丟失,簇成員機器人自動改為未定狀態(tài),然后進行新一輪的簇頭發(fā)現(xiàn), 進行簇結(jié)構(gòu)重構(gòu)。
8、 根據(jù)權(quán)利要求1所述的可重構(gòu)的多移動機器人通信方法,若某個未定 狀態(tài)機器人在一定時間以后仍然沒有加入任何簇結(jié)構(gòu),則它自動變?yōu)榇仡^, 等待其它機器人的加入。
9、 根據(jù)權(quán)利要求1所述的可重構(gòu)的多移動機器人通信方法,所述一個機 器人簇結(jié)構(gòu)由一個簇頭和一個或多個簇成員構(gòu)成,簇頭機器人到簇內(nèi)每一個 機器人節(jié)點都有一個雙向通信鏈路。
全文摘要
本發(fā)明公開了一種可重構(gòu)的多移動機器人通信方法,包括以下步驟機器人向周圍機器人發(fā)送HELLO消息,根據(jù)接收到的HELLO消息,建立機器人簇結(jié)構(gòu),維護鄰居機器人節(jié)點表;機器人進行數(shù)據(jù)發(fā)送時,節(jié)點在兩跳之內(nèi)利用鄰居機器人節(jié)點表的兩跳拓撲信息來實現(xiàn),對于大于兩跳的目的機器人節(jié)點,由簇頭廣播發(fā)送路由請求消息,尋找一個到終點的路由,根據(jù)尋找的路由完成數(shù)據(jù)發(fā)送。本發(fā)明采用可重構(gòu)的簇結(jié)構(gòu)和鏈路,具有通信速度快、延時小、參與節(jié)點少的優(yōu)點,有利于多機器人間信息實時交互。本發(fā)明能高效實現(xiàn)多機器人間的信息傳遞,為多機器人相互協(xié)作提供底層服務(wù)。
文檔編號H04L12/56GK101217488SQ20081003049
公開日2008年7月9日 申請日期2008年1月16日 優(yōu)先權(quán)日2008年1月16日
發(fā)明者任孝平, 余伶俐, 匡林愛, 文志強, 蔡自興, 磊 鄒, 陳愛斌, 陳白帆 申請人:中南大學(xué)