專利名稱:一種機(jī)器人迷宮搜索方法
技術(shù)領(lǐng)域:
本發(fā)明屬人工智能技術(shù)領(lǐng)域,特別是涉及一種機(jī)器人迷宮搜索方法。
背景技術(shù):
將智能機(jī)器人應(yīng)用于探索迷宮和未知環(huán)境的研究已經(jīng)非常普及,縱觀已有迷宮搜索算法,絕大部分的做法是當(dāng)機(jī)器人有支路進(jìn)行選擇時,會根據(jù)擬定的路徑選擇算法,選擇其中一條進(jìn)行繼續(xù)探索,直至搜索到終點(diǎn)。而此類算法有個弊端,沒有充分利用機(jī)器人已經(jīng)搜索到的信息對機(jī)器人的搜索路徑進(jìn)行優(yōu)化。當(dāng)有支路進(jìn)行選擇時,則根據(jù)擬定的路徑選擇算法,選擇其中一條進(jìn)行繼續(xù)探索,而這條路徑是否可達(dá)終點(diǎn),事先并未根據(jù)已有的數(shù)據(jù)進(jìn)行分析判斷,只能通過實際搜索來得知。而且也僅僅局限于對已探索到的信息進(jìn)行選擇,并未對這些信息進(jìn)行有效擴(kuò)展,這些都必將帶來一些不必要的搜索,影響做出判斷的準(zhǔn)確性,降低搜索效率。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種機(jī)器人迷宮搜索方法,從剔除無效搜索路徑和增加有效信息兩方面入手,以高速的微控制器運(yùn)算速度替代相對低速的機(jī)器人機(jī)械運(yùn)行速度,從而提高迷宮搜索效率。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:提供一種機(jī)器人迷宮搜索方法,包括下列步驟:(I)對已知和機(jī)器人探索出的信息進(jìn)行擴(kuò)展,當(dāng)搜索到迷宮格中一格的墻面信息后,利用此墻面信息,對其四周各格的墻面部分或全部信息進(jìn)行更新。即根據(jù)當(dāng)前迷宮格左方向是否有路,得出其左方的迷宮格右方向是否有路。同理可根據(jù)當(dāng)前迷宮格的下、右、上方向是否有路,得出其下方迷宮格的上方向、右方迷宮格的左方向和上方迷宮格的下方向是否有路。這樣,雖然這四格并未搜索過,卻已得到部分甚至全部墻面信息,為后期的判斷和路徑選擇提供更多有效數(shù)據(jù);(2)當(dāng)有支路可供選擇時,對路徑選擇算法選擇出的支路利用“洪水推演法”進(jìn)行預(yù)推演,剔除不可行路徑,所述“洪水推演法”即根據(jù)路徑選擇法則選擇好最優(yōu)支路后,在機(jī)器人行進(jìn)前,根據(jù)已知信息、機(jī)器人探索出和擴(kuò)展出的信息順著這條支路預(yù)推演,若這條支路能夠推演到終點(diǎn),則這條支路判斷為可行進(jìn);若推演不到終點(diǎn),則判斷為不可行進(jìn),并將推演到的所有不可行進(jìn)迷宮格標(biāo)記為死路、剔出搜索范圍,再根據(jù)路徑選擇法則選擇出的下一優(yōu)先支路進(jìn)行預(yù)推演,直至找出可行進(jìn)的支路為止。所述的步驟(2)中還包括:對路徑選擇算法選擇出的路徑進(jìn)行一次過濾,排除那些不可達(dá)路徑,減小搜索范圍;排除的僅僅是那些沒有可能到達(dá)終點(diǎn)的路徑,對其余有可能到達(dá)的路徑均予以保留。所述的步驟(2)中“洪水推演法”在路徑選擇算法選擇好支路之后,根據(jù)數(shù)組記錄的隔墻信息,順著這條支路模擬“流水”,并將機(jī)器人當(dāng)前位置標(biāo)記為最高點(diǎn),即“洪水”流不到的地方,防止其“逆流”;若這條“流水”路徑能夠“流淌”到終點(diǎn),則這條路判斷為可行進(jìn);若“流淌”不到終點(diǎn),則判斷為不可行進(jìn),并將“洪水”所“流過”的所有格子標(biāo)記為死路、剔出搜索范圍,再根據(jù)路徑選擇算法選擇下一優(yōu)先支路,并進(jìn)行推演,直至找出可行進(jìn)支路為止。所述的步驟(2)中所述的推演的實現(xiàn)方法為基于等高圖法尋找最優(yōu)路徑的方法進(jìn)行,根據(jù)數(shù)組中記錄的信息作從支路點(diǎn)到終點(diǎn)的等高圖,從中找出一條能夠到達(dá)終點(diǎn)的路徑;如果已完成所有坐標(biāo)的等高值更新,依然沒能夠更新終點(diǎn)的等高值,則判斷為此支路不可達(dá);推演過程必須向“前”推演,等高值初始化時,將當(dāng)前機(jī)器人位置的等高值置為最小值0,起點(diǎn)或支路點(diǎn)的等高值置為1,其余點(diǎn)的初始等高值均置為Oxff,即可保證向“前”推演。有益效果本發(fā)明首先對已知和機(jī)器人探索出的信息進(jìn)行擴(kuò)展,從而得出更多有用信息,不僅能為本發(fā)明提出的“洪水推演法”提供有效數(shù)據(jù),也能夠為機(jī)器人在選擇最優(yōu)路徑等提供更多數(shù)據(jù),從而做出更加準(zhǔn)確的選擇或判斷。所提出的“洪水推演法”能夠識別出迷宮中的死路,從而減小搜索范圍,以微控制器高速的運(yùn)算速度替代機(jī)器人緩慢的“奔跑”速度,有效提高搜索效率。
圖1為本發(fā)明數(shù)據(jù)擴(kuò)展示意圖。圖2為本發(fā)明路徑選擇算法流程圖。圖3為本發(fā)明機(jī)器人搜索路徑示意圖。
具體實施例方式下面結(jié)合具體實施例,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限定的范圍。圖1為本發(fā)明數(shù)據(jù)擴(kuò)展示意圖:圖中MapBlock[x] [y]中存儲的是實際搜索出的墻面信息,根據(jù)此信息可擴(kuò)展出該宮格周圍四個宮格的部分或者全部的信息,并將擴(kuò)展出的信息存儲在數(shù)組LogBlock中,從而利用這些擴(kuò)展出的信息更新周圍四個迷宮格的信息,為后續(xù)搜索或沖刺提供更多有效信息。圖2為本發(fā)明路徑選擇算法流程圖:將原路徑選擇法則選擇出的路徑,按照優(yōu)先級順序依次根據(jù)“洪水推演法”在機(jī)器人行進(jìn)之前進(jìn)行預(yù)推演,直到找到可達(dá)終點(diǎn)路徑為止。圖3為機(jī)器人迷宮搜索路徑示意圖:曲線段為機(jī)器人從起點(diǎn)第一次搜索到終點(diǎn)的路徑,陰影部分表示搜索期間機(jī)器人標(biāo)記出的死路。機(jī)器人從起點(diǎn)向終點(diǎn)進(jìn)行探索,按照常規(guī)的路徑選擇法則圖中所標(biāo)記的死路機(jī)器人皆會前去搜索,而改進(jìn)后的算法,則會根據(jù)“洪水推演法”識別出這些死路,從而減小搜索范圍,以微控制器高速的運(yùn)算速度替代機(jī)器人緩慢的“奔跑”速度,有效提高搜索效率。本發(fā)明共分為兩大部分:擴(kuò)展搜索信息和剔除無效搜索路徑,下面具體敘述。
1、擴(kuò)展搜索信息假定機(jī)器人的探索的迷宮環(huán)境為16 * 16的正方形二維迷宮,實際應(yīng)用中,可根據(jù)不同應(yīng)用環(huán)境進(jìn)行不同設(shè)定。具體實現(xiàn)辦法共分為三步:第一步,構(gòu)造兩個16 * 16 的二 維數(shù)組 MapBlock [X] [y]和 LogBlock [X] [y],MapBlock存儲的是實際搜索出的墻面信息,LogBlock存儲的不僅僅是實際搜索出的墻面信息,還包括推演出的墻面信息。其中,X:橫坐標(biāo),y:縱坐標(biāo),bit3 bitO位分別代表當(dāng)前坐標(biāo)的迷宮格左、下、右、上方向是否有路,O:該方向無路,1:該方向有路,bit4位用于標(biāo)記此迷宮格是否真實搜索過,用于區(qū)別假定的四周全有路和真實四周全有路(即通過實際搜索得到的墻面信息);第二步,對上述兩數(shù)組進(jìn)行初始化,MapBlock [X] [y]中全部元素初始化為0x00。LogBlock[x] [y]中,x=0的所有元素的bit2位(整個迷宮的下方邊界)均置為O ;x=16的所有元素的bitO位(整個迷宮的上方邊界)均置為O ;對y=0的所有元素的bit3位(整個迷宮的左方邊界)均置為O ;y=16的所有元素的bitl位(整個迷宮的右方邊界)均置為0,表示迷宮四周邊界有墻,即無路。其余bit3 bitO位均置為1,即初始假定迷宮內(nèi)部無任何隔墻,在后期的探索和推演過程中逐步添加部分隔墻;所有元素的bit7 bit4位均置為O ;第三步,機(jī)器人搜索時對兩個數(shù)組進(jìn)行同步維護(hù)更新,MapBlock保存機(jī)器人實際搜索的數(shù)據(jù)即可;LogBlock不僅拷貝MapBlock所記錄的信息,還包括對MapBlock的擴(kuò)展信息。具體擴(kuò)展方法如下:例如,可根據(jù)MapBlock[x] [y]的bit2位為O (表示(x,y)格下方無路),推斷出LogBlock[x] [y-1]的bitO位為O (表示(x, y_l)格上方無路),同理可得其余三個方向的擴(kuò)展結(jié)果,示意圖如圖2所示;當(dāng)搜索到一格的墻面信息后,可利用此迷宮格墻面信息,對其四周各格的墻面信息進(jìn)行更新,這樣,雖然這四格并未搜索過,卻已得到部分甚至全部墻面信息,為后期的判斷和路徑選擇提供更多有效數(shù)據(jù)。2、剔除無效搜索路徑(I)過濾搜索路徑在機(jī)器人搜索過程中,對路徑選擇算法選擇出的路徑進(jìn)行一次過濾。每當(dāng)有支路可供選擇時,對路徑選擇算法選擇出的路徑,在機(jī)器人行進(jìn)之前,利用“洪水推演法”進(jìn)行預(yù)推演,若可達(dá)則進(jìn)行行進(jìn);若不可達(dá),則將此支路和通過此支路可以推演出的路徑,全部標(biāo)記為死路。過濾的目的是排除那些不可達(dá)路徑,減小搜索范圍。排除的僅僅是那些沒有可能到達(dá)終點(diǎn)的路徑,對其余有可能到達(dá)的路徑均予以保留。所以,在減小搜索范圍的前提下,亦不會遺漏任何有效路徑。過濾所耗去的處理器運(yùn)行時間遠(yuǎn)小于機(jī)器人運(yùn)行的時間,可以忽略不計。即使在最差的情形下(沒有排除任何不可達(dá)路徑),也不會增加搜索時間。(2)洪水推演法由于整個推演過程類似于洪水流淌,在此我們形象地稱為“洪水推演法”。其示意圖如圖3所示,在路徑選擇算法選擇好支路之后,根據(jù)LogBlock數(shù)組記錄的隔墻信息,順著這條支路“流淌”,并注意將機(jī)器人當(dāng)前位置標(biāo)記為最高點(diǎn),即“洪水”流不到的地方,防止其“逆流”。若這條“流水”路徑能夠“流淌”到終點(diǎn),則這條路判斷為可行進(jìn);若“流淌”不到終點(diǎn),則判斷為不可行進(jìn),并將剛才“洪水”所“流過”的所有格子標(biāo)記為死路、剔出搜索范圍,再根據(jù)路徑選擇算法選擇下一優(yōu)先支路,并進(jìn)行推演,直至找出可行進(jìn)支路為止。其流程圖如圖2所示。推演的實現(xiàn)方法可基于等高圖法尋找最優(yōu)路徑的方法進(jìn)行修改,由于推演的結(jié)果僅需判斷能否到達(dá)終點(diǎn),所以,只要在根據(jù)LogBlock數(shù)組中記錄的信息作從支路點(diǎn)(機(jī)器人通過路徑選擇算法選出的支路的路口坐標(biāo),若該支路判斷可達(dá),即為機(jī)器人的下一位置坐標(biāo))到終點(diǎn)的等高圖時,從中找出一條能夠到達(dá)終點(diǎn)的路徑即可,無需找出最優(yōu)路徑。程序設(shè)計時,只要終點(diǎn)的等高值被更新了(初始等高值為最大值:0xfT),立馬跳出循環(huán),執(zhí)行機(jī)器人的驅(qū)動函數(shù);如果處理器已完成所有坐標(biāo)的等高值更新,依然沒能夠更新終點(diǎn)的等高值,則判斷為此支路不可達(dá)。推演過程需注意務(wù)必要向“前”推演,即推演的走向不能路過當(dāng)前機(jī)器人的坐標(biāo),否則不僅會加大推演的工作量,而且不便于標(biāo)記死路,等高值初始化時,將當(dāng)前機(jī)器人位置的等高值置為最小值0,起點(diǎn)(支路點(diǎn))的等高值置為I,其余點(diǎn)的初始等高值均置為Oxff,即可保證向“前”推演。
權(quán)利要求
1.一種機(jī)器人迷宮搜索方法,其特征在于,包括下列步驟: (1)對已知和機(jī)器人探索出的信息進(jìn)行擴(kuò)展,當(dāng)搜索到迷宮格中一格的墻面信息后,利用此墻面信息,對其四周各格的墻面部分或全部信息進(jìn)行更新,這樣,雖然這四格并未搜索過,卻已得到部分甚至全部墻面信息,為后期的判斷和路徑選擇提供更多有效數(shù)據(jù); (2)當(dāng)有支路可供選擇時,對路徑選擇算法選擇出的支路利用“洪水推演法”進(jìn)行預(yù)推演,剔除不可行路徑,所述“洪水推演法”即根據(jù)路徑選擇法則選擇好最優(yōu)支路后,在機(jī)器人行進(jìn)前,根據(jù)已知信息、機(jī)器人探索出和擴(kuò)展出的信息順著這條支路預(yù)推演,若這條支路能夠推演到終點(diǎn),則這條支路判斷為可行進(jìn);若推演不到終點(diǎn),則判斷為不可行進(jìn),并將推演到的所有不可行進(jìn)迷宮格標(biāo)記為死路、剔出搜索范圍,再根據(jù)路徑選擇法則選擇出的下一優(yōu)先支路進(jìn)行預(yù)推演,直至找出可行進(jìn)的支路為止。
2.根據(jù)權(quán)利要求1所述的一種機(jī)器人迷宮搜索方法,其特征在于,所述的步驟(2)中還包括:對路徑選擇算法選擇出的路徑進(jìn)行一次過濾,排除那些不可達(dá)路徑,減小搜索范圍;排除的僅僅是那些沒有可能到達(dá)終點(diǎn)的路徑,對其余有可能到達(dá)的路徑均予以保留。
3.根據(jù)權(quán)利要求1所述的一種機(jī)器人迷宮搜索方法,其特征在于,所述的步驟(2)中“洪水推演法”在路徑選擇算法選擇好支路之后,根據(jù)數(shù)組記錄的隔墻信息,順著這條支路模擬“流水”,并將機(jī)器人當(dāng)前位置標(biāo)記為最高點(diǎn),即“洪水”流不到的地方,防止其“逆流”;若這條“流水”路徑能夠“流淌”到終點(diǎn),則這條路判斷為可行進(jìn);若“流淌”不到終點(diǎn),則判斷為不可行進(jìn),并將“洪水”所“流過”的所有格子標(biāo)記為死路、剔出搜索范圍,再根據(jù)路徑選擇算法選擇下一優(yōu)先支路,并進(jìn)行推演,直至找出可行進(jìn)支路為止。
4.根據(jù)權(quán)利要求1所述的一種機(jī)器人迷宮搜索方法,其特征在于,所述的步驟(2)中的推演的實現(xiàn)方法為基于等高圖法尋找最優(yōu)路徑的方法進(jìn)行,根據(jù)數(shù)組中記錄的信息作從支路點(diǎn)到終點(diǎn)的等高圖,從中找出一條能夠到達(dá)終點(diǎn)的路徑;如果已完成所有坐標(biāo)的等高值更新,依然沒能夠更新終點(diǎn)的等高值,則判斷為此支路不可達(dá);推演過程必須向“前”推演,等高值初始化時,將當(dāng)前機(jī)器人位置的等高值置為最小值O,起點(diǎn)或支路點(diǎn)的等高值置為1,其余點(diǎn)的初始等高值均置為OxfT,即可保證向“前”推演。
全文摘要
本發(fā)明涉及一種機(jī)器人迷宮搜索方法,在機(jī)器人探索迷宮時,將探索出的墻面信息進(jìn)行擴(kuò)展,利用“洪水推演法”將路徑選擇法則選擇出的搜索路徑進(jìn)行預(yù)推演,預(yù)推演的目的是,在機(jī)器人行進(jìn)之前剔除一些不可達(dá)終點(diǎn)的路徑,從而從剔除無效搜索路徑和增加有效信息兩個角度減小機(jī)器人的搜索時間。本發(fā)明以高速的微控制器運(yùn)算速度,替代相對低速的機(jī)器人機(jī)械運(yùn)行速度,提高迷宮搜索效率。
文檔編號G05D1/02GK103092207SQ201310062309
公開日2013年5月8日 申請日期2013年2月27日 優(yōu)先權(quán)日2013年2月27日
發(fā)明者郭長生, 裴蕾, 龔濤 申請人:東華大學(xué)