本發(fā)明屬于機(jī)器人技術(shù)領(lǐng)域。
背景技術(shù):
伴隨著微電子、計(jì)算機(jī)、網(wǎng)絡(luò)等應(yīng)用技術(shù)的快速發(fā)展,機(jī)器人技術(shù)得到了跨越式的進(jìn)步,機(jī)器人軟硬件技術(shù)的進(jìn)步使移動(dòng)機(jī)器人的各種能力不斷提高,移動(dòng)機(jī)器人應(yīng)用的領(lǐng)域和范圍也正不斷擴(kuò)展,利用機(jī)器人代替人來完成一些簡單的任務(wù)成為一種趨勢,比如利用單個(gè)機(jī)器人進(jìn)行清掃或者搜索等。
雖然單個(gè)機(jī)器人可以完成一些簡單的任務(wù),但是由于單個(gè)機(jī)器人一般都體積大、能耗高、結(jié)構(gòu)復(fù)雜,靈活性差,在使用單機(jī)器人進(jìn)行搜索任務(wù)時(shí)的效果不是很好,而群機(jī)器人因?yàn)槠潴w積小、數(shù)量多、結(jié)構(gòu)簡單、比較靈活、魯棒性強(qiáng),比單個(gè)機(jī)器人更容易控制,而且其容錯(cuò)能力強(qiáng),即使其中某個(gè)機(jī)器人壞了,也不會(huì)影響整體的搜索等特征,近幾年受到越來越多的關(guān)注。
同時(shí)隨著生物學(xué)研究的不斷深入,研究人員發(fā)現(xiàn)一些動(dòng)物能夠通過簡單的合作快速的發(fā)現(xiàn)食物。受到這些生物覓食行為的啟發(fā),本文提出利用群機(jī)器人來模擬生物覓食的過程,即在未知環(huán)境中,群機(jī)器人利用生物覓食行為的特征來搜索目標(biāo)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是利用群機(jī)器人搜索目標(biāo),促進(jìn)對群體自組織原理及協(xié)同行為涌現(xiàn)規(guī)律的基于生物覓食行為的群機(jī)器人混合搜索方法。
本發(fā)明步驟為:
步驟一:采用柵格法對搜索環(huán)境的建模:
把搜索區(qū)域 ,,劃分成若干個(gè)柵格,
,:搜索區(qū)域?yàn)榫匦?,為搜索區(qū)域的長,為搜索區(qū)域的寬;
步驟二:將搜索區(qū)域劃分為若干子區(qū)域:
用A 表示整個(gè)搜索區(qū)域,用表示被劃分的任意一個(gè)子區(qū)域,則整個(gè)搜索區(qū)域可以表示為:,n :搜索區(qū)域劃分成的子區(qū)域個(gè)數(shù);
步驟三:安排每個(gè)子區(qū)域的搜索順序:
通過區(qū)域效用函數(shù)的大小確定每個(gè)子區(qū)域的搜索順序,使目標(biāo)信號(hào)濃度強(qiáng)的子區(qū)域優(yōu)先被搜索, 區(qū)域效用函數(shù)如下:
其中,T 函數(shù)表示子區(qū)域的目標(biāo)效用函數(shù)值,為機(jī)器人在子區(qū)域a內(nèi)檢測到子區(qū)域b 內(nèi)目標(biāo)信號(hào)的強(qiáng)度,為當(dāng)前子區(qū)域a與子區(qū)域子b 之間的距離,其中;
步驟四:混合搜索算法進(jìn)行搜索:
1)利用隨機(jī)搜索算法進(jìn)行全局搜索;
2)當(dāng)目標(biāo)探測器發(fā)現(xiàn)目標(biāo)的存在之后,隨機(jī)搜索算法轉(zhuǎn)變?yōu)閯?dòng)態(tài)粒子群搜索算法進(jìn)行搜索,通過粒子之間的合作,不斷調(diào)整粒子的位置,確定目標(biāo)位置;
3)如果隨機(jī)搜索算法沒有發(fā)現(xiàn)目標(biāo),一直使用隨機(jī)搜索算法進(jìn)行搜索,直到整個(gè)搜索區(qū)域搜索完成或者搜索時(shí)間超時(shí),結(jié)束當(dāng)前搜索。
本發(fā)明步驟一的環(huán)境空間就是搜索區(qū)域;具體步驟如下:
(1)將環(huán)境空間劃分為 個(gè)獨(dú)立的柵格空間,其中,,如果不能整除,則全部都向上取整;
(2)給劃分的每個(gè)柵格進(jìn)行賦值,每個(gè)柵格都記為0;
給劃分的每個(gè)柵格進(jìn)行賦值:這里的柵格指的就是劃分成的m*n個(gè)柵格,賦的值是任意的,初始都設(shè)為0,搜索過的設(shè)為1;
(3)將劃分后的柵格按照順序進(jìn)行編號(hào),編號(hào)記為c,編號(hào)轉(zhuǎn)換公式如下所示:
當(dāng)柵格被搜索后,其相應(yīng)的值變?yōu)?,表示信息如下:
柵格被搜索前,將柵格賦值設(shè)為0表示,被搜索后,將格柵賦值設(shè)為1來表示;
其中代表一個(gè)區(qū)域內(nèi)處于柵格(k,t)的值,k、t代表該區(qū)域內(nèi)柵格所在的橫坐標(biāo)和縱坐標(biāo)。
本發(fā)明公式中是一個(gè)隨機(jī)的值,為了使實(shí)驗(yàn)具有普遍性和代表性,分別取不同大小的值來進(jìn)行試驗(yàn),在場景確定后, 是一個(gè)固定的值。
本發(fā)明采用隨機(jī)搜索算法階段,粒子分別被釋放在搜索環(huán)境中的某一起點(diǎn),采取隨機(jī)行走方式進(jìn)行搜索,粒子以一定的速度行走,其與x/y 軸的方向是隨機(jī)的;具體行走方式如下:
其中表示粒子的行走速度,表示速度與x軸的夾角,一般在沒有障礙物的時(shí)候,取值是一個(gè)隨機(jī)的小角度值,表示時(shí)間間隔,人為設(shè)置的a為常量;將=1 代入上面公式得到:
。
本發(fā)明動(dòng)態(tài)粒子群算法的速度及位置更新方式如下:
其中是粒子本身在搜索過程中在x 軸的最好位置,是粒子本身在搜索過程中在y 軸的最好位置,是在通信范圍內(nèi)所有粒子中在x 軸的最好位置,是在通信范圍內(nèi)所有粒子中在y 軸的最好位置,w,c1,c2 為權(quán)值,0<w<2,0<c1/c2<2。
本發(fā)明在整個(gè)搜索的過程中,機(jī)器人自身有三種搜索行為:隨機(jī)搜索行為、組織搜索行為、協(xié)作搜索行為;在整個(gè)子區(qū)域的搜索過程中,機(jī)器人的這三種行為不斷進(jìn)行轉(zhuǎn)換。
本發(fā)明研究利用群機(jī)器人搜索目標(biāo),在理論和實(shí)際研究中都有重要的意義。從理論上來說,通過研究群機(jī)器人尋找目標(biāo)的過程,可以促進(jìn)對群體自組織原理及協(xié)同行為涌現(xiàn)規(guī)律的研究。從實(shí)際上來說,研究利用群機(jī)器人搜索目標(biāo),可以使機(jī)器人應(yīng)用更加廣闊,可以利用機(jī)器人代替人完成很多工作,比如排雷排爆、空間探測、地震等災(zāi)難后的幸存者搜索、礦難搜救問題等。
附圖說明
圖1是本發(fā)明提出的基于覓食行為的群機(jī)器人混合搜索方法的流程圖;
圖2是本發(fā)明中混合搜索算法的流程圖;
圖3是本發(fā)明中動(dòng)態(tài)粒子群算法的流程圖;
圖4是整個(gè)搜索的過程中機(jī)器人行為轉(zhuǎn)換示意圖;
圖5是多個(gè)目標(biāo),多個(gè)粒子確定目標(biāo)搜索情況;其中(a)圖為粒子的初始狀態(tài)圖;(b)圖為確定粒子的位置圖。
具體實(shí)施方式
本發(fā)明步驟為:
步驟一:采用柵格法對搜索環(huán)境的建模:
把搜索區(qū)域 ,,劃分成若干個(gè)柵格,
,:搜索區(qū)域?yàn)榫匦?,為搜索區(qū)域的長,為搜索區(qū)域的寬。
步驟二:將搜索區(qū)域劃分為若干子區(qū)域:
用A 表示整個(gè)搜索區(qū)域,用表示被劃分的任意一個(gè)子區(qū)域,則整個(gè)搜索區(qū)域可以表示為:,n :搜索區(qū)域劃分成的子區(qū)域個(gè)數(shù)。
步驟三:安排每個(gè)子區(qū)域的搜索順序:
通過區(qū)域效用函數(shù)的大小確定每個(gè)子區(qū)域的搜索順序,使目標(biāo)信號(hào)濃度強(qiáng)的子區(qū)域優(yōu)先被搜索, 區(qū)域效用函數(shù)如下:
、:公式中的系數(shù),0、1 ,根據(jù)搜索環(huán)境和柵格個(gè)數(shù)而取值,
:搜索區(qū)域劃分成子區(qū)域后,的值就固定了;
其中,T 函數(shù)表示子區(qū)域的目標(biāo)效用函數(shù)值,為機(jī)器人在子區(qū)域a內(nèi)檢測到子區(qū)域b 內(nèi)目標(biāo)信號(hào)的強(qiáng)度,為當(dāng)前子區(qū)域a與子區(qū)域子b 之間的距離,其中;
機(jī)器人按照這個(gè)函數(shù)測得的目標(biāo)效用函數(shù)值,確定各個(gè)子區(qū)域的搜索順序。這樣做可以使目標(biāo)信號(hào)濃度強(qiáng)、距離近的子區(qū)域優(yōu)先被搜索,從而可以減少目標(biāo)在子區(qū)域內(nèi)的停留時(shí)間。
步驟四:混合搜索算法進(jìn)行搜索:完成以上工作后,混合搜索算法開始搜索:
1)利用隨機(jī)搜索算法進(jìn)行全局搜索;
2)當(dāng)目標(biāo)探測器發(fā)現(xiàn)目標(biāo)的存在之后,隨機(jī)搜索算法轉(zhuǎn)變?yōu)閯?dòng)態(tài)粒子群搜索算法進(jìn)行搜索,通過粒子之間的合作,不斷調(diào)整粒子的位置,確定目標(biāo)位置;在這里動(dòng)態(tài)粒子群搜索算法有一定時(shí)間限制,如果在這個(gè)時(shí)間范圍內(nèi),則一直進(jìn)行目標(biāo)位置的確定,確定目標(biāo)位置后,判斷是否完成整個(gè)區(qū)域的搜索,如果完成,則結(jié)束當(dāng)前區(qū)域的搜索,如果沒有結(jié)束,則轉(zhuǎn)入隨機(jī)搜索算法,繼續(xù)進(jìn)行當(dāng)前區(qū)域的搜索;如果超過了這個(gè)時(shí)間限制,但是還是沒有確定目標(biāo)位置,為了不影響整體搜索的效率,動(dòng)態(tài)粒子群算法轉(zhuǎn)為隨機(jī)搜索算法,重新進(jìn)行搜索;
3)如果隨機(jī)搜索算法沒有發(fā)現(xiàn)目標(biāo),一直使用隨機(jī)搜索算法進(jìn)行搜索,直到整個(gè)搜索區(qū)域搜索完成或者搜索時(shí)間超時(shí),結(jié)束當(dāng)前搜索。
本發(fā)明步驟一的環(huán)境空間就是搜索區(qū)域;具體步驟如下:
(1)將環(huán)境空間劃分為 個(gè)獨(dú)立的柵格空間,其中,,如果不能整除,則全部都向上取整;
:利用機(jī)器人的搜索半徑r來決定劃分柵格的大小和柵格的數(shù)量,設(shè)機(jī)器人的搜索半徑r與柵格的邊長相等,所以,,搜索區(qū)域就分為個(gè)柵格;
向上取整:因?yàn)?,,且?guī)定m,n為整數(shù),所以當(dāng),的結(jié)果不為整數(shù)時(shí),要求向上取整,也就是無論小數(shù)為多少,結(jié)果都為整數(shù)上加1;
(2)給劃分的每個(gè)柵格進(jìn)行賦值,每個(gè)柵格都記為0;
給劃分的每個(gè)柵格進(jìn)行賦值:這里的柵格指的就是劃分成的m*n個(gè)柵格,賦的值是任意的,初始都設(shè)為0,搜索過的設(shè)為1;
(3)將劃分后的柵格按照順序進(jìn)行編號(hào),編號(hào)記為c,編號(hào)轉(zhuǎn)換公式如下所示:
將劃分后的柵格按照一定順序進(jìn)行編號(hào):這里的一定順序指的是按從左到右,從下到上的順序,從柵格陣左下角第一個(gè)柵格開始進(jìn)行編號(hào)(從0開始),編號(hào)c與柵格一一對應(yīng),
;;:這三個(gè)公式就是由一個(gè)公式而得到,和就是公式的中間變量,x和y為搜索區(qū)域中任一點(diǎn)的橫坐標(biāo)和縱坐標(biāo)(以柵格陣左下角為坐標(biāo)原點(diǎn),水平向右為X 軸正方向,豎直向上為Y 軸正方向,每一柵格區(qū)間對應(yīng)坐標(biāo)軸上的一個(gè)單位長度,即搜索區(qū)域內(nèi)的任一點(diǎn)均可用直角坐標(biāo)(x, y)唯一標(biāo)識(shí));
當(dāng)柵格被搜索后,其相應(yīng)的值變?yōu)?,表示信息如下:
柵格被搜索前,將柵格賦值設(shè)為0表示,被搜索后,將格柵賦值設(shè)為1來表示;
其中代表一個(gè)區(qū)域內(nèi)處于柵格(k,t)的值,k、t代表該區(qū)域內(nèi)柵格所在的橫坐標(biāo)和縱坐標(biāo)。
本發(fā)明公式中是一個(gè)隨機(jī)的值,為了使實(shí)驗(yàn)具有普遍性和代表性,分別取不同大小的值來進(jìn)行試驗(yàn),在場景確定后, 是一個(gè)固定的值。
本發(fā)明采用隨機(jī)搜索算法階段,粒子分別被釋放在搜索環(huán)境中的某一起點(diǎn),采取隨機(jī)行走方式進(jìn)行搜索,粒子以一定的速度行走,其與x/y 軸的方向是隨機(jī)的;具體行走方式如下:
其中表示粒子的行走速度,表示速度與x軸的夾角,一般在沒有障礙物的時(shí)候,取值是一個(gè)隨機(jī)的小角度值,表示時(shí)間間隔,人為設(shè)置的a為常量;將=1 代入上面公式得到:
。
本發(fā)明動(dòng)態(tài)粒子群算法,不僅可以確定目標(biāo)的位置,同時(shí)其種群的大小可以隨時(shí)更改,避免像粒子群算法那樣出現(xiàn)“早熟”現(xiàn)象,也可以加快搜索的進(jìn)程。速度及位置更新方式如下:
在這里=1 直接省略了,其中是粒子本身在搜索過程中在x 軸的最好位置,是粒子本身在搜索過程中在y 軸的最好位置,是在通信范圍內(nèi)所有粒子中在x 軸的最好位置,是在通信范圍內(nèi)所有粒子中在y 軸的最好位置,w,c1,c2 為權(quán)值,0<w<2,0<c1/c2<2。在這里取值不固定,根據(jù)具體情況確定。
本發(fā)明在整個(gè)搜索的過程中,機(jī)器人自身有三種搜索行為:隨機(jī)搜索行為、組織搜索行為、協(xié)作搜索行為;在整個(gè)子區(qū)域的搜索過程中,機(jī)器人的這三種行為不斷進(jìn)行轉(zhuǎn)換。在剛進(jìn)入搜索區(qū)域時(shí),所有機(jī)器人都是隨機(jī)搜索者,一旦有機(jī)器人發(fā)現(xiàn)目標(biāo),這個(gè)發(fā)現(xiàn)目標(biāo)的機(jī)器人就從隨機(jī)搜索者轉(zhuǎn)換為組織者,然后通知其通信范圍內(nèi)的機(jī)器人一起進(jìn)行搜索,接收到組織者信息的隨機(jī)搜索者轉(zhuǎn)變?yōu)閰f(xié)作者,幫助組織者確定目標(biāo)位置,在搜索過程中,如果任意協(xié)作者的目標(biāo)信號(hào)濃度大于當(dāng)前組織者,則該協(xié)作者變成組織者,而之前的組織者變成協(xié)作者。當(dāng)組織者和協(xié)作者確定目標(biāo)后,他們再次變?yōu)殡S機(jī)搜索者,進(jìn)行子區(qū)域內(nèi)未完成搜索部分的搜索。
仿真結(jié)果如圖5所示,其中圖(a)為各個(gè)粒子的初始狀態(tài),圓形的點(diǎn)為搜索的粒子,星形的點(diǎn)為目標(biāo)點(diǎn),利用提出的混合算法對每個(gè)目標(biāo)點(diǎn)進(jìn)行搜索,從圖(b)中可以看到,在每個(gè)目標(biāo)點(diǎn)附近均有若干個(gè)粒子出現(xiàn)過,即每個(gè)目標(biāo)均被若干個(gè)粒子發(fā)現(xiàn)。