曹鵬飛,郝礦榮,丁永生
由于多機(jī)器人系統(tǒng)可以更好地實現(xiàn)信息和資源共享,具有更高的并行性和魯棒性,可以完成更加復(fù)雜的任務(wù),已經(jīng)被應(yīng)用到智能生產(chǎn)、未知環(huán)境探測、搬運清理、服務(wù)行業(yè)、搜索搜救、遠(yuǎn)程通信等很多領(lǐng)域中,具備很好的實用價值[1-2]。而一種良好的任務(wù)分配策略對整個系統(tǒng)起著重要的作用,因而成為學(xué)者們的研究熱點。
針對不同的應(yīng)用場景,國內(nèi)外學(xué)者提出了許多有效的任務(wù)分配算法,大多都是基于行為機(jī)制、獎賞機(jī)制、市場機(jī)制以及群體智能[3-5]。袁等[6-7]提出改進(jìn)的免疫網(wǎng)絡(luò)算法解決了未知環(huán)境中機(jī)器人搬運箱子問題,取得一定效果。但以上算法大都適用于靜態(tài)或任務(wù)信息事先已知的場景中,對于隨著時間動態(tài)產(chǎn)生,且事先只能感知任務(wù)位置,無法具體判斷任務(wù)量,需要機(jī)器人在任務(wù)執(zhí)行時自主協(xié)作的場景中存在較大的局限。
生物免疫系統(tǒng)維持著生物系統(tǒng)的動態(tài)平衡,具有較強(qiáng)的學(xué)習(xí)性、記憶性和自適應(yīng)性[8-9]。受此啟發(fā),本文借鑒獨特型免疫網(wǎng)絡(luò),將多機(jī)器人系統(tǒng)和免疫系統(tǒng)進(jìn)行類比,構(gòu)建任務(wù)分配與協(xié)作模型,并利用事件驅(qū)動機(jī)制實現(xiàn)了多機(jī)器人動態(tài)的任務(wù)分配與協(xié)作,并引入焦躁模型來解決任務(wù)死鎖問題,使多機(jī)器人系統(tǒng)能夠在動態(tài)任務(wù)、且任務(wù)量無法事先確定的復(fù)雜場景中實現(xiàn)任務(wù)自適應(yīng)分配與自主協(xié)作,構(gòu)建一個智能協(xié)同的機(jī)器人網(wǎng)絡(luò)[10]。將本文算法應(yīng)用于需要協(xié)作的清理搜集任務(wù)中,仿真和實驗表明本文算法能夠有效解決此類動態(tài)任務(wù)分配問題。
生物免疫系統(tǒng)維持著整個生物系統(tǒng)的動態(tài)平衡,非常適合于動態(tài)和魯棒性系統(tǒng)研究,將其應(yīng)用到實際工程,可以增強(qiáng)系統(tǒng)的穩(wěn)定性。
1974年Jerne提出的獨特型網(wǎng)絡(luò)假說認(rèn)為,生物系統(tǒng)可以維持本身的均衡,通過細(xì)胞間的相互作用,利用濃度最大的抗體消滅抗原[11]。
在此基礎(chǔ)上,F(xiàn)armer等[12]提出了相應(yīng)的動態(tài)方程,并將免疫系統(tǒng)應(yīng)用于工程應(yīng)用。
式中:Ai(t)和ai(t)為分別為t時刻抗體i的激勵水平和濃度;α、β為作用系數(shù);ki表示抗體的消亡;N為抗體數(shù)目;mji和mik分別表示抗體間的激勵和抑制;gi表示抗體和抗原間激勵。
受此啟發(fā),為了實現(xiàn)的任務(wù)動態(tài)環(huán)境中的多機(jī)器人任務(wù)分配,參照生物免疫網(wǎng)絡(luò)機(jī)理,將免疫網(wǎng)絡(luò)與實際的多機(jī)器人系統(tǒng)進(jìn)行類比,映射關(guān)系如表1,提出一種多機(jī)器人任務(wù)分配與協(xié)作模型。
針對一定區(qū)域內(nèi)的松散型清理搜集任務(wù),需要通過多個同構(gòu)或異構(gòu)機(jī)器人獨立或協(xié)作完成。設(shè)環(huán)境中存在m個機(jī)器人Ri()和n個任務(wù)Tj(),機(jī)器人Ri具有相應(yīng)的能力值fi和速度值vi,每項清理任務(wù)具有能力值和服務(wù)時間要求,監(jiān)測節(jié)點可以實時監(jiān)測系統(tǒng)中動態(tài)產(chǎn)生任務(wù)的位置,但無法獲得任務(wù)的具體信息,任務(wù)是否需要多機(jī)器人協(xié)作,需要在任務(wù)執(zhí)行過程中動態(tài)判別,通過多機(jī)器人協(xié)作完成區(qū)域內(nèi)的清理搜集任務(wù),可根據(jù)機(jī)器人和任務(wù)屬性定義模型[5]。
表 1 機(jī)器人系統(tǒng)與生物免疫網(wǎng)絡(luò)的映射關(guān)系Table 1 Mapping relationship between robot system and biological immune network
1) 抗體與抗原激勵
在初始時刻,機(jī)器人間的任務(wù)分配,主要是根據(jù)任務(wù)對機(jī)器人的激勵進(jìn)行選擇,某個任務(wù)對某個機(jī)器人的激勵較高,則其獲得該任務(wù)的概率就較大。設(shè)第i個機(jī)器人Ri和第j個任務(wù)Tj之間的激勵為gij,將其定義為
式中:λ1、λ2、λ3相應(yīng)部分調(diào)整系數(shù),fi和 vi為相應(yīng)機(jī)器人Ri的能力值和速度大小,dij為機(jī)器人Ri和任務(wù)Tj之間的距離大小,pj為任務(wù)Tj的優(yōu)先等級。
2) 抗體與抗體激勵
根據(jù)獨特型免疫網(wǎng)絡(luò),抗體之間也存在激勵。在機(jī)器人到達(dá)相應(yīng)任務(wù)點后,若機(jī)器人Ri需要得到幫助,則其需要激勵另外機(jī)器人,以使其盡快得到協(xié)作。若機(jī)器人Ri可以單獨的執(zhí)行被分配的任務(wù),則其將會對其他機(jī)器人產(chǎn)生抑制作用,便不會產(chǎn)生激勵作用。設(shè)機(jī)器人Ri對機(jī)器人Rj產(chǎn)生的激勵為mij,將其定義為
式中:λ4、λ5、λ6為相應(yīng)部分的調(diào)整系數(shù),fi和 vi為相應(yīng)機(jī)器人Ri的能力值和速度值,dij為兩機(jī)器人間的歐氏距離,當(dāng)?shù)却谀硞€任務(wù)處的機(jī)器人對空閑機(jī)器人激勵越大,其前往協(xié)作的概率越大。
3) 綜合激勵
當(dāng)機(jī)器要再次進(jìn)行任務(wù)選擇的時候,其需要根據(jù)受到的抗原和抗體的綜合激勵值來選擇。綜合激勵由某個任務(wù)對該機(jī)器人的激勵以及在該任務(wù)上處于等待的機(jī)器人對該機(jī)器人的激勵共同構(gòu)成,以此來完成機(jī)器人的任務(wù)分配與協(xié)作,設(shè)Aij為任務(wù)Tj對機(jī)器人Ri的綜合激勵,將其定義為
式中:α、β為相應(yīng)部分調(diào)整參數(shù),N為在任務(wù)Tj上等待的機(jī)器人數(shù)目,mik為機(jī)器人間產(chǎn)生的激勵,gij為任務(wù)Tj和機(jī)器人Ri之間的激勵值。機(jī)器人根據(jù)模型選擇任務(wù),如有任務(wù)處于待協(xié)作狀態(tài),等待在某個任務(wù)上的機(jī)器人越多,此任務(wù)被選擇的概率越大,從而能盡快地得到協(xié)作。
利用文中提出的分配和協(xié)作模型,能實現(xiàn)任務(wù)的一次分配,在此基礎(chǔ)上引入事件驅(qū)動的機(jī)制[13],使多機(jī)器人系統(tǒng)可以自適應(yīng)地處理動態(tài)任務(wù),并引入焦躁模型來解決任務(wù)死鎖。
系統(tǒng)中設(shè)定機(jī)器人和任務(wù)的狀態(tài)轉(zhuǎn)移如圖1所示,任務(wù)狀態(tài)和機(jī)器人的狀態(tài)相互對應(yīng),待分配任務(wù)激勵空閑機(jī)器人轉(zhuǎn)變?yōu)橐逊峙錉顟B(tài),如果此機(jī)器人可以自行完成任務(wù),則任務(wù)轉(zhuǎn)變?yōu)閳?zhí)行態(tài);否則任務(wù)轉(zhuǎn)變?yōu)榇齾f(xié)作,處于待協(xié)作狀態(tài)的任務(wù)獲得協(xié)作轉(zhuǎn)變?yōu)橐逊峙錉顟B(tài),若等待協(xié)作的機(jī)器人由于長時間沒有得到協(xié)作而放棄任務(wù),則任務(wù)由待協(xié)作狀態(tài)重新回到待分配狀態(tài)。
圖1 機(jī)器人和任務(wù)狀態(tài)狀態(tài)轉(zhuǎn)移圖Fig. 1 Robot and task state transition diagram
初始時刻,所有任務(wù)處于未分配狀態(tài),機(jī)器人都處于空閑狀態(tài),每個機(jī)器人按照激勵值選擇最適合自己的任務(wù),如果每個機(jī)器人選擇的任務(wù)都不重復(fù),則直接獲得相應(yīng)任務(wù),轉(zhuǎn)變?yōu)楸患顟B(tài);如果出現(xiàn)沖突,則沖突的機(jī)器人中次優(yōu)任務(wù)激勵低者獲得最優(yōu)任務(wù),次優(yōu)任務(wù)激勵相同時,隨機(jī)分配最優(yōu)任務(wù),其余機(jī)器人重新選擇任務(wù)。在任務(wù)分配時,每個機(jī)器人同一時刻只能得到一個任務(wù),且當(dāng)機(jī)器人處于閑暇狀態(tài)時才能被任務(wù)所激勵,任務(wù)處于等待和空閑狀態(tài)時才可以對機(jī)器人產(chǎn)生激勵作用。
靜態(tài)任務(wù)分配方法只可以解決多機(jī)器人任務(wù)的一次分配,在此基礎(chǔ)上引入事件驅(qū)動的機(jī)制,當(dāng)系統(tǒng)需要再次進(jìn)行任務(wù)分配或是有新的任務(wù)產(chǎn)生時,通過事件觸發(fā)重新進(jìn)行分配,以滿足環(huán)境動態(tài)性的要求。
系統(tǒng)中,定義如下事件:
① 系統(tǒng)中有新的任務(wù)產(chǎn)生;
② 系統(tǒng)中有機(jī)器人狀態(tài)由工作轉(zhuǎn)變?yōu)榭臻e;
③ 系統(tǒng)中有機(jī)器人狀態(tài)由等待轉(zhuǎn)變?yōu)榭臻e;
④ 系統(tǒng)中有機(jī)器人狀態(tài)由被激勵轉(zhuǎn)變?yōu)榈却?/p>
⑤ 系統(tǒng)中有機(jī)器人發(fā)生故障。
根據(jù)事件驅(qū)動的機(jī)制,當(dāng)系統(tǒng)中有如上事件發(fā)生時,觸發(fā)系統(tǒng),處于空閑狀態(tài)的機(jī)器人進(jìn)行再次任務(wù)選擇。
對于一個多機(jī)器人系統(tǒng)而言,常常會發(fā)生任務(wù)死鎖,即區(qū)域中所有機(jī)器人都因無法完成任務(wù)而處于等待狀態(tài)[14]。對于智能系統(tǒng)而言,需要機(jī)器人能夠自主地解除死鎖,盡快恢復(fù)到工作狀態(tài)。
為了使機(jī)器人能夠自主解除死鎖狀態(tài),引入一種焦躁模型。當(dāng)機(jī)器人長時間由于無法完成任務(wù)而處于等待,激素分泌使其產(chǎn)生焦躁情緒,當(dāng)達(dá)到一定的上限時,其將會放棄對該任務(wù)的等待,從而重新回到空閑狀態(tài),使其能夠協(xié)助其余處于等待狀態(tài)的機(jī)器人完成任務(wù)。
借鑒L.S.Farhy提出的激素分泌的規(guī)律[15],定義系統(tǒng)中引起焦躁情緒的激素分泌模型為
式中:T為閾值,t為時間變量,n為Hill系數(shù),且n≥1。
機(jī)器人處于等待狀態(tài)而分泌激素,當(dāng)其超過設(shè)定閾值C時,機(jī)器人會放棄等待的任務(wù),回到空閑狀態(tài),且機(jī)器人會對該任務(wù)產(chǎn)生記憶,避免在該任務(wù)處于未分配狀態(tài)時再次選擇,陷入循環(huán)死鎖狀態(tài)。若該任務(wù)處于協(xié)作狀態(tài)時,其對該機(jī)器人的激勵將會被弱化,表達(dá)式如式(7)所示:
式中:gij為抗原對抗體的激勵表達(dá)式;η為調(diào)整參數(shù),0<η<1。
在多機(jī)器人系統(tǒng)中,采用混合式的結(jié)構(gòu)實現(xiàn)文中算法,服務(wù)端通過多進(jìn)程模擬機(jī)器人,實現(xiàn)任務(wù)的分配,可以降低網(wǎng)絡(luò)通信消耗,每個進(jìn)程與一個實際的機(jī)器人通過網(wǎng)絡(luò)通信,保持狀態(tài)同步,多個機(jī)器并行運行。算法步驟如下:
① 初始化系統(tǒng)抗原抗體信息;
② 計算空閑機(jī)器人與待分配任務(wù)和待協(xié)作任務(wù)的綜合激勵值;
③ 各機(jī)器人自主解除沖突,選擇合適的任務(wù),并向任務(wù)處移動;
④ 機(jī)器人判斷能否完成任務(wù),若能跳到⑥,否則轉(zhuǎn)到⑤;
⑤ 機(jī)器人狀態(tài)更改,事件觸發(fā),轉(zhuǎn)到②,等待合適的空閑機(jī)器協(xié)作;
⑥ 機(jī)器人獨自或協(xié)作完成相應(yīng)任務(wù);
⑦ 系統(tǒng)終止,否則轉(zhuǎn)到⑧;
⑧ 狀態(tài)更新,事件觸發(fā),轉(zhuǎn)到②。
算法的程序流程圖如圖2所示:
圖2 多機(jī)器人動態(tài)任務(wù)分配流程Fig. 2 Multi-robot dynamic task allocation
多機(jī)器人系統(tǒng)的通信和計算消耗是任務(wù)分配算法中重要的衡量指標(biāo)[14],對于維持整個系統(tǒng)的穩(wěn)定起著重要的作用。為了和其他算法進(jìn)行比較,以機(jī)器人數(shù)量n和任務(wù)量m的函數(shù)形式O(·)來描述通訊量和計算量。
通訊量表示機(jī)器人在一次任務(wù)選擇時的信息交互量。從通信量來看,由于本系統(tǒng)采用混合式結(jié)構(gòu)實現(xiàn),每一個機(jī)器人都擁有服務(wù)子進(jìn)程專門服務(wù),每個服務(wù)子進(jìn)程為相應(yīng)機(jī)器人選擇當(dāng)前最合適的任務(wù),在服務(wù)端進(jìn)行任務(wù)沖突解決,并不需要機(jī)器人實際通信解除沖突。只在任務(wù)的下達(dá)和任務(wù)反饋時需要進(jìn)行通信,所以一次任務(wù)分配中每個機(jī)器人的通信量是O(1)。
計算量表示機(jī)器人選擇一次任務(wù)所需要計算的時間復(fù)雜度。機(jī)器人每次選擇任務(wù),都需要進(jìn)行m次綜合激勵計算,選擇合適的任務(wù),然后需要進(jìn)行n次比較解決任務(wù)沖突問題,當(dāng)有k個機(jī)器人任務(wù)沖突,需要2k次計算解決任務(wù)沖突,故計算量是O(m+n+2k)。
按照任務(wù)分配類型,文中算法滿足“同時”、“再分配”,“同時”指可以考慮多個待分配任務(wù),“再分配”指任務(wù)能夠進(jìn)行重分配[16]。這種任務(wù)分配方法明顯優(yōu)于“順序”、“無再分配”、無法適應(yīng)動態(tài)環(huán)境的算法,故不做對比。本文算法ALLIANCE[4]、BLE[17]性能比較如表 2所示。
表 2 任務(wù)分配算法性能Table 2 Task allocation algorithm performance
為了驗證基于事件驅(qū)動免疫網(wǎng)絡(luò)算法的有效性,在MATLAB 2012b平臺上,設(shè)置動態(tài)的清理搜集,進(jìn)行多機(jī)器人實驗。設(shè)計不同場景,分別驗證文中算法的動態(tài)任務(wù)分配和協(xié)作性能,以及系統(tǒng)自主處理任務(wù)死鎖能力。系統(tǒng)監(jiān)測節(jié)點可以實時感知任務(wù)是否產(chǎn)生及產(chǎn)生的位置,而任務(wù)能否獨自完成需要機(jī)器人任務(wù)執(zhí)行過程中進(jìn)行判斷,事先無法獲知。
3.1.1 實驗環(huán)境參數(shù)
仿真環(huán)境設(shè)定為10 m×10 m的區(qū)域,實驗中以圓形“○”代表機(jī)器人,以正方形“□”表示任務(wù),R1/1代表1號機(jī)器人,且其能力值為1,T1/1代表任務(wù)1,且其完成需要的能力值為1,機(jī)器人的移動速率設(shè)為v=0.1 m/s(可自行設(shè)定),任務(wù)優(yōu)先級設(shè)為p=1(可自行設(shè)定,不失一般性)。算法中參數(shù)設(shè)置為:λ1=0.6,λ2=0.4,λ3=0.2,λ4=0.5,λ5=0.5,λ6=0.2,α=0.6,β=0.4,η=0.6,C=0.6,T=5,n=5。
設(shè)定兩種仿真實驗環(huán)境,環(huán)境1中,初始設(shè)定6個靜態(tài)任務(wù):T1/1,坐標(biāo)(3, 2.5);T2/2,坐標(biāo)(2,7);T3/1,坐標(biāo) (5.5, 4);T4/1,坐標(biāo) (7, 2);T5/1,坐標(biāo)(6, 6);T6/1,坐標(biāo) (8, 8.5),在機(jī)器人運行過程中,設(shè)定兩個動態(tài)任務(wù):T7/1,坐標(biāo)(5, 2);T8/1,坐標(biāo)(8,6)。在環(huán)境中設(shè)有4個同構(gòu)機(jī)器人,分別放置在不同的位置:R1/1,坐標(biāo) (0.1, 0.1);R2/1,坐標(biāo) (9.9,0.1);R3/1,坐標(biāo) (9.9, 9.9);R4/1,坐標(biāo) (0.1, 9.9)。
在環(huán)境2中,主要是為了驗證算法的自主解死鎖能力,不失一般性,在環(huán)境中設(shè)置兩個靜態(tài)任務(wù):T1/2,坐標(biāo) (2, 2);T2/3,坐標(biāo) (6, 4)。設(shè)置兩個機(jī)器人:R1/1,坐標(biāo) (0.1, 0.1);R2/2,坐標(biāo) (9.9, 0.1)。
3.1.2 仿真實驗結(jié)果分析
如圖3(a)所示為環(huán)境1的仿真結(jié)果。圖中虛線代表前去協(xié)作過程,實線代表首次被某任務(wù)激勵而前往過程。根據(jù)本文算法,在初始時刻,每個機(jī)器人被相應(yīng)的任務(wù)所激勵,機(jī)器人R1/1前往T1/1,R2/1前往 T4/1,R3/1前往 T6/1,R4/1前往 T2/2,當(dāng)機(jī)器人執(zhí)行任務(wù)時,會判斷是否可以獨立完成,如果可以獨自完成則開始執(zhí)行任務(wù),否則更改狀態(tài),觸發(fā)請求協(xié)作。在第1次任務(wù)分配中,由于機(jī)器人速度相同,機(jī)器人R2/1和R3/1先于R1/1完成任務(wù),進(jìn)行第2次任務(wù)選擇,而此時R4/1機(jī)器人在T2/2處等待協(xié)作,由于距離較遠(yuǎn),機(jī)器人R2/1和R3/1被任務(wù)T3/1和T5/1所激勵,R1/1完成T1/1后,初始的靜態(tài)任務(wù)只剩下處于等待協(xié)作的T2/2,其被激勵前往協(xié)作。在所有機(jī)器人都處于二次激勵時,系統(tǒng)產(chǎn)生動態(tài)任務(wù)T7/1和T8/1,觸發(fā)請求任務(wù)分配,然而此時沒有處于閑暇狀態(tài)的機(jī)器人,任務(wù)暫時不會被分配,在R2/1和R3/1完成T3/1和T5/1后被T7/1和T8/1再次激勵,前往任務(wù)處進(jìn)行處理。
如圖3(b)所示為環(huán)境2的仿真結(jié)果。初始時刻,機(jī)器人R1/1和R2/2分別被T1/2和T2/3所激勵,機(jī)器人R1/1先到達(dá)任務(wù)處進(jìn)行協(xié)作等待,同時開始分泌激素,R2/2隨后到達(dá)T2/3,亦處于協(xié)作等待,同時開始分泌激素,隨著時間的增加,機(jī)器人R1/1產(chǎn)生焦躁情緒而放棄等待,同時標(biāo)記任務(wù)T1/2,隨后R1/1前往協(xié)作處理T2/3,機(jī)器人R2/2得到協(xié)作,在任務(wù)T2/3完成后,機(jī)器人R2/2受到T1/2任務(wù)激勵,前往完成,結(jié)果表明,系統(tǒng)能夠可以成功解除死鎖。
多次實驗驗證表明,基于事件驅(qū)動的免疫網(wǎng)絡(luò)算法能夠?qū)崿F(xiàn)動態(tài)任務(wù)場景中多機(jī)器人的任務(wù)自主分配與協(xié)作,具有較強(qiáng)的適應(yīng)性和魯棒性。
圖3 仿真結(jié)果Fig. 3 Simulation result
為了驗證文中算法在實際多機(jī)器人動態(tài)任務(wù)分配系統(tǒng)中的有效性,利用多個khepera機(jī)器人,搭建多機(jī)器人障礙物環(huán)境,利用攝像頭進(jìn)行環(huán)境監(jiān)測,當(dāng)監(jiān)測到系統(tǒng)中有任務(wù)(以紅色物品代替)產(chǎn)生時,利用文中算法,激勵相應(yīng)的機(jī)器人前往完成任務(wù),并采用人工勢場法使機(jī)器人可以避開障礙,安全到達(dá)任務(wù)點。系統(tǒng)中機(jī)器人間利用網(wǎng)絡(luò)與服務(wù)器通信。
圖4(a)為系統(tǒng)中機(jī)器人系統(tǒng)初始圖,當(dāng)在系統(tǒng)中放置相應(yīng)物品,將會觸發(fā)系統(tǒng)進(jìn)行任務(wù)分配,圖4(b)為機(jī)器人被相應(yīng)任務(wù)激勵前往目標(biāo)示意圖。
圖4 實際機(jī)器人系統(tǒng)仿真圖Fig. 4 Actual robot system simulation
經(jīng)過多次實驗,設(shè)置不同任務(wù),系統(tǒng)都能快速反應(yīng),激勵相應(yīng)的機(jī)器人進(jìn)行任務(wù)的執(zhí)行與協(xié)作,驗證了文中算法在實際多機(jī)器人動態(tài)任務(wù)分配系統(tǒng)中具有較高的可行性。
針對一類復(fù)雜的松散型動態(tài)任務(wù),文中基于免疫網(wǎng)絡(luò)和事件驅(qū)動機(jī)制,提出一種動態(tài)任務(wù)分配算法,解決了多機(jī)器人的動態(tài)任務(wù)分配與自主協(xié)作問題,并利用焦躁模型解決了任務(wù)分配過程中的死鎖問題,仿真和實驗表明本文算法在一類需要協(xié)作的動態(tài)任務(wù)分配問題中的有效性,具有較強(qiáng)的自適應(yīng)性。將文中算法應(yīng)用于實際場景的多機(jī)器人系統(tǒng)中,取得了較好的效果,表明將本文算法應(yīng)用到實際的多機(jī)器人系統(tǒng)中有較高的可行性。課題后續(xù)將把重點放在分配模型的優(yōu)化和實際應(yīng)用的拓展上,在提高算法性能的同時,能夠?qū)崿F(xiàn)更大的實際價值。