王蓀馨, 王彥明, 孔杰, 申高攀
(1.西安理工大學(xué) 機(jī)械與精密儀器工程學(xué)院, 陜西 西安 710048; 2.西北工業(yè)大學(xué) 機(jī)電學(xué)院, 陜西 西安 710072)
近年來,得益于通訊傳感、智能控制、先進(jìn)制造等諸多領(lǐng)域的蓬勃發(fā)展和技術(shù)融合,群體機(jī)器人技術(shù)為愈發(fā)復(fù)雜的多任務(wù)場(chǎng)景問題提供了有效的解決思路和可行方案[1]。區(qū)別于傳統(tǒng)中心式控制的單機(jī)器人系統(tǒng),群體機(jī)器人因?yàn)槠浯笠?guī)模與分布式的特性,具有高魯棒性、可擴(kuò)展性、柔性等顯著優(yōu)勢(shì),在協(xié)同搜索、災(zāi)難援救、移動(dòng)傳感網(wǎng)、蜂群作戰(zhàn)等領(lǐng)域具有廣闊的應(yīng)用前景。
當(dāng)群體機(jī)器人在未知、動(dòng)態(tài)變化的復(fù)雜環(huán)境下執(zhí)行作業(yè)任務(wù)時(shí),外部的擾動(dòng)和沖擊可能導(dǎo)致群體系統(tǒng)內(nèi)部的部分個(gè)體發(fā)生故障或失效,從而影響整個(gè)群體系統(tǒng)的作業(yè)效能。群體系統(tǒng)具有較高的冗余性,在單個(gè)或多個(gè)機(jī)器人發(fā)生故障或失效的情況下仍能維持系統(tǒng)的性能[2],但是當(dāng)失效的機(jī)器人數(shù)量超過一定的安全閾值時(shí),整個(gè)系統(tǒng)將出現(xiàn)性能劣化甚至崩潰。因此,賦予群體機(jī)器人系統(tǒng)一定的自診斷和自修復(fù)能力,提升整個(gè)群體系統(tǒng)在擾動(dòng)或?qū)构r下的自愈能力和抗打擊能力,是確保群體系統(tǒng)順利完成任務(wù)的必備條件。
在群體機(jī)器人自修復(fù)研究領(lǐng)域,文獻(xiàn)[3]根據(jù)機(jī)器人的位置模式分別給予獎(jiǎng)勵(lì)與懲罰措施,以期實(shí)現(xiàn)虛擬胚胎方法驅(qū)動(dòng)下?lián)p傷機(jī)器人有機(jī)體的再生修復(fù),但是在群體內(nèi)機(jī)器人數(shù)量有限的條件下,該自修復(fù)方法的效果欠佳。文獻(xiàn)[4]提出了一種根據(jù)密度信息協(xié)調(diào)機(jī)器人均勻覆蓋的無線通訊網(wǎng)絡(luò)修復(fù)算法,但該修復(fù)方法因機(jī)器人能耗大導(dǎo)致系統(tǒng)自愈過程時(shí)間長(zhǎng)。文獻(xiàn)[5]提出了一種基于密閉容器氣體分散模型的自修復(fù)算法,通過引入作用力與虛擬向量,實(shí)現(xiàn)機(jī)器人在指定二維區(qū)域的擴(kuò)散;然而該方法中的機(jī)器人受最大通訊范圍約束,系統(tǒng)缺失嚴(yán)重時(shí)可能無法對(duì)圖案形狀完全修復(fù)。文獻(xiàn)[6]通過群體內(nèi)機(jī)器人執(zhí)行簡(jiǎn)單規(guī)則不斷調(diào)整構(gòu)型規(guī)模,最終實(shí)現(xiàn)依據(jù)當(dāng)前群體規(guī)模對(duì)原始形態(tài)的縮放修復(fù),但該方法需所有機(jī)器人不斷嘗試并調(diào)整修復(fù)方案,由此導(dǎo)致其修復(fù)過程耗費(fèi)大量計(jì)算資源。
國(guó)內(nèi)的研究機(jī)構(gòu)在群體系統(tǒng)自修復(fù)領(lǐng)域也開展了相關(guān)研究探索工作。文獻(xiàn)[7]提出了一種基于遞歸機(jī)制的移動(dòng)機(jī)器人編隊(duì)自修復(fù)方法,然而,由于通信量隨機(jī)器人數(shù)量的增加呈指數(shù)增長(zhǎng),使得該修復(fù)方法不適合大規(guī)模集群機(jī)器人的修復(fù)場(chǎng)景。文獻(xiàn)[8]利用元胞自動(dòng)機(jī)規(guī)則和梯度方向吸引,引導(dǎo)機(jī)器人對(duì)L系統(tǒng)的目標(biāo)構(gòu)型進(jìn)行缺失修復(fù),該方法受L系統(tǒng)的構(gòu)型描述約束,其主要適用于枝狀拓?fù)浣Y(jié)構(gòu)。文獻(xiàn)[9]通過引入活化激素和抑制激素對(duì)機(jī)器人進(jìn)行動(dòng)態(tài)路徑規(guī)劃,實(shí)現(xiàn)機(jī)器人對(duì)空缺位置的自主填補(bǔ),該方法適用于多空缺單元的填補(bǔ),對(duì)于較大范圍缺失單元或部位的自修復(fù)存在一定困難。
考慮到群體機(jī)器人系統(tǒng)多應(yīng)用于協(xié)同、編隊(duì)等非結(jié)構(gòu)化環(huán)境下的復(fù)雜對(duì)抗性任務(wù),群體系統(tǒng)內(nèi)的機(jī)器人個(gè)體需要保持一定的通訊距離來形成一個(gè)整體,從而提高整個(gè)群體系統(tǒng)的抗損毀性和生存能力。現(xiàn)有的變密度內(nèi)部擴(kuò)散自修復(fù)思路[6]為了保持修復(fù)前后的幾何形狀一致性而改變了群體內(nèi)部機(jī)器人的間距,而通信距離過大則不能保持群體內(nèi)機(jī)器人通信的連通性。等密度形態(tài)縮放自修復(fù)思路則是通過對(duì)群體系統(tǒng)規(guī)模進(jìn)行判斷識(shí)別,并在確保機(jī)器人間距不變的條件下自主修復(fù)為按照比例縮放的新目標(biāo)構(gòu)型體。因此,等密度形態(tài)縮放自修復(fù)思路維持了機(jī)器人個(gè)體之間的緊密聯(lián)系,適用于復(fù)雜對(duì)抗環(huán)境下群體系統(tǒng)的自組織和自修復(fù)。
為此,針對(duì)大規(guī)模群體機(jī)器人系統(tǒng)在局部缺失情況下的自主修復(fù)問題,在借鑒等密度縮放修復(fù)思路的基礎(chǔ)上,本文提出了一種隨缺失規(guī)模柔性縮放的群體機(jī)器人形態(tài)自修復(fù)方法。即:基于以系統(tǒng)缺失規(guī)模為驅(qū)動(dòng)的自診斷方法來判定群體系統(tǒng)損傷或缺失部位,并基于原始構(gòu)型及當(dāng)前群體狀態(tài)自主生成新修復(fù)目標(biāo)構(gòu)型,然后在新目標(biāo)構(gòu)型的引導(dǎo)下,通過基于個(gè)體狀態(tài)與周圍環(huán)境信息的運(yùn)動(dòng)規(guī)則集,解決群體機(jī)器人自主修復(fù)過程中的“誰(shuí)先走”、“怎么走”、“到哪里”3類決策問題。
群體機(jī)器人大規(guī)模、低成本的特性,使得群體系統(tǒng)中部分個(gè)體發(fā)生故障或損壞不可避免。另外,群體機(jī)器人系統(tǒng)缺乏全局信息的指導(dǎo),無法通過系統(tǒng)層面的全局規(guī)劃行為來實(shí)現(xiàn)損傷部位的修復(fù)工作。因此,機(jī)器人如何僅依賴自身有限的感知與信息交互能力,通過個(gè)體間的協(xié)調(diào)合作自主有序地完成缺失部位的修復(fù)任務(wù),是群體機(jī)器人系統(tǒng)亟待解決的現(xiàn)實(shí)問題。
等密度形態(tài)縮放是指:群體系統(tǒng)以系統(tǒng)內(nèi)機(jī)器人規(guī)模信息為依據(jù),以原始目標(biāo)構(gòu)型信息為參考,將局部缺失后的大規(guī)模群體系統(tǒng)修復(fù)為經(jīng)比例縮放后原始構(gòu)型體的相似形狀,同時(shí)修復(fù)構(gòu)型保持機(jī)器人之間的分布密度不變。該修復(fù)過程的比例由構(gòu)型體原有的機(jī)器人數(shù)量和缺失后群體中機(jī)器人的數(shù)量確定。如圖1所示,機(jī)器人系統(tǒng)以經(jīng)縮放后的新目標(biāo)構(gòu)型為驅(qū)動(dòng),始終維持個(gè)體之間的緊密聯(lián)系,自起始位置向新目標(biāo)構(gòu)型的空缺區(qū)域有序運(yùn)動(dòng)。

圖1 等密度縮放修復(fù)原理圖
在前期的群體機(jī)器人自主成型方法基礎(chǔ)上[10],提出了大規(guī)模群體機(jī)器人的分層修復(fù)策略。該策略包含3個(gè)部分:分層剝離、分層填充、迭代循環(huán),如圖2所示。當(dāng)系統(tǒng)檢測(cè)出受外界沖擊導(dǎo)致局部機(jī)體缺失后,對(duì)當(dāng)前群體規(guī)模數(shù)量進(jìn)行自主識(shí)別判斷,并結(jié)合原目標(biāo)構(gòu)型生成新的修復(fù)構(gòu)型;以該等密度縮放的構(gòu)型信息作為修復(fù)任務(wù),將修復(fù)目標(biāo)構(gòu)型與當(dāng)前機(jī)器人聚集體組合匹配后,在分層修復(fù)策略的驅(qū)動(dòng)下,處于修復(fù)目標(biāo)構(gòu)型體外區(qū)域,且位于當(dāng)前聚集體最外層的機(jī)器人個(gè)體會(huì)有序運(yùn)動(dòng)到修復(fù)目標(biāo)構(gòu)型體內(nèi)區(qū)域,實(shí)現(xiàn)空缺位置的填補(bǔ),從而完成系統(tǒng)的修復(fù)任務(wù)。

圖2 集群機(jī)器人自修復(fù)策略示意圖
在圖2中,機(jī)器人群體結(jié)合自身位置坐標(biāo),與形成的修復(fù)目標(biāo)構(gòu)型體函數(shù)表征式進(jìn)行匹配,根據(jù)坐標(biāo)與函數(shù)輪廓圍成封閉區(qū)域的位置關(guān)系,將缺失后的群體系統(tǒng)劃分成2部分,即:位置坐標(biāo)在函數(shù)輪廓內(nèi)的部分稱為修復(fù)目標(biāo)構(gòu)型體內(nèi)區(qū)域,位置坐標(biāo)在函數(shù)輪廓外的區(qū)域稱為修復(fù)目標(biāo)構(gòu)型體外的區(qū)域(見圖2a))。在此基礎(chǔ)上依據(jù)分層填補(bǔ)策略,通過目標(biāo)構(gòu)型體外個(gè)體間的局部交互,規(guī)劃出目標(biāo)構(gòu)型體外優(yōu)先移的機(jī)器人集合,構(gòu)成運(yùn)動(dòng)鏈(見圖2b))。依據(jù)分層填補(bǔ)策略,運(yùn)動(dòng)鏈機(jī)器人沿著聚集體邊界運(yùn)動(dòng),并依次填補(bǔ)至待填補(bǔ)區(qū)域內(nèi)邊緣層(見圖2c))。當(dāng)運(yùn)動(dòng)鏈內(nèi)個(gè)體填補(bǔ)結(jié)束后,依據(jù)迭代循環(huán)策略,新的運(yùn)動(dòng)鏈不斷被激發(fā)并填充到填補(bǔ)區(qū)域,直至完成自修復(fù)任務(wù)(見圖2d))。
針對(duì)二維已成型群機(jī)器人系統(tǒng),基于上述等密度形態(tài)縮放修復(fù)原理和分層修復(fù)策略,提出一種群體機(jī)器人形態(tài)修復(fù)方法,如圖3所示。

圖3 修復(fù)目標(biāo)構(gòu)型任務(wù)驅(qū)動(dòng)下的群體機(jī)器人自修復(fù)過程
在修復(fù)前的自診斷階段,通過群體系統(tǒng)對(duì)當(dāng)前聚集體規(guī)模識(shí)別判斷(見圖3a)),基于原成型體構(gòu)型信息重新生成新修復(fù)目標(biāo)構(gòu)型(見圖3b)),并由競(jìng)爭(zhēng)機(jī)制選出的領(lǐng)導(dǎo)者機(jī)器人下發(fā)至所有機(jī)器人個(gè)體。隨后,所有機(jī)器人個(gè)體通過局部感知與交互,重新生成覆蓋整個(gè)初始聚集體的梯度場(chǎng),對(duì)自身梯度參數(shù)信息初始化(見圖3c))。
在修復(fù)運(yùn)動(dòng)控制階段,以機(jī)器人個(gè)體不同狀態(tài)為依據(jù),沿順時(shí)針形成運(yùn)動(dòng)鏈(見圖3d));之后,運(yùn)動(dòng)鏈內(nèi)的個(gè)體沿著當(dāng)前聚集體邊界依次填補(bǔ)至待填補(bǔ)區(qū)域內(nèi)邊緣層(見圖3e));當(dāng)運(yùn)動(dòng)鏈內(nèi)個(gè)體填補(bǔ)結(jié)束后,依據(jù)迭代循環(huán)策略,新的運(yùn)動(dòng)鏈不斷被激發(fā)并填充到填補(bǔ)區(qū)域,直至完成自修復(fù)任務(wù)(見圖3f))。
已成型體作為穩(wěn)定的群體系統(tǒng),內(nèi)部機(jī)器人在成型任務(wù)結(jié)束后通過傳感器實(shí)時(shí)檢測(cè)周圍環(huán)境的狀態(tài)變化。若循環(huán)檢測(cè)的2個(gè)周期內(nèi),機(jī)器人周圍環(huán)境發(fā)生突變,某方位的鄰居機(jī)器人缺失,則該突變將破壞群體系統(tǒng)的循環(huán)檢測(cè)機(jī)制,從而進(jìn)入自主修復(fù)的自診斷階段。自診斷算法通過對(duì)群體系統(tǒng)的損傷檢測(cè),生成新修復(fù)構(gòu)型作為后續(xù)修復(fù)階段的目標(biāo)成型任務(wù)。
2.1.1 缺失部位檢測(cè)
群體系統(tǒng)完成自主成型任務(wù)后,系統(tǒng)內(nèi)部的機(jī)器人個(gè)體相互之間保持緊密、對(duì)齊排列的晶格式網(wǎng)絡(luò)。將相鄰晶格單元的機(jī)器人間距作為閾值,將傳感器與環(huán)境交互獲取的距離信息和該閾值作比較,實(shí)現(xiàn)循環(huán)檢測(cè)自身鄰域環(huán)境狀態(tài)信息的目的。設(shè)定機(jī)器人可以保存2個(gè)檢測(cè)周期時(shí)間范圍內(nèi)其鄰域內(nèi)晶格單元的狀態(tài)信息,即該晶格位置是否被機(jī)器人獨(dú)立占據(jù)。若受到外部沖擊導(dǎo)致局部機(jī)器人出現(xiàn)故障或損壞,則已成型體的構(gòu)型必然出現(xiàn)局部缺失。對(duì)于處于缺失區(qū)域邊緣的機(jī)器人來說,其鄰域晶格的狀態(tài)信息也必然發(fā)生變化,從而引發(fā)2次循環(huán)檢測(cè)得到的狀態(tài)信息發(fā)生跳變。
如圖4所示,因鄰域范圍內(nèi)的機(jī)器人鄰居缺失而引發(fā)檢測(cè)信息跳變的機(jī)器人個(gè)體(見圖4b)),分化為缺失邊緣的危險(xiǎn)狀態(tài)機(jī)器人,并向群體系統(tǒng)廣播損傷檢測(cè)結(jié)果,令所有機(jī)器人獲取修復(fù)任務(wù)執(zhí)行許可,由成型后的循環(huán)檢測(cè)狀態(tài)切換至修復(fù)前自診斷狀態(tài)(見圖4c))。待系統(tǒng)內(nèi)機(jī)器人均完成狀態(tài)轉(zhuǎn)化,可開展后續(xù)群體系統(tǒng)規(guī)模識(shí)別工作。

圖4 缺失部位檢測(cè)方法
2.1.2 群體系統(tǒng)規(guī)模識(shí)別
群體系統(tǒng)規(guī)模識(shí)別作為自診斷工作的重要部分,決定了以當(dāng)前系統(tǒng)規(guī)模為依據(jù)而生成的修復(fù)目標(biāo)構(gòu)型的準(zhǔn)確性。如圖5所示,群體系統(tǒng)規(guī)模識(shí)別階段通過2個(gè)步驟來實(shí)現(xiàn):①在缺失區(qū)域的邊緣選舉出1個(gè)領(lǐng)導(dǎo)者模塊機(jī)器人作為任務(wù)執(zhí)行起點(diǎn)(見圖5a));②由領(lǐng)導(dǎo)者機(jī)器人開始,通過信號(hào)繞當(dāng)前聚集體的邊緣傳遞1周,確定當(dāng)前系統(tǒng)內(nèi)機(jī)器人的總數(shù)量規(guī)模(見圖5b))。

圖5 群體規(guī)模識(shí)別
1) 領(lǐng)導(dǎo)者選舉
文獻(xiàn)[11]中利用形態(tài)發(fā)生梯度機(jī)制來確定胚胎細(xì)胞發(fā)育過程中自身位置與極性的經(jīng)典方法,令每個(gè)處于危險(xiǎn)狀態(tài)的機(jī)器人個(gè)體都向其鄰居傳播自身ID信息,從該集體中選舉出一名領(lǐng)導(dǎo)者,作為群體系統(tǒng)規(guī)模識(shí)別的原點(diǎn)。機(jī)器人的ID信息可確保每個(gè)機(jī)器人在其局部通訊范圍內(nèi)的身份信息獨(dú)一無二,處于危險(xiǎn)狀態(tài)的機(jī)器人在接收到比自身ID值更低的信號(hào)時(shí),則表明該機(jī)器人受到信號(hào)抑制退出選舉過程,且將較低的ID信息重新傳輸給其他機(jī)器人。最終,在設(shè)定的時(shí)間內(nèi)未收到任何低于其自身ID值的機(jī)器人將被選舉為領(lǐng)導(dǎo)者。
2) 邊緣統(tǒng)計(jì)信號(hào)傳遞與規(guī)模統(tǒng)計(jì)
處于“領(lǐng)導(dǎo)者”狀態(tài)的機(jī)器人作為群體系統(tǒng)規(guī)模識(shí)別的原點(diǎn),統(tǒng)計(jì)當(dāng)前系統(tǒng)的機(jī)器人數(shù)量規(guī)模。領(lǐng)導(dǎo)者結(jié)合自身與缺失區(qū)域的位置關(guān)系,在順時(shí)針方向優(yōu)先的約束條件下,向其鄰居機(jī)器人發(fā)送用于識(shí)別當(dāng)前系統(tǒng)規(guī)模的統(tǒng)計(jì)信號(hào),且該統(tǒng)計(jì)信號(hào)被限制在邊緣機(jī)器人個(gè)體中傳播。接收到統(tǒng)計(jì)信號(hào)的非領(lǐng)導(dǎo)者機(jī)器人處理完數(shù)據(jù)后,以信號(hào)傳入方向作為判斷依據(jù),以順時(shí)針方向優(yōu)先為約束,依次嘗試向信號(hào)傳入的高優(yōu)先級(jí)順時(shí)針方向輸出修正處理后的統(tǒng)計(jì)信號(hào),直到該信號(hào)被鄰居邊緣狀態(tài)機(jī)器人響應(yīng)并接收。隨著統(tǒng)計(jì)信號(hào)沿邊緣機(jī)器人集合傳遞,最終返回領(lǐng)導(dǎo)者本體,標(biāo)志著規(guī)模識(shí)別過程的終止。領(lǐng)導(dǎo)者機(jī)器人接收到由它發(fā)出的統(tǒng)計(jì)信號(hào)后,以相同方式對(duì)信號(hào)作識(shí)別處理,但信息處理結(jié)束后終止規(guī)模識(shí)別過程,關(guān)閉統(tǒng)計(jì)信號(hào)發(fā)送通道,并向群體系統(tǒng)廣播最終的統(tǒng)計(jì)結(jié)果,讓每個(gè)機(jī)器人都獲取當(dāng)前群體系統(tǒng)內(nèi)機(jī)器人的總數(shù)量規(guī)模。
2.1.3 修復(fù)構(gòu)型的形態(tài)再生

修復(fù)構(gòu)型的形態(tài)再生過程可分為以下2步:

step2 將原有成型形狀的外輪廓函數(shù)依據(jù)縮放比例參數(shù)進(jìn)行縮放。
2.1.4 機(jī)器人個(gè)體信息初始化
機(jī)器人結(jié)合自身位置坐標(biāo),與構(gòu)型函數(shù)表征式進(jìn)行匹配,根據(jù)坐標(biāo)與函數(shù)輪廓圍成封閉區(qū)域的位置關(guān)系,將機(jī)器人初始化為修復(fù)目標(biāo)構(gòu)型體內(nèi)機(jī)器人(state-inshape)與修復(fù)目標(biāo)構(gòu)型體外機(jī)器人(state-outshape)。處于構(gòu)型體內(nèi)的機(jī)器人,通過機(jī)身搭載傳感器感知鄰域范圍機(jī)器人存在情況,若屬于目標(biāo)構(gòu)型區(qū)域的晶格為空,則表明該晶格位置空缺受損,該機(jī)器人初始化為缺失邊緣機(jī)器人,向外提供缺失區(qū)域的方位信息。處于構(gòu)型體外的機(jī)器人,若檢測(cè)出周邊存在空缺晶格,則認(rèn)為自身處于構(gòu)型體的邊緣,初始化為外邊緣機(jī)器人,如圖6所示。

圖6 機(jī)器人個(gè)體狀態(tài)分化
位置狀態(tài)初始化完成以后,缺失區(qū)域由缺失邊緣狀態(tài)的機(jī)器人集合包圍而成。將梯度重新定義為機(jī)器人所處位置到達(dá)缺失邊緣機(jī)器人的最短曼哈頓距離,表征著機(jī)器人到達(dá)缺失區(qū)域的相對(duì)距離。故令所有處于缺失邊緣狀態(tài)的機(jī)器人梯度值設(shè)為最小值1,由其開始向外擴(kuò)散梯度信息,在當(dāng)前聚集體內(nèi)生成覆蓋所有機(jī)器人個(gè)體的梯度場(chǎng),引導(dǎo)修復(fù)目標(biāo)構(gòu)型體外的機(jī)器人向該缺失區(qū)域運(yùn)動(dòng)填充。
在完成修復(fù)目標(biāo)構(gòu)型生成、機(jī)器人參數(shù)初始化的基礎(chǔ)上,采用五鄰域結(jié)構(gòu)下的四向運(yùn)動(dòng)方式,以自診斷階段再生的修復(fù)目標(biāo)構(gòu)型為任務(wù)驅(qū)動(dòng),建立以個(gè)體行為規(guī)則為核心的自修復(fù)運(yùn)動(dòng)控制算法,并通過機(jī)器人個(gè)體間的協(xié)調(diào)配合,自下而上呈現(xiàn)出縮放規(guī)模的修復(fù)構(gòu)型,實(shí)現(xiàn)群體系統(tǒng)在局部缺失條件下的形態(tài)自修復(fù)任務(wù)。
2.2.1 外邊緣個(gè)體激活與分離規(guī)劃
機(jī)器人完成自診斷階段的工作后,經(jīng)角色分化,均由空閑狀態(tài)切換至待激活狀態(tài)。所有個(gè)體均已獲取自身梯度信息,進(jìn)入個(gè)體的激活與分離階段。由梯度定義可知,梯度表示了該機(jī)器人所處位置到達(dá)缺失邊緣機(jī)器人位置的最短曼哈頓距離,也可理解為該機(jī)器人距離缺失區(qū)域包裹的層數(shù)。如圖7所示,群體系統(tǒng)通過自診斷階段形成的梯度場(chǎng),在覆蓋了整個(gè)已成型體的范圍內(nèi)實(shí)現(xiàn)分層。處于最外層的外邊緣機(jī)器人個(gè)體由待激活狀態(tài)切換至邊緣激活狀態(tài),通過與鄰域內(nèi)鄰居機(jī)器人持續(xù)的信息交互,判斷自身是否滿足運(yùn)動(dòng)激發(fā)條件。

圖7 機(jī)器人運(yùn)動(dòng)激發(fā)過程
其中,運(yùn)動(dòng)激發(fā)條件總結(jié)如下:
1) 個(gè)體在局部范圍內(nèi)梯度值最大。機(jī)器人的梯度值在局部范圍內(nèi)最大,意味著該機(jī)器人不僅處于當(dāng)前聚集體的外邊緣,更沒有被其他機(jī)器人包裹在內(nèi),運(yùn)動(dòng)分離時(shí)不會(huì)被約束干擾。滿足該條件的機(jī)器人則觸發(fā)運(yùn)動(dòng)分離,個(gè)體被激活且切換至運(yùn)動(dòng)狀態(tài)。
2) 若局部范圍內(nèi)存在多個(gè)梯度值最大的機(jī)器人,則ID值最大者先觸發(fā)運(yùn)動(dòng)分離。在梯度場(chǎng)的同一層級(jí)中,若存在多個(gè)機(jī)器人均滿足局部范圍梯度值最大,則這些機(jī)器人的同時(shí)運(yùn)動(dòng)會(huì)導(dǎo)致運(yùn)動(dòng)碰撞或缺失運(yùn)動(dòng)參考等意外發(fā)生。為了保證機(jī)器人有序分離出聚集體,將機(jī)器人的ID值作為依據(jù),通過對(duì)比局部范圍內(nèi)相同最大梯度機(jī)器人的ID信號(hào),選擇ID值較大者優(yōu)先激活。被激活的運(yùn)動(dòng)狀態(tài)個(gè)體則持續(xù)在局部范圍內(nèi)發(fā)送運(yùn)動(dòng)壓制信號(hào),確保離開安全距離后,其他機(jī)器人才可被激活,實(shí)現(xiàn)層內(nèi)機(jī)器人集合以ID值遞減次序的有序逐個(gè)激活分離。
2.2.2 運(yùn)動(dòng)個(gè)體繞行修復(fù)
群體機(jī)器人功能簡(jiǎn)單,通信能力與運(yùn)動(dòng)能力均有限。局部范圍的通訊能力限制了機(jī)器人對(duì)自身運(yùn)動(dòng)規(guī)劃的范圍,因此機(jī)器人的每一次運(yùn)動(dòng)決策僅可實(shí)現(xiàn)局部范圍,即鄰域結(jié)構(gòu)內(nèi)的直線或繞行運(yùn)動(dòng)。結(jié)合元胞自動(dòng)機(jī)理論,可實(shí)現(xiàn)群體機(jī)器人的分布式運(yùn)動(dòng)控制,建立群體機(jī)器人自主修復(fù)系統(tǒng)的元胞自動(dòng)機(jī)運(yùn)動(dòng)規(guī)則集。通過機(jī)器人在元胞單元上的獨(dú)立運(yùn)動(dòng),實(shí)現(xiàn)整個(gè)群體系統(tǒng)的分布式控制修復(fù)運(yùn)動(dòng)。
應(yīng)用于群體機(jī)器人個(gè)體的元胞運(yùn)動(dòng)規(guī)則,包含了機(jī)器人鄰域內(nèi)的環(huán)境信息與自身具體的運(yùn)動(dòng)方案,采用二維元胞自動(dòng)機(jī)模型規(guī)則的表達(dá)形式。環(huán)境信息的具體描述為鄰域位置是否存在機(jī)器人個(gè)體;具體運(yùn)動(dòng)方案則針對(duì)具體的環(huán)境信息,結(jié)合機(jī)器人坐標(biāo)和梯度信息,依據(jù)局部范圍的直線或繞行移動(dòng),規(guī)劃實(shí)現(xiàn)相應(yīng)的運(yùn)動(dòng)任務(wù)。處于運(yùn)動(dòng)狀態(tài)的機(jī)器人個(gè)體按照元胞規(guī)則中的環(huán)境信息來匹配對(duì)應(yīng)的元胞規(guī)則,并通過運(yùn)動(dòng)執(zhí)行元胞規(guī)則的方案。
機(jī)器人根據(jù)鄰居的環(huán)境信息進(jìn)行元胞規(guī)則的判斷,若傳感器檢測(cè)無響應(yīng),表明該方位無機(jī)器人存在;若有機(jī)器人存在且進(jìn)行信息交互,則記錄該方位鄰居機(jī)器人狀態(tài)信息。為了實(shí)現(xiàn)運(yùn)動(dòng)狀態(tài)的機(jī)器人個(gè)體從聚集體中初始位置的有序分離,并沿著聚集體邊緣順時(shí)針運(yùn)動(dòng)至目標(biāo)構(gòu)型體區(qū)域的空缺位置,結(jié)合機(jī)器人鄰域與傳感器的方位信息,制定了如圖8所示的12條適用于修復(fù)任務(wù)的元胞運(yùn)動(dòng)規(guī)則。其中,規(guī)則1~8用于繞聚集體邊緣運(yùn)動(dòng)以及2.2.1節(jié)中第一類運(yùn)動(dòng)激發(fā)條件下的運(yùn)動(dòng)規(guī)劃,規(guī)則9~12用于第二類運(yùn)動(dòng)激發(fā)條件下的運(yùn)動(dòng)規(guī)劃。該規(guī)則集始終讓機(jī)器人保持順時(shí)針繞行趨勢(shì),且每運(yùn)動(dòng)至一處新位置需匹配新的元胞規(guī)則,實(shí)現(xiàn)運(yùn)動(dòng)的連續(xù)性。

圖8 元胞運(yùn)動(dòng)規(guī)則示意圖
2.2.3 修復(fù)進(jìn)程結(jié)束判定
如圖9所示,于自診斷階段生成的修復(fù)目標(biāo)構(gòu)型信息使用函數(shù)的形式,將期望圖形的外邊緣輪廓函數(shù)表達(dá)式給出。當(dāng)目標(biāo)構(gòu)型的邊緣位置空缺時(shí),觸發(fā)以目標(biāo)構(gòu)型的外邊緣輪廓為基準(zhǔn)的終止判定。機(jī)器人內(nèi)部運(yùn)動(dòng)時(shí)通過更新坐標(biāo)值,對(duì)局部范圍的構(gòu)型信息進(jìn)行識(shí)別,與外邊緣函數(shù)進(jìn)行匹配。而當(dāng)存在機(jī)器人占據(jù)構(gòu)型的外邊緣輪廓時(shí),則觸發(fā)以梯度信息為基準(zhǔn)的終止判定。

圖9 運(yùn)動(dòng)停止判斷方法
1) 邊緣終止判定
運(yùn)動(dòng)狀態(tài)機(jī)器人進(jìn)入目標(biāo)構(gòu)型體區(qū)域后,沿著已成型體的邊緣對(duì)空缺位置填補(bǔ)。機(jī)器人結(jié)合感知的局部范圍環(huán)境信息,匹配相應(yīng)的元胞運(yùn)動(dòng)規(guī)則,依據(jù)運(yùn)動(dòng)方向與鄰域方位信息,預(yù)測(cè)下一步運(yùn)動(dòng)位置。如圖9a)所示,當(dāng)機(jī)器人預(yù)測(cè)出下一步運(yùn)動(dòng)抵達(dá)的位置處于目標(biāo)構(gòu)型外輪廓函數(shù)之外,即將離開目標(biāo)構(gòu)型體區(qū)域,則觸發(fā)邊緣終止條件,個(gè)體在當(dāng)前位置停止運(yùn)動(dòng),做最后一次坐標(biāo)更新,隨后切換至終止?fàn)顟B(tài)。
2) 梯度終止判定
在某運(yùn)動(dòng)狀態(tài)機(jī)器人運(yùn)動(dòng)至目標(biāo)構(gòu)型體區(qū)域之前,已有一部分機(jī)器人填補(bǔ)至空缺區(qū)域并終止運(yùn)動(dòng)。如圖9b)所示,當(dāng)該個(gè)體進(jìn)入目標(biāo)構(gòu)型區(qū)域后,若檢測(cè)到下一運(yùn)動(dòng)方向的晶格位置處存在終止?fàn)顟B(tài)機(jī)器人,且其梯度值與自身梯度值相同,即:當(dāng)前填充層內(nèi)已有個(gè)體將目標(biāo)構(gòu)型外邊緣輪廓填充完成,但目標(biāo)構(gòu)型體內(nèi)部區(qū)域仍存在空缺位置待填充。此時(shí)觸發(fā)梯度終止條件,個(gè)體在當(dāng)前位置停止運(yùn)動(dòng),對(duì)當(dāng)前位置做坐標(biāo)更新,并切換至終止?fàn)顟B(tài)。
基于多智能體仿真軟件Netlogo,對(duì)局部缺失情況下的群體形態(tài)自修復(fù)方法進(jìn)行仿真驗(yàn)證;同時(shí)也研發(fā)了具有一定的感知、交互與運(yùn)動(dòng)能力的小型移動(dòng)機(jī)器人,完成了16臺(tái)移動(dòng)機(jī)器人的自修復(fù)實(shí)驗(yàn)驗(yàn)證。
基于Netlogo軟件搭建了大規(guī)模群體機(jī)器人形態(tài)自修復(fù)仿真驗(yàn)證平臺(tái)。由于群體機(jī)器人系統(tǒng)的修復(fù)工作展開于自主成型任務(wù)實(shí)現(xiàn)之后,故仿真初始結(jié)合成型目標(biāo),將群體系統(tǒng)排布成相應(yīng)的幾何形狀,并在此基礎(chǔ)上對(duì)已成型體形狀的隨機(jī)區(qū)域做移除缺失處理。故仿真修復(fù)驗(yàn)證主要針對(duì)已成型體局部缺失情況下的形態(tài)自修復(fù)算法展開。
3.1.1 自修復(fù)方法的可行性驗(yàn)證
假設(shè)所有機(jī)器人初始按照成型目標(biāo)構(gòu)型緊密排布在初始聚集區(qū)域,隨后人為隨機(jī)移除部分區(qū)域機(jī)器人,造成已成型體的局部缺失?;谏鲜鰧?shí)驗(yàn)平臺(tái),通過機(jī)器人內(nèi)嵌自修復(fù)算法,展開不同種類構(gòu)型的修復(fù)工作,即正方形、三角形、圓形以及箭頭狀構(gòu)型,最終實(shí)現(xiàn)將現(xiàn)有規(guī)模下的機(jī)器人修復(fù)為原始成型構(gòu)型經(jīng)縮放后的相似形狀。圖10a)~10d)分別展示了正方形、三角形、圓形及箭頭構(gòu)型部分缺失情況下修復(fù)過程。圖中的ticks代表Netlogo軟件的運(yùn)行時(shí)間步長(zhǎng)。
在圖10a)中,當(dāng)已成型體發(fā)生缺失后,應(yīng)用2.1.1節(jié)缺失部位檢測(cè)方法,檢測(cè)出缺失部分A;接下來由2.1.2節(jié)中的方法選出規(guī)模識(shí)別的領(lǐng)導(dǎo)者,進(jìn)而識(shí)別出缺失后系統(tǒng)的規(guī)模B;在統(tǒng)計(jì)出缺失后群機(jī)器人規(guī)模后,與原有機(jī)器人數(shù)量比較,得出縮放比例,由2.1.3節(jié)策略指導(dǎo)形成修復(fù)目標(biāo)構(gòu)型C;最后在2.2節(jié)提出的修復(fù)運(yùn)動(dòng)方法控制下,進(jìn)行自修復(fù)運(yùn)動(dòng)過程執(zhí)行D;在執(zhí)行完所有操作后,得到自修復(fù)后構(gòu)型E。

圖10 正方形、三角形、圓形和箭頭的自修復(fù)仿真實(shí)驗(yàn)
3.1.2 自修復(fù)方法的可擴(kuò)展性驗(yàn)證
可拓展性是群體機(jī)器人系統(tǒng)的基本屬性。以圖11所示的50×50規(guī)模的正方形構(gòu)型作為已成型體,選取不同規(guī)模的缺失區(qū)域進(jìn)行修復(fù)仿真驗(yàn)證?;?0×50規(guī)模正方形已成型體系統(tǒng),分別對(duì)其部分區(qū)域作缺失處理,在仿真軟件Netlogo中實(shí)現(xiàn)最終修復(fù)構(gòu)型為20×20,23×23,25×25,28×28,30×30,33×33,35×35,38×38,40×40,43×43,45×45,48×48的缺失區(qū)域可擴(kuò)展性實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如圖11中A~L系列所示:

圖11 自修復(fù)方法可擴(kuò)展性仿真實(shí)驗(yàn)
綜合上述實(shí)驗(yàn)數(shù)據(jù)和仿真結(jié)果擬合出缺失仿真耗時(shí)和缺失規(guī)模之間的二次函數(shù)關(guān)系(見圖12)。處于修復(fù)目標(biāo)構(gòu)型體外區(qū)域的機(jī)器人數(shù)量,隨著缺失規(guī)模的變化呈現(xiàn)出二次函數(shù)的變化,且在缺失一半機(jī)器人時(shí)達(dá)到巔峰值。而處于修復(fù)目標(biāo)構(gòu)型體外區(qū)域需執(zhí)行元胞運(yùn)動(dòng)規(guī)則,運(yùn)動(dòng)至缺失區(qū)域填充空缺位置,每運(yùn)動(dòng)一步即對(duì)應(yīng)一個(gè)時(shí)間步長(zhǎng),因此仿真耗時(shí)也隨著機(jī)器人數(shù)量的增加而線性增長(zhǎng),最終呈仿真耗時(shí)與缺失規(guī)模之間呈二次關(guān)系。

圖12 缺失仿真耗時(shí)與缺失規(guī)模關(guān)系圖
仿真環(huán)境中的實(shí)驗(yàn)驗(yàn)證基于理想條件,對(duì)于實(shí)物機(jī)器人的元器件差異性、信息處理速度差異性和通信干擾等問題無法進(jìn)行準(zhǔn)確評(píng)估。因此,以仿真模型為設(shè)計(jì)參考,搭建移動(dòng)機(jī)器人Cilibot實(shí)物,外形尺寸僅為4.5 cm×4.5 cm×4.8 cm,如圖13所示。并對(duì)本文提出的形態(tài)自修復(fù)算法做小規(guī)模的硬件實(shí)物驗(yàn)證。

圖13 Cilibot實(shí)物圖與爆炸圖
以Cilibot機(jī)器人為自主修復(fù)任務(wù)載體,將群體機(jī)器人形態(tài)自修復(fù)算法內(nèi)嵌至控制器中。以正方形構(gòu)型體為例,在規(guī)則排列好的已成型體基礎(chǔ)上移除一部分機(jī)器人,作局部缺失處理,針對(duì)缺失后的已成型體自修復(fù)問題,展開相應(yīng)的實(shí)物驗(yàn)證(見圖14)。

圖14 群體系統(tǒng)自修復(fù)實(shí)物實(shí)驗(yàn)驗(yàn)證
修復(fù)任務(wù)開始前,規(guī)則排布的群體機(jī)器人系統(tǒng)局部區(qū)域內(nèi)的個(gè)體被人為移除。處于循環(huán)檢測(cè)周圍環(huán)境狀態(tài)的機(jī)器人檢測(cè)出周圍鄰域發(fā)生機(jī)器人缺失后,開啟修復(fù)的自診斷階段(見圖14中A1),分化出缺失邊緣狀態(tài)機(jī)器人后,進(jìn)行系統(tǒng)規(guī)模的識(shí)別,并結(jié)合給定的成型信息自主生成修復(fù)目標(biāo)構(gòu)型,通過個(gè)體間的交互完成梯度值的生成(見圖14中A2)。滿足梯度在局部范圍內(nèi)最大的機(jī)器人被激活,從初始聚集體中分離并依據(jù)元胞運(yùn)動(dòng)規(guī)則集做繞行運(yùn)動(dòng)(見圖14中A3,A4),且繞行過程中運(yùn)動(dòng)個(gè)體依據(jù)運(yùn)動(dòng)防撞阻塞機(jī)制,向局部范圍的機(jī)器人做運(yùn)動(dòng)壓制(見圖14中A5)。進(jìn)入修復(fù)目標(biāo)構(gòu)型區(qū)域的運(yùn)動(dòng)狀態(tài)個(gè)體根據(jù)終止條件的判定,完成對(duì)空缺位置的填充(見圖14中A6),直至所有機(jī)器人均運(yùn)動(dòng)至空缺區(qū)域,完成已成型體的形態(tài)自修復(fù)任務(wù)(見圖14中A7)。
主要研究結(jié)論如下:
1) 提出了一種基于分層策略的群體機(jī)器人自主修復(fù)方法:采用“分層剝離、分層填充、迭代循環(huán)”的分層策略,將自主修復(fù)的全局行為轉(zhuǎn)化為邊緣個(gè)體的局部行為,解決了大規(guī)模群體在修復(fù)運(yùn)動(dòng)過程中運(yùn)動(dòng)沖突和規(guī)劃干擾等問題。
2) 提出了一種針對(duì)受損群體機(jī)器人系統(tǒng)的自診斷方法:針對(duì)發(fā)生局部缺失的已成型體,對(duì)其具體缺失現(xiàn)狀作損傷檢測(cè)分析,并根據(jù)分析結(jié)果識(shí)別當(dāng)前系統(tǒng)規(guī)模,基于原始構(gòu)型信息自主生成修復(fù)目標(biāo)構(gòu)型作為等密度縮放修復(fù)的解決方案,為修復(fù)任務(wù)提供目標(biāo)驅(qū)動(dòng)。
3) 提出了一種以元胞運(yùn)動(dòng)規(guī)則為核心的運(yùn)動(dòng)控制方法:基于元胞自動(dòng)機(jī)理論,構(gòu)建了基于個(gè)體狀態(tài)與周圍環(huán)境信息的運(yùn)動(dòng)規(guī)則集,解決了群體機(jī)器人自主修復(fù)過程中的“誰(shuí)先走”、“怎么走”、“到哪里”3類決策問題。
下一步工作將圍繞復(fù)雜構(gòu)型與復(fù)雜環(huán)境下的群體機(jī)器人系統(tǒng)自愈機(jī)制、較大規(guī)模的機(jī)器人實(shí)物平臺(tái)驗(yàn)證等方面進(jìn)行深入研究。