本發(fā)明屬于信息技術(shù)、機(jī)器人技術(shù)領(lǐng)域,涉及一種移動機(jī)器人的路徑規(guī)劃方法,特別涉及一種面向多機(jī)器人系統(tǒng)的全覆蓋路徑規(guī)劃方法。
背景技術(shù):
全覆蓋路徑規(guī)劃需要機(jī)器人經(jīng)過工作空間中的每一個位置,同時還需要躲避障礙物。單機(jī)器人和多機(jī)器人的全覆蓋路徑規(guī)劃都有著廣泛的應(yīng)用,例如家用清潔機(jī)器人,排雷機(jī)器人,草坪割草機(jī)器人和農(nóng)業(yè)自動收割機(jī)等等。
靜態(tài)環(huán)境下的完全遍歷路徑規(guī)劃方法已經(jīng)有了很多的解決方案,這些方案也被視為已知環(huán)境的離線算法。然而,在真實(shí)的應(yīng)用環(huán)境中,提前知道不發(fā)生變化的環(huán)境信息是不現(xiàn)實(shí)的。因此,利用傳感器實(shí)時感應(yīng)環(huán)境的在線算法更有實(shí)際意義。生成樹覆蓋的算法就是一種有效的在線算法,它可以逐步的生成一棵覆蓋所有可達(dá)區(qū)域的樹,并沿著樹的生長方向覆蓋所有自由空間。螺旋回溯算法也是在線算法,其提供了一種覆蓋被障礙物占據(jù)的柵格的改進(jìn)方法。hoang等(參考文獻(xiàn):h.h.viet,v.-h.dang,m.n.u.laskar,andt.chung,“ba*:anonlinecompletecoveragealgorithmforcleaningrobots,”appliedintelligence,vol.39,no.2,pp.217–235,2013)提出了在線版本的牛耕算法,它將可達(dá)區(qū)域劃分為一個一個的單元,并用a星算法將這些單元連接起來。
以上是一些單機(jī)器人的在線方法,基于這些方法也有衍生出一些多機(jī)器人的方法,例如多機(jī)器人生成樹算法,多機(jī)器人森林算法,多機(jī)協(xié)同的螺旋算法,多機(jī)器人牛耕算法等等。這些方法將任務(wù)分配給多機(jī)器人,并減少了整體的覆蓋時間。
盡管在線的完全遍歷路徑規(guī)劃有很多實(shí)現(xiàn)方案,但是幾乎沒有方案解決了未知且可變的環(huán)境下的多機(jī)器人路徑規(guī)劃?;谏锛钌窠?jīng)網(wǎng)絡(luò)的方法(參考文獻(xiàn):c.luoands.x.yang,“abioinspiredneuralnetworkforrealtimeconcurrentmapbuildingandcompletecoveragerobotnavigationinunknownenvironments,”ieeetransactionsonneuralnetworks,vol.19,no.7,pp.1279–1298,2008)可以解決未知且可變環(huán)境下的單機(jī)器人路徑規(guī)劃。它根據(jù)神經(jīng)元的活性值來生成全覆蓋路徑。然而,當(dāng)下一個節(jié)點(diǎn)無法行走時(例如,遇到了死鎖的情況),機(jī)器人必須原地等待,直到活性值衰減到比周圍節(jié)點(diǎn)低時,才能走出來。另一方面,基于生物激勵神經(jīng)網(wǎng)絡(luò)的方法不能保證逃離死鎖區(qū)域的路徑是最優(yōu)的。因此,在多機(jī)器人中拓展的效果也不盡如人意。
技術(shù)實(shí)現(xiàn)要素:
針對上述問題,本發(fā)明提出了一種在未知且可變的環(huán)境下的多機(jī)器人完全遍歷路徑規(guī)劃方法。本發(fā)明利用了生物激勵神經(jīng)網(wǎng)絡(luò)模型的優(yōu)勢,結(jié)合一種嶄新的回溯機(jī)制,合理的進(jìn)行多機(jī)器人之間的協(xié)同和任務(wù)分配,實(shí)現(xiàn)了覆蓋效率的提升。
本發(fā)明中,對于每一個機(jī)器人個體來說,都是先根據(jù)生物激勵神經(jīng)網(wǎng)絡(luò)模型,對沒有訪問過的區(qū)域進(jìn)行覆蓋;當(dāng)機(jī)器人走入死鎖區(qū)域的時候,它不再等待神經(jīng)元活性值的衰減,而是直接調(diào)用回溯機(jī)制,選擇合適的回溯節(jié)點(diǎn),從而逃離死鎖區(qū)域,去到下一個未覆蓋的區(qū)域進(jìn)行覆蓋。在離開死鎖區(qū)域去到新的回溯節(jié)點(diǎn)的過程,使用了動態(tài)a星的方法,在保證躲避障礙物的基礎(chǔ)上,尋找最短最優(yōu)的路徑。這種動態(tài)a星的方法可以在可變環(huán)境中實(shí)時的更新環(huán)境信息,并實(shí)時更新路徑代價,從而避開障礙物。對于多機(jī)器人系統(tǒng)來說,在回溯機(jī)制中選擇合適的回溯節(jié)點(diǎn)逃離死鎖時,本發(fā)明使用了基于市場機(jī)制的投標(biāo)方法。該投標(biāo)方法同時考慮了路徑的長度和機(jī)器人之間的沖突問題。
本發(fā)明的框架如圖1所示。起初,機(jī)器人并不知道環(huán)境的信息,環(huán)境中的動態(tài)或靜態(tài)障礙物,已經(jīng)訪問過的區(qū)域,沒有訪問過的區(qū)域等都是未知的。機(jī)器人通過傳感器逐漸的獲取局部信息,并覆蓋那些可以到達(dá)的區(qū)域。首先,每個機(jī)器人獨(dú)立的開展基于生物激勵神經(jīng)網(wǎng)絡(luò)模型的覆蓋。隨后,當(dāng)某個機(jī)器人到達(dá)了死鎖點(diǎn),他開始調(diào)用回溯機(jī)制,包括:
更新回溯列表,并尋找到候選的回溯節(jié)點(diǎn);
通過在多機(jī)器人系統(tǒng)中的投標(biāo)機(jī)制,確定最終的合適的回溯節(jié)點(diǎn);
規(guī)劃一條從死鎖點(diǎn)到回溯節(jié)點(diǎn)的最優(yōu)路徑,完成死鎖區(qū)域逃離;
逃離死鎖之后,機(jī)器人將繼續(xù)基于生物激勵神經(jīng)網(wǎng)絡(luò)模型的覆蓋,整個完全遍歷算法在回溯列表空后得以結(jié)束,即完成了整個區(qū)域的全覆蓋。
本發(fā)明的有益效果是:
1)本發(fā)明利用了生物激勵神經(jīng)網(wǎng)絡(luò)模型的優(yōu)勢,并結(jié)合一種嶄新的回溯機(jī)制,實(shí)現(xiàn)了多機(jī)器人之間的協(xié)同和任務(wù)分配,實(shí)現(xiàn)了覆蓋效率的提升。
2)本發(fā)明可以有效的覆蓋環(huán)境中所有的可達(dá)區(qū)域,同時任務(wù)分配也相對均衡,進(jìn)行多機(jī)器人的完全遍歷路徑規(guī)劃時可以有效的減少覆蓋的時間;
3)本發(fā)明采用了基于市場機(jī)制的任務(wù)分配方法,每個機(jī)器人獨(dú)立的完成各自的任務(wù),很少有沖突,具有良好的魯棒性和完備性。
附圖說明
圖1是面向多機(jī)器人系統(tǒng)的完全遍歷路徑規(guī)劃方法的流程圖;
圖2是傳統(tǒng)的對待回溯節(jié)點(diǎn)的定義示意圖;
圖3是新的回溯節(jié)點(diǎn)的選擇方式示例圖;
圖4是多機(jī)器人系統(tǒng)下的投標(biāo)機(jī)制流程圖;
圖5是四個機(jī)器人對環(huán)境進(jìn)行完全遍歷的路徑效果圖。
具體實(shí)施方式
下面通過具體實(shí)施例和附圖,對本發(fā)明做進(jìn)一步詳細(xì)說明。
本發(fā)明中的機(jī)器人工作在一個可變的環(huán)境中,這里考慮的是二維環(huán)境下的路徑規(guī)劃問題。整個工作空間被劃分為一個一個的小正方形(柵格)。每一個柵格(生物激勵神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元)的大小都等于機(jī)器人的執(zhí)行機(jī)構(gòu)的大小。對于掃地機(jī)器人來說,柵格的邊長等于掃地機(jī)器人底盤的直徑,為已知的。然而動態(tài)變化的環(huán)境信息在初始時是未知的,需要機(jī)器人在行走過程中通過傳感器去逐步的探測。
圖1是本發(fā)明的面向多機(jī)器人系統(tǒng)的完全遍歷路徑規(guī)劃方法的流程圖。這里將工作空間作為一個柵格地圖來處理。每個機(jī)器人通過傳感器感知環(huán)境信息,并得知周圍哪些柵格是被障礙物覆蓋的,哪些是自由的可達(dá)區(qū)域。為了盡可能減少能量和時間的消耗,機(jī)器人將盡可能的選擇短且轉(zhuǎn)向小的路徑。當(dāng)沒有遇到死鎖區(qū)域的時候,每個機(jī)器人按照自己的生物激勵神經(jīng)網(wǎng)絡(luò)模型進(jìn)行覆蓋。下一節(jié)點(diǎn)的選擇由神經(jīng)元的活性值及前一時刻機(jī)器人的位置而共同決定。每個機(jī)器人能夠向周圍的八個方向運(yùn)動(上,下,左,右,左上,左下,右上,右下)。這八個方向?qū)τ跈C(jī)器人的控制來說是相對方便的。死鎖的狀態(tài)即為周圍八個神經(jīng)元的活性值均比當(dāng)前節(jié)點(diǎn)的活性值低。例如,周圍的八個鄰居節(jié)點(diǎn),不是被覆蓋過了,就是被障礙物占據(jù)了。當(dāng)機(jī)器人運(yùn)動到這種死鎖的狀態(tài)時,當(dāng)前的上個節(jié)點(diǎn)被叫做死鎖點(diǎn)。
對于多機(jī)器人系統(tǒng)來說,每一個機(jī)器人都先根據(jù)生物激勵神經(jīng)網(wǎng)絡(luò)模型對未知區(qū)域進(jìn)行邊探索邊覆蓋。當(dāng)任何一個機(jī)器人進(jìn)入死鎖區(qū)域時,就會跳到回溯機(jī)制。該機(jī)制也可以理解為是利用空間換時間,通過維護(hù)一個回溯節(jié)點(diǎn)的列表,減少機(jī)器人在死鎖區(qū)域的計(jì)算和等待時間。因此,無論是計(jì)算復(fù)雜度還是時間消耗都會被有效的減少。
回溯機(jī)制中創(chuàng)新性主要體現(xiàn)在以下三個方面:
首先,當(dāng)機(jī)器人在建立和更新回溯列表時,不是傳統(tǒng)的沒有完全訪問的節(jié)點(diǎn)就被加入列表中,而是利用節(jié)點(diǎn)的空間位置信息進(jìn)行了一定的約束,減少了列表中有效節(jié)點(diǎn)的數(shù)量。
其次,在回溯列表中選擇最合適的回溯節(jié)點(diǎn)時,通過貪心準(zhǔn)則和基于市場機(jī)制的投標(biāo)過程來最終決定合適的回溯節(jié)點(diǎn)。
最后,利用動態(tài)更新的a*算法來規(guī)劃一條從死鎖點(diǎn)逃離到回溯節(jié)點(diǎn)的最短路徑。
1.更新回溯列表
本發(fā)明中,當(dāng)機(jī)器人進(jìn)入死鎖狀態(tài)時,將會更新回溯列表?;厮萘斜砑礊榇厮莸墓?jié)點(diǎn)的集合。不同于以往的方法,機(jī)器人在進(jìn)行未知區(qū)域探索和覆蓋的過程中,不會對回溯列表進(jìn)行更新。
傳統(tǒng)的回溯節(jié)點(diǎn)的定義方式如圖2所示。當(dāng)當(dāng)前節(jié)點(diǎn)x周圍的八個鄰居節(jié)點(diǎn)中,有一個以上的可達(dá)節(jié)點(diǎn)沒有被覆蓋時,該節(jié)點(diǎn)就會被視為待回溯的節(jié)點(diǎn)。也就是說這個節(jié)點(diǎn)將有可能在后續(xù)的覆蓋中被覆蓋完全(即周圍八個節(jié)點(diǎn)都被覆蓋或者為障礙物)。圖2中黑色的柵格即為當(dāng)前節(jié)點(diǎn)x,它周圍的八個鄰居節(jié)點(diǎn)中灰色的節(jié)點(diǎn)表示被障礙物占據(jù)的節(jié)點(diǎn),白色的節(jié)點(diǎn)(x3,x4,x5)表示未被覆蓋的可達(dá)節(jié)點(diǎn)。根據(jù)傳統(tǒng)的定義方式,大量的上圖中類似的節(jié)點(diǎn)被加入到回溯列表中,然而最終只有很小的一部分節(jié)點(diǎn)會被選擇成為最終的回溯節(jié)點(diǎn)。在實(shí)際的選擇中,只有在未覆蓋區(qū)域邊界上的角點(diǎn)會被選擇為回溯節(jié)點(diǎn)。邊界中間的部分節(jié)點(diǎn)將不會被選擇。因此,本發(fā)明中只選擇未覆蓋區(qū)域邊緣兩端的節(jié)點(diǎn)加入到回溯列表中,也就是說中間位置的點(diǎn)將會被刪除。圖3示意了新的回溯節(jié)點(diǎn)的選擇方式。
在更新過程中,為了維護(hù)列表的有限性,不僅僅是向列表中添加滿足條件的回溯節(jié)點(diǎn),那些已經(jīng)被逐漸的覆蓋完全的節(jié)點(diǎn)同樣會被刪除。添加和刪除都是在機(jī)器人進(jìn)入到死鎖點(diǎn)時進(jìn)行的。
2.選擇最佳回溯節(jié)點(diǎn)
在構(gòu)建和更新回溯列表之后,要選擇一個最佳的回溯節(jié)點(diǎn),從而引導(dǎo)機(jī)器人走出死鎖區(qū)域,進(jìn)入下一次的覆蓋中去。在單機(jī)器人系統(tǒng)中,機(jī)器人只需根據(jù)一定的貪心準(zhǔn)則(如直線距離最近,時間最近等)選擇最佳節(jié)點(diǎn)即可。但是對于多機(jī)器人系統(tǒng)來說,選擇是更加復(fù)雜的,這可以被視為是一種多機(jī)系統(tǒng)的任務(wù)分配問題。市場機(jī)制被認(rèn)為是任務(wù)分配問題中的一種有效的分布式機(jī)制,機(jī)器人可以相對獨(dú)立的完成工作。所述“市場機(jī)制”是借用經(jīng)濟(jì)學(xué)的技術(shù)和理念來有效地求解系統(tǒng)的任務(wù)分配問題,它將系統(tǒng)中任務(wù)的發(fā)起者比作經(jīng)濟(jì)市場上的賣者,將系統(tǒng)中任務(wù)的完成者比作經(jīng)濟(jì)市場上的買者,從而將系統(tǒng)任務(wù)的分配問題等效成經(jīng)濟(jì)市場供需匹配問題。在本發(fā)明設(shè)計(jì)的基于市場機(jī)制的投標(biāo)過程中,每個機(jī)器人相對獨(dú)立的進(jìn)行覆蓋任務(wù)。當(dāng)他們進(jìn)入死鎖狀態(tài),需要選擇回溯節(jié)點(diǎn)的時候,會同時考慮以下兩個方面:第一是選擇離自己盡可能近的節(jié)點(diǎn);第二是所選節(jié)點(diǎn)離其他機(jī)器人要盡可能遠(yuǎn)。
因?yàn)闄C(jī)器人沒有環(huán)境的初始信息,只有覆蓋過區(qū)域及其周圍的部分區(qū)域信息。相比于全局優(yōu)化的方法,貪心準(zhǔn)則是更為有效的。要想選擇一個最佳的回溯節(jié)點(diǎn),有多種準(zhǔn)則可以遵循。在這里,我們討論了三種準(zhǔn)則(最短路徑,最小歐式距離和最新被加入回溯列表),并選擇了針對本任務(wù)最優(yōu)的一種。
第一種準(zhǔn)則,會遍歷列表中的所有節(jié)點(diǎn),并計(jì)算該機(jī)器人到各個節(jié)點(diǎn)的最短路徑。這里最短路徑可有深度優(yōu)先搜索,dijsktra搜索等方法獲得。這種準(zhǔn)則看起來是非常準(zhǔn)確的,但是在動態(tài)環(huán)境中,這些根據(jù)過去的信息搜索到的最短路徑有可能本身就是無效的。故這種計(jì)算搜索路徑的方法是復(fù)雜且耗時的,并且有可能被運(yùn)動的障礙物所占據(jù)而變得無效。第二種準(zhǔn)則,計(jì)算每個節(jié)點(diǎn)到機(jī)器人之間的歐氏距離。但該方法同樣會受到障礙物的影響。兩個點(diǎn)之間存在障礙物的話,可能導(dǎo)致歐式距離很近的兩個點(diǎn),其真實(shí)路徑非常的遠(yuǎn)。第三種準(zhǔn)則,在構(gòu)建的回溯列表中選擇最近被加入列表中的節(jié)點(diǎn)。該準(zhǔn)則非常簡單,幾乎沒有任何計(jì)算量,而且在大多數(shù)情況下是路徑最短的。雖然會有一些例外的情況,但該節(jié)點(diǎn)也是相對次優(yōu)的。在真實(shí)世界的機(jī)器人系統(tǒng)中,基于它的低計(jì)算復(fù)雜度,次優(yōu)的解是可以被容忍和接受的。
本發(fā)明選擇了第三種貪心準(zhǔn)則:選擇最新被加入回溯列表的點(diǎn)。該貪心準(zhǔn)則可以直接用于單機(jī)器人的回溯機(jī)制中。但本發(fā)明針對多機(jī)器人系統(tǒng),最新加入列表的節(jié)點(diǎn)也僅僅是候選節(jié)點(diǎn)。因?yàn)橐x擇的最優(yōu)回溯節(jié)點(diǎn)還要考慮是否離其他機(jī)器人遠(yuǎn),也就是說不會在很短的時間內(nèi)被其他機(jī)器人所覆蓋。這里采用了一種基于市場機(jī)制的投標(biāo)環(huán)節(jié)。首先,假設(shè)處于死鎖狀態(tài)的機(jī)器人r選擇了最新被加入回溯列表的節(jié)點(diǎn)p作為候選回溯節(jié)點(diǎn)。這時,每個機(jī)器人要計(jì)算自己與候選節(jié)點(diǎn)p的歐氏距離,并將這個距離作為投標(biāo)價。如果死鎖機(jī)器人r的投標(biāo)價比其他機(jī)器人都小,也就是距離最近,那么機(jī)器人r中標(biāo),候選節(jié)點(diǎn)p就是最佳的回溯節(jié)點(diǎn)。相反地,如果有其他機(jī)器人比死鎖機(jī)器人r的投標(biāo)價還要小,也就是該點(diǎn)p離其他某個機(jī)器人更近,那么p可能很快會被其他機(jī)器人覆蓋,即不能被選擇為最佳節(jié)點(diǎn)。這時投標(biāo)機(jī)制將自動選擇下一個最新加入回溯列表的節(jié)點(diǎn)q,檢查q是否能使死鎖機(jī)器人r中標(biāo)。如果還不能,就繼續(xù)選擇列表中的下一個節(jié)點(diǎn),直到機(jī)器人r中標(biāo),就把該點(diǎn)作為最佳回溯節(jié)點(diǎn)。如果遍歷了所有節(jié)點(diǎn),都不能使機(jī)器人r中標(biāo),則直接選擇第一個候選節(jié)點(diǎn)p進(jìn)行回溯。具體的算法流程見圖4。
3.點(diǎn)到點(diǎn)路徑規(guī)劃
在回溯機(jī)制中的最后一個重要的環(huán)節(jié)即為從死鎖區(qū)域到未覆蓋完全的回溯節(jié)點(diǎn)之間的點(diǎn)到點(diǎn)路徑規(guī)劃。a星算法是已知環(huán)境中的一種常用的點(diǎn)到點(diǎn)路徑規(guī)劃方法。它能在保證獲得最短路徑的情況下盡可能的減少搜索空間,加快求解速度。但當(dāng)機(jī)器人沿著求解的路徑行走時,環(huán)境發(fā)生了變化,那么該路徑很可能就無效了。這時就需要動態(tài)a星算法(a.stentz,“thefocussedd*algorithmforreal-timereplanning.”inproc.ijcai,vol.95,pp.1652–1659,1995.),實(shí)時地更新路徑代價,并且在路徑被障礙物占據(jù)的時候及時進(jìn)行重規(guī)劃,從而到達(dá)最終的目標(biāo)點(diǎn)。
圖5是本發(fā)明在多機(jī)器人系統(tǒng)中實(shí)現(xiàn)的效果。本發(fā)明通過上述的算法將任務(wù)均衡地分配給多個機(jī)器人,因此有效的減少了總共的完全遍歷路徑規(guī)劃所需的時間。在多機(jī)器人系統(tǒng)中,在任務(wù)分配時盡量避免和其他機(jī)器人共同覆蓋相近的區(qū)域。當(dāng)機(jī)器人無法避免的距離較近時,動態(tài)a星算法和基于生物激勵神經(jīng)網(wǎng)絡(luò)模型的覆蓋算法會將其他機(jī)器人視作障礙物而進(jìn)行有效的避障。圖5是四個機(jī)器人用本發(fā)明采用的算法進(jìn)行規(guī)劃的路徑結(jié)果。其中乘號(×),加號(+),星號(*)和菱形(◇)的柵格節(jié)點(diǎn)分別由4個機(jī)器人所覆蓋,圓點(diǎn)(●)表示回溯過程中被重復(fù)覆蓋的節(jié)點(diǎn)。根據(jù)圖5可以清楚的看出本發(fā)明的方法是完備的,可以有效的覆蓋環(huán)境中所有的可達(dá)區(qū)域。與此同時,任務(wù)分配也是相對均衡的。統(tǒng)計(jì)可得每個機(jī)器人完成自己的覆蓋任務(wù)的時間基本相同,且為單個機(jī)器人覆蓋所有區(qū)域的時間的四分之一左右。因此,通過本發(fā)明的方法實(shí)現(xiàn)多機(jī)器人的完全遍歷路徑規(guī)劃可以有效的減少覆蓋的時間。由于采用了基于市場機(jī)制的任務(wù)分配方法,每個機(jī)器人獨(dú)立的完成各自的任務(wù)很少有沖突。作為一種高度分布式的系統(tǒng)框架,本發(fā)明還具有很強(qiáng)的魯棒性。其中一個或幾個機(jī)器人不能工作了也不會對其他正常的機(jī)器人造成影響。也就是說只要有至少一個機(jī)器人還能正常工作,就可以實(shí)現(xiàn)完全遍歷的覆蓋任務(wù)。因此本發(fā)明具有良好的魯棒性和完備性。
本發(fā)明實(shí)現(xiàn)了多機(jī)器人的全覆蓋任務(wù),利用的基于投標(biāo)機(jī)制的回溯方法,結(jié)合的是生物激勵神經(jīng)網(wǎng)絡(luò)覆蓋模型。該回溯方法也可以和螺旋算法(e.gonzalez,o.alvarez,y.diaz,c.parra,andc.bustacara,“bsa:acompletecoveragealgorithm,”inproc.icra,pp.2040–2044,2005)相結(jié)合,也可以達(dá)到多機(jī)器人協(xié)同全覆蓋的目的。
以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書所述為準(zhǔn)。