王蓀馨, 王彥明, 孔杰, 申高攀
(1.西安理工大學(xué) 機械與精密儀器工程學(xué)院, 陜西 西安 710048; 2.西北工業(yè)大學(xué) 機電學(xué)院, 陜西 西安 710072)
近年來,得益于通訊傳感、智能控制、先進制造等諸多領(lǐng)域的蓬勃發(fā)展和技術(shù)融合,群體機器人技術(shù)為愈發(fā)復(fù)雜的多任務(wù)場景問題提供了有效的解決思路和可行方案[1]。區(qū)別于傳統(tǒng)中心式控制的單機器人系統(tǒng),群體機器人因為其大規(guī)模與分布式的特性,具有高魯棒性、可擴展性、柔性等顯著優(yōu)勢,在協(xié)同搜索、災(zāi)難援救、移動傳感網(wǎng)、蜂群作戰(zhàn)等領(lǐng)域具有廣闊的應(yīng)用前景。
當(dāng)群體機器人在未知、動態(tài)變化的復(fù)雜環(huán)境下執(zhí)行作業(yè)任務(wù)時,外部的擾動和沖擊可能導(dǎo)致群體系統(tǒng)內(nèi)部的部分個體發(fā)生故障或失效,從而影響整個群體系統(tǒng)的作業(yè)效能。群體系統(tǒng)具有較高的冗余性,在單個或多個機器人發(fā)生故障或失效的情況下仍能維持系統(tǒng)的性能[2],但是當(dāng)失效的機器人數(shù)量超過一定的安全閾值時,整個系統(tǒng)將出現(xiàn)性能劣化甚至崩潰。因此,賦予群體機器人系統(tǒng)一定的自診斷和自修復(fù)能力,提升整個群體系統(tǒng)在擾動或?qū)构r下的自愈能力和抗打擊能力,是確保群體系統(tǒng)順利完成任務(wù)的必備條件。
在群體機器人自修復(fù)研究領(lǐng)域,文獻[3]根據(jù)機器人的位置模式分別給予獎勵與懲罰措施,以期實現(xiàn)虛擬胚胎方法驅(qū)動下?lián)p傷機器人有機體的再生修復(fù),但是在群體內(nèi)機器人數(shù)量有限的條件下,該自修復(fù)方法的效果欠佳。文獻[4]提出了一種根據(jù)密度信息協(xié)調(diào)機器人均勻覆蓋的無線通訊網(wǎng)絡(luò)修復(fù)算法,但該修復(fù)方法因機器人能耗大導(dǎo)致系統(tǒng)自愈過程時間長。文獻[5]提出了一種基于密閉容器氣體分散模型的自修復(fù)算法,通過引入作用力與虛擬向量,實現(xiàn)機器人在指定二維區(qū)域的擴散;然而該方法中的機器人受最大通訊范圍約束,系統(tǒng)缺失嚴重時可能無法對圖案形狀完全修復(fù)。文獻[6]通過群體內(nèi)機器人執(zhí)行簡單規(guī)則不斷調(diào)整構(gòu)型規(guī)模,最終實現(xiàn)依據(jù)當(dāng)前群體規(guī)模對原始形態(tài)的縮放修復(fù),但該方法需所有機器人不斷嘗試并調(diào)整修復(fù)方案,由此導(dǎo)致其修復(fù)過程耗費大量計算資源。
國內(nèi)的研究機構(gòu)在群體系統(tǒng)自修復(fù)領(lǐng)域也開展了相關(guān)研究探索工作。文獻[7]提出了一種基于遞歸機制的移動機器人編隊自修復(fù)方法,然而,由于通信量隨機器人數(shù)量的增加呈指數(shù)增長,使得該修復(fù)方法不適合大規(guī)模集群機器人的修復(fù)場景。文獻[8]利用元胞自動機規(guī)則和梯度方向吸引,引導(dǎo)機器人對L系統(tǒng)的目標(biāo)構(gòu)型進行缺失修復(fù),該方法受L系統(tǒng)的構(gòu)型描述約束,其主要適用于枝狀拓撲結(jié)構(gòu)。文獻[9]通過引入活化激素和抑制激素對機器人進行動態(tài)路徑規(guī)劃,實現(xiàn)機器人對空缺位置的自主填補,該方法適用于多空缺單元的填補,對于較大范圍缺失單元或部位的自修復(fù)存在一定困難。
考慮到群體機器人系統(tǒng)多應(yīng)用于協(xié)同、編隊等非結(jié)構(gòu)化環(huán)境下的復(fù)雜對抗性任務(wù),群體系統(tǒng)內(nèi)的機器人個體需要保持一定的通訊距離來形成一個整體,從而提高整個群體系統(tǒng)的抗損毀性和生存能力?,F(xiàn)有的變密度內(nèi)部擴散自修復(fù)思路[6]為了保持修復(fù)前后的幾何形狀一致性而改變了群體內(nèi)部機器人的間距,而通信距離過大則不能保持群體內(nèi)機器人通信的連通性。等密度形態(tài)縮放自修復(fù)思路則是通過對群體系統(tǒng)規(guī)模進行判斷識別,并在確保機器人間距不變的條件下自主修復(fù)為按照比例縮放的新目標(biāo)構(gòu)型體。因此,等密度形態(tài)縮放自修復(fù)思路維持了機器人個體之間的緊密聯(lián)系,適用于復(fù)雜對抗環(huán)境下群體系統(tǒng)的自組織和自修復(fù)。
為此,針對大規(guī)模群體機器人系統(tǒng)在局部缺失情況下的自主修復(fù)問題,在借鑒等密度縮放修復(fù)思路的基礎(chǔ)上,本文提出了一種隨缺失規(guī)模柔性縮放的群體機器人形態(tài)自修復(fù)方法。即:基于以系統(tǒng)缺失規(guī)模為驅(qū)動的自診斷方法來判定群體系統(tǒng)損傷或缺失部位,并基于原始構(gòu)型及當(dāng)前群體狀態(tài)自主生成新修復(fù)目標(biāo)構(gòu)型,然后在新目標(biāo)構(gòu)型的引導(dǎo)下,通過基于個體狀態(tài)與周圍環(huán)境信息的運動規(guī)則集,解決群體機器人自主修復(fù)過程中的“誰先走”、“怎么走”、“到哪里”3類決策問題。
群體機器人大規(guī)模、低成本的特性,使得群體系統(tǒng)中部分個體發(fā)生故障或損壞不可避免。另外,群體機器人系統(tǒng)缺乏全局信息的指導(dǎo),無法通過系統(tǒng)層面的全局規(guī)劃行為來實現(xiàn)損傷部位的修復(fù)工作。因此,機器人如何僅依賴自身有限的感知與信息交互能力,通過個體間的協(xié)調(diào)合作自主有序地完成缺失部位的修復(fù)任務(wù),是群體機器人系統(tǒng)亟待解決的現(xiàn)實問題。
等密度形態(tài)縮放是指:群體系統(tǒng)以系統(tǒng)內(nèi)機器人規(guī)模信息為依據(jù),以原始目標(biāo)構(gòu)型信息為參考,將局部缺失后的大規(guī)模群體系統(tǒng)修復(fù)為經(jīng)比例縮放后原始構(gòu)型體的相似形狀,同時修復(fù)構(gòu)型保持機器人之間的分布密度不變。該修復(fù)過程的比例由構(gòu)型體原有的機器人數(shù)量和缺失后群體中機器人的數(shù)量確定。如圖1所示,機器人系統(tǒng)以經(jīng)縮放后的新目標(biāo)構(gòu)型為驅(qū)動,始終維持個體之間的緊密聯(lián)系,自起始位置向新目標(biāo)構(gòu)型的空缺區(qū)域有序運動。
圖1 等密度縮放修復(fù)原理圖
在前期的群體機器人自主成型方法基礎(chǔ)上[10],提出了大規(guī)模群體機器人的分層修復(fù)策略。該策略包含3個部分:分層剝離、分層填充、迭代循環(huán),如圖2所示。當(dāng)系統(tǒng)檢測出受外界沖擊導(dǎo)致局部機體缺失后,對當(dāng)前群體規(guī)模數(shù)量進行自主識別判斷,并結(jié)合原目標(biāo)構(gòu)型生成新的修復(fù)構(gòu)型;以該等密度縮放的構(gòu)型信息作為修復(fù)任務(wù),將修復(fù)目標(biāo)構(gòu)型與當(dāng)前機器人聚集體組合匹配后,在分層修復(fù)策略的驅(qū)動下,處于修復(fù)目標(biāo)構(gòu)型體外區(qū)域,且位于當(dāng)前聚集體最外層的機器人個體會有序運動到修復(fù)目標(biāo)構(gòu)型體內(nèi)區(qū)域,實現(xiàn)空缺位置的填補,從而完成系統(tǒng)的修復(fù)任務(wù)。
圖2 集群機器人自修復(fù)策略示意圖
在圖2中,機器人群體結(jié)合自身位置坐標(biāo),與形成的修復(fù)目標(biāo)構(gòu)型體函數(shù)表征式進行匹配,根據(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ù)分層填補策略,通過目標(biāo)構(gòu)型體外個體間的局部交互,規(guī)劃出目標(biāo)構(gòu)型體外優(yōu)先移的機器人集合,構(gòu)成運動鏈(見圖2b))。依據(jù)分層填補策略,運動鏈機器人沿著聚集體邊界運動,并依次填補至待填補區(qū)域內(nèi)邊緣層(見圖2c))。當(dāng)運動鏈內(nèi)個體填補結(jié)束后,依據(jù)迭代循環(huán)策略,新的運動鏈不斷被激發(fā)并填充到填補區(qū)域,直至完成自修復(fù)任務(wù)(見圖2d))。
針對二維已成型群機器人系統(tǒng),基于上述等密度形態(tài)縮放修復(fù)原理和分層修復(fù)策略,提出一種群體機器人形態(tài)修復(fù)方法,如圖3所示。
圖3 修復(fù)目標(biāo)構(gòu)型任務(wù)驅(qū)動下的群體機器人自修復(fù)過程
在修復(fù)前的自診斷階段,通過群體系統(tǒng)對當(dāng)前聚集體規(guī)模識別判斷(見圖3a)),基于原成型體構(gòu)型信息重新生成新修復(fù)目標(biāo)構(gòu)型(見圖3b)),并由競爭機制選出的領(lǐng)導(dǎo)者機器人下發(fā)至所有機器人個體。隨后,所有機器人個體通過局部感知與交互,重新生成覆蓋整個初始聚集體的梯度場,對自身梯度參數(shù)信息初始化(見圖3c))。
在修復(fù)運動控制階段,以機器人個體不同狀態(tài)為依據(jù),沿順時針形成運動鏈(見圖3d));之后,運動鏈內(nèi)的個體沿著當(dāng)前聚集體邊界依次填補至待填補區(qū)域內(nèi)邊緣層(見圖3e));當(dāng)運動鏈內(nèi)個體填補結(jié)束后,依據(jù)迭代循環(huán)策略,新的運動鏈不斷被激發(fā)并填充到填補區(qū)域,直至完成自修復(fù)任務(wù)(見圖3f))。
已成型體作為穩(wěn)定的群體系統(tǒng),內(nèi)部機器人在成型任務(wù)結(jié)束后通過傳感器實時檢測周圍環(huán)境的狀態(tài)變化。若循環(huán)檢測的2個周期內(nèi),機器人周圍環(huán)境發(fā)生突變,某方位的鄰居機器人缺失,則該突變將破壞群體系統(tǒng)的循環(huán)檢測機制,從而進入自主修復(fù)的自診斷階段。自診斷算法通過對群體系統(tǒng)的損傷檢測,生成新修復(fù)構(gòu)型作為后續(xù)修復(fù)階段的目標(biāo)成型任務(wù)。
2.1.1 缺失部位檢測
群體系統(tǒng)完成自主成型任務(wù)后,系統(tǒng)內(nèi)部的機器人個體相互之間保持緊密、對齊排列的晶格式網(wǎng)絡(luò)。將相鄰晶格單元的機器人間距作為閾值,將傳感器與環(huán)境交互獲取的距離信息和該閾值作比較,實現(xiàn)循環(huán)檢測自身鄰域環(huán)境狀態(tài)信息的目的。設(shè)定機器人可以保存2個檢測周期時間范圍內(nèi)其鄰域內(nèi)晶格單元的狀態(tài)信息,即該晶格位置是否被機器人獨立占據(jù)。若受到外部沖擊導(dǎo)致局部機器人出現(xiàn)故障或損壞,則已成型體的構(gòu)型必然出現(xiàn)局部缺失。對于處于缺失區(qū)域邊緣的機器人來說,其鄰域晶格的狀態(tài)信息也必然發(fā)生變化,從而引發(fā)2次循環(huán)檢測得到的狀態(tài)信息發(fā)生跳變。
如圖4所示,因鄰域范圍內(nèi)的機器人鄰居缺失而引發(fā)檢測信息跳變的機器人個體(見圖4b)),分化為缺失邊緣的危險狀態(tài)機器人,并向群體系統(tǒng)廣播損傷檢測結(jié)果,令所有機器人獲取修復(fù)任務(wù)執(zhí)行許可,由成型后的循環(huán)檢測狀態(tài)切換至修復(fù)前自診斷狀態(tài)(見圖4c))。待系統(tǒng)內(nèi)機器人均完成狀態(tài)轉(zhuǎn)化,可開展后續(xù)群體系統(tǒng)規(guī)模識別工作。
圖4 缺失部位檢測方法
2.1.2 群體系統(tǒng)規(guī)模識別
群體系統(tǒng)規(guī)模識別作為自診斷工作的重要部分,決定了以當(dāng)前系統(tǒng)規(guī)模為依據(jù)而生成的修復(fù)目標(biāo)構(gòu)型的準(zhǔn)確性。如圖5所示,群體系統(tǒng)規(guī)模識別階段通過2個步驟來實現(xiàn):①在缺失區(qū)域的邊緣選舉出1個領(lǐng)導(dǎo)者模塊機器人作為任務(wù)執(zhí)行起點(見圖5a));②由領(lǐng)導(dǎo)者機器人開始,通過信號繞當(dāng)前聚集體的邊緣傳遞1周,確定當(dāng)前系統(tǒng)內(nèi)機器人的總數(shù)量規(guī)模(見圖5b))。
圖5 群體規(guī)模識別
1) 領(lǐng)導(dǎo)者選舉
文獻[11]中利用形態(tài)發(fā)生梯度機制來確定胚胎細胞發(fā)育過程中自身位置與極性的經(jīng)典方法,令每個處于危險狀態(tài)的機器人個體都向其鄰居傳播自身ID信息,從該集體中選舉出一名領(lǐng)導(dǎo)者,作為群體系統(tǒng)規(guī)模識別的原點。機器人的ID信息可確保每個機器人在其局部通訊范圍內(nèi)的身份信息獨一無二,處于危險狀態(tài)的機器人在接收到比自身ID值更低的信號時,則表明該機器人受到信號抑制退出選舉過程,且將較低的ID信息重新傳輸給其他機器人。最終,在設(shè)定的時間內(nèi)未收到任何低于其自身ID值的機器人將被選舉為領(lǐng)導(dǎo)者。
2) 邊緣統(tǒng)計信號傳遞與規(guī)模統(tǒng)計
處于“領(lǐng)導(dǎo)者”狀態(tài)的機器人作為群體系統(tǒng)規(guī)模識別的原點,統(tǒng)計當(dāng)前系統(tǒng)的機器人數(shù)量規(guī)模。領(lǐng)導(dǎo)者結(jié)合自身與缺失區(qū)域的位置關(guān)系,在順時針方向優(yōu)先的約束條件下,向其鄰居機器人發(fā)送用于識別當(dāng)前系統(tǒng)規(guī)模的統(tǒng)計信號,且該統(tǒng)計信號被限制在邊緣機器人個體中傳播。接收到統(tǒng)計信號的非領(lǐng)導(dǎo)者機器人處理完數(shù)據(jù)后,以信號傳入方向作為判斷依據(jù),以順時針方向優(yōu)先為約束,依次嘗試向信號傳入的高優(yōu)先級順時針方向輸出修正處理后的統(tǒng)計信號,直到該信號被鄰居邊緣狀態(tài)機器人響應(yīng)并接收。隨著統(tǒng)計信號沿邊緣機器人集合傳遞,最終返回領(lǐng)導(dǎo)者本體,標(biāo)志著規(guī)模識別過程的終止。領(lǐng)導(dǎo)者機器人接收到由它發(fā)出的統(tǒng)計信號后,以相同方式對信號作識別處理,但信息處理結(jié)束后終止規(guī)模識別過程,關(guān)閉統(tǒng)計信號發(fā)送通道,并向群體系統(tǒng)廣播最終的統(tǒng)計結(jié)果,讓每個機器人都獲取當(dāng)前群體系統(tǒng)內(nèi)機器人的總數(shù)量規(guī)模。
2.1.3 修復(fù)構(gòu)型的形態(tài)再生
修復(fù)構(gòu)型的形態(tài)再生過程可分為以下2步:
step2 將原有成型形狀的外輪廓函數(shù)依據(jù)縮放比例參數(shù)進行縮放。
2.1.4 機器人個體信息初始化
機器人結(jié)合自身位置坐標(biāo),與構(gòu)型函數(shù)表征式進行匹配,根據(jù)坐標(biāo)與函數(shù)輪廓圍成封閉區(qū)域的位置關(guān)系,將機器人初始化為修復(fù)目標(biāo)構(gòu)型體內(nèi)機器人(state-inshape)與修復(fù)目標(biāo)構(gòu)型體外機器人(state-outshape)。處于構(gòu)型體內(nèi)的機器人,通過機身搭載傳感器感知鄰域范圍機器人存在情況,若屬于目標(biāo)構(gòu)型區(qū)域的晶格為空,則表明該晶格位置空缺受損,該機器人初始化為缺失邊緣機器人,向外提供缺失區(qū)域的方位信息。處于構(gòu)型體外的機器人,若檢測出周邊存在空缺晶格,則認為自身處于構(gòu)型體的邊緣,初始化為外邊緣機器人,如圖6所示。
圖6 機器人個體狀態(tài)分化
位置狀態(tài)初始化完成以后,缺失區(qū)域由缺失邊緣狀態(tài)的機器人集合包圍而成。將梯度重新定義為機器人所處位置到達缺失邊緣機器人的最短曼哈頓距離,表征著機器人到達缺失區(qū)域的相對距離。故令所有處于缺失邊緣狀態(tài)的機器人梯度值設(shè)為最小值1,由其開始向外擴散梯度信息,在當(dāng)前聚集體內(nèi)生成覆蓋所有機器人個體的梯度場,引導(dǎo)修復(fù)目標(biāo)構(gòu)型體外的機器人向該缺失區(qū)域運動填充。
在完成修復(fù)目標(biāo)構(gòu)型生成、機器人參數(shù)初始化的基礎(chǔ)上,采用五鄰域結(jié)構(gòu)下的四向運動方式,以自診斷階段再生的修復(fù)目標(biāo)構(gòu)型為任務(wù)驅(qū)動,建立以個體行為規(guī)則為核心的自修復(fù)運動控制算法,并通過機器人個體間的協(xié)調(diào)配合,自下而上呈現(xiàn)出縮放規(guī)模的修復(fù)構(gòu)型,實現(xiàn)群體系統(tǒng)在局部缺失條件下的形態(tài)自修復(fù)任務(wù)。
2.2.1 外邊緣個體激活與分離規(guī)劃
機器人完成自診斷階段的工作后,經(jīng)角色分化,均由空閑狀態(tài)切換至待激活狀態(tài)。所有個體均已獲取自身梯度信息,進入個體的激活與分離階段。由梯度定義可知,梯度表示了該機器人所處位置到達缺失邊緣機器人位置的最短曼哈頓距離,也可理解為該機器人距離缺失區(qū)域包裹的層數(shù)。如圖7所示,群體系統(tǒng)通過自診斷階段形成的梯度場,在覆蓋了整個已成型體的范圍內(nèi)實現(xiàn)分層。處于最外層的外邊緣機器人個體由待激活狀態(tài)切換至邊緣激活狀態(tài),通過與鄰域內(nèi)鄰居機器人持續(xù)的信息交互,判斷自身是否滿足運動激發(fā)條件。
圖7 機器人運動激發(fā)過程
其中,運動激發(fā)條件總結(jié)如下:
1) 個體在局部范圍內(nèi)梯度值最大。機器人的梯度值在局部范圍內(nèi)最大,意味著該機器人不僅處于當(dāng)前聚集體的外邊緣,更沒有被其他機器人包裹在內(nèi),運動分離時不會被約束干擾。滿足該條件的機器人則觸發(fā)運動分離,個體被激活且切換至運動狀態(tài)。
2) 若局部范圍內(nèi)存在多個梯度值最大的機器人,則ID值最大者先觸發(fā)運動分離。在梯度場的同一層級中,若存在多個機器人均滿足局部范圍梯度值最大,則這些機器人的同時運動會導(dǎo)致運動碰撞或缺失運動參考等意外發(fā)生。為了保證機器人有序分離出聚集體,將機器人的ID值作為依據(jù),通過對比局部范圍內(nèi)相同最大梯度機器人的ID信號,選擇ID值較大者優(yōu)先激活。被激活的運動狀態(tài)個體則持續(xù)在局部范圍內(nèi)發(fā)送運動壓制信號,確保離開安全距離后,其他機器人才可被激活,實現(xiàn)層內(nèi)機器人集合以ID值遞減次序的有序逐個激活分離。
2.2.2 運動個體繞行修復(fù)
群體機器人功能簡單,通信能力與運動能力均有限。局部范圍的通訊能力限制了機器人對自身運動規(guī)劃的范圍,因此機器人的每一次運動決策僅可實現(xiàn)局部范圍,即鄰域結(jié)構(gòu)內(nèi)的直線或繞行運動。結(jié)合元胞自動機理論,可實現(xiàn)群體機器人的分布式運動控制,建立群體機器人自主修復(fù)系統(tǒng)的元胞自動機運動規(guī)則集。通過機器人在元胞單元上的獨立運動,實現(xiàn)整個群體系統(tǒng)的分布式控制修復(fù)運動。
應(yīng)用于群體機器人個體的元胞運動規(guī)則,包含了機器人鄰域內(nèi)的環(huán)境信息與自身具體的運動方案,采用二維元胞自動機模型規(guī)則的表達形式。環(huán)境信息的具體描述為鄰域位置是否存在機器人個體;具體運動方案則針對具體的環(huán)境信息,結(jié)合機器人坐標(biāo)和梯度信息,依據(jù)局部范圍的直線或繞行移動,規(guī)劃實現(xiàn)相應(yīng)的運動任務(wù)。處于運動狀態(tài)的機器人個體按照元胞規(guī)則中的環(huán)境信息來匹配對應(yīng)的元胞規(guī)則,并通過運動執(zhí)行元胞規(guī)則的方案。
機器人根據(jù)鄰居的環(huán)境信息進行元胞規(guī)則的判斷,若傳感器檢測無響應(yīng),表明該方位無機器人存在;若有機器人存在且進行信息交互,則記錄該方位鄰居機器人狀態(tài)信息。為了實現(xiàn)運動狀態(tài)的機器人個體從聚集體中初始位置的有序分離,并沿著聚集體邊緣順時針運動至目標(biāo)構(gòu)型體區(qū)域的空缺位置,結(jié)合機器人鄰域與傳感器的方位信息,制定了如圖8所示的12條適用于修復(fù)任務(wù)的元胞運動規(guī)則。其中,規(guī)則1~8用于繞聚集體邊緣運動以及2.2.1節(jié)中第一類運動激發(fā)條件下的運動規(guī)劃,規(guī)則9~12用于第二類運動激發(fā)條件下的運動規(guī)劃。該規(guī)則集始終讓機器人保持順時針繞行趨勢,且每運動至一處新位置需匹配新的元胞規(guī)則,實現(xiàn)運動的連續(xù)性。
圖8 元胞運動規(guī)則示意圖
2.2.3 修復(fù)進程結(jié)束判定
如圖9所示,于自診斷階段生成的修復(fù)目標(biāo)構(gòu)型信息使用函數(shù)的形式,將期望圖形的外邊緣輪廓函數(shù)表達式給出。當(dāng)目標(biāo)構(gòu)型的邊緣位置空缺時,觸發(fā)以目標(biāo)構(gòu)型的外邊緣輪廓為基準(zhǔn)的終止判定。機器人內(nèi)部運動時通過更新坐標(biāo)值,對局部范圍的構(gòu)型信息進行識別,與外邊緣函數(shù)進行匹配。而當(dāng)存在機器人占據(jù)構(gòu)型的外邊緣輪廓時,則觸發(fā)以梯度信息為基準(zhǔn)的終止判定。
圖9 運動停止判斷方法
1) 邊緣終止判定
運動狀態(tài)機器人進入目標(biāo)構(gòu)型體區(qū)域后,沿著已成型體的邊緣對空缺位置填補。機器人結(jié)合感知的局部范圍環(huán)境信息,匹配相應(yīng)的元胞運動規(guī)則,依據(jù)運動方向與鄰域方位信息,預(yù)測下一步運動位置。如圖9a)所示,當(dāng)機器人預(yù)測出下一步運動抵達的位置處于目標(biāo)構(gòu)型外輪廓函數(shù)之外,即將離開目標(biāo)構(gòu)型體區(qū)域,則觸發(fā)邊緣終止條件,個體在當(dāng)前位置停止運動,做最后一次坐標(biāo)更新,隨后切換至終止?fàn)顟B(tài)。
2) 梯度終止判定
在某運動狀態(tài)機器人運動至目標(biāo)構(gòu)型體區(qū)域之前,已有一部分機器人填補至空缺區(qū)域并終止運動。如圖9b)所示,當(dāng)該個體進入目標(biāo)構(gòu)型區(qū)域后,若檢測到下一運動方向的晶格位置處存在終止?fàn)顟B(tài)機器人,且其梯度值與自身梯度值相同,即:當(dāng)前填充層內(nèi)已有個體將目標(biāo)構(gòu)型外邊緣輪廓填充完成,但目標(biāo)構(gòu)型體內(nèi)部區(qū)域仍存在空缺位置待填充。此時觸發(fā)梯度終止條件,個體在當(dāng)前位置停止運動,對當(dāng)前位置做坐標(biāo)更新,并切換至終止?fàn)顟B(tài)。
基于多智能體仿真軟件Netlogo,對局部缺失情況下的群體形態(tài)自修復(fù)方法進行仿真驗證;同時也研發(fā)了具有一定的感知、交互與運動能力的小型移動機器人,完成了16臺移動機器人的自修復(fù)實驗驗證。
基于Netlogo軟件搭建了大規(guī)模群體機器人形態(tài)自修復(fù)仿真驗證平臺。由于群體機器人系統(tǒng)的修復(fù)工作展開于自主成型任務(wù)實現(xiàn)之后,故仿真初始結(jié)合成型目標(biāo),將群體系統(tǒng)排布成相應(yīng)的幾何形狀,并在此基礎(chǔ)上對已成型體形狀的隨機區(qū)域做移除缺失處理。故仿真修復(fù)驗證主要針對已成型體局部缺失情況下的形態(tài)自修復(fù)算法展開。
3.1.1 自修復(fù)方法的可行性驗證
假設(shè)所有機器人初始按照成型目標(biāo)構(gòu)型緊密排布在初始聚集區(qū)域,隨后人為隨機移除部分區(qū)域機器人,造成已成型體的局部缺失?;谏鲜鰧嶒炂脚_,通過機器人內(nèi)嵌自修復(fù)算法,展開不同種類構(gòu)型的修復(fù)工作,即正方形、三角形、圓形以及箭頭狀構(gòu)型,最終實現(xiàn)將現(xiàn)有規(guī)模下的機器人修復(fù)為原始成型構(gòu)型經(jīng)縮放后的相似形狀。圖10a)~10d)分別展示了正方形、三角形、圓形及箭頭構(gòu)型部分缺失情況下修復(fù)過程。圖中的ticks代表Netlogo軟件的運行時間步長。
在圖10a)中,當(dāng)已成型體發(fā)生缺失后,應(yīng)用2.1.1節(jié)缺失部位檢測方法,檢測出缺失部分A;接下來由2.1.2節(jié)中的方法選出規(guī)模識別的領(lǐng)導(dǎo)者,進而識別出缺失后系統(tǒng)的規(guī)模B;在統(tǒng)計出缺失后群機器人規(guī)模后,與原有機器人數(shù)量比較,得出縮放比例,由2.1.3節(jié)策略指導(dǎo)形成修復(fù)目標(biāo)構(gòu)型C;最后在2.2節(jié)提出的修復(fù)運動方法控制下,進行自修復(fù)運動過程執(zhí)行D;在執(zhí)行完所有操作后,得到自修復(fù)后構(gòu)型E。
圖10 正方形、三角形、圓形和箭頭的自修復(fù)仿真實驗
3.1.2 自修復(fù)方法的可擴展性驗證
可拓展性是群體機器人系統(tǒng)的基本屬性。以圖11所示的50×50規(guī)模的正方形構(gòu)型作為已成型體,選取不同規(guī)模的缺失區(qū)域進行修復(fù)仿真驗證?;?0×50規(guī)模正方形已成型體系統(tǒng),分別對其部分區(qū)域作缺失處理,在仿真軟件Netlogo中實現(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ū)域可擴展性實驗。實驗結(jié)果如圖11中A~L系列所示:
圖11 自修復(fù)方法可擴展性仿真實驗
綜合上述實驗數(shù)據(jù)和仿真結(jié)果擬合出缺失仿真耗時和缺失規(guī)模之間的二次函數(shù)關(guān)系(見圖12)。處于修復(fù)目標(biāo)構(gòu)型體外區(qū)域的機器人數(shù)量,隨著缺失規(guī)模的變化呈現(xiàn)出二次函數(shù)的變化,且在缺失一半機器人時達到巔峰值。而處于修復(fù)目標(biāo)構(gòu)型體外區(qū)域需執(zhí)行元胞運動規(guī)則,運動至缺失區(qū)域填充空缺位置,每運動一步即對應(yīng)一個時間步長,因此仿真耗時也隨著機器人數(shù)量的增加而線性增長,最終呈仿真耗時與缺失規(guī)模之間呈二次關(guān)系。
圖12 缺失仿真耗時與缺失規(guī)模關(guān)系圖
仿真環(huán)境中的實驗驗證基于理想條件,對于實物機器人的元器件差異性、信息處理速度差異性和通信干擾等問題無法進行準(zhǔn)確評估。因此,以仿真模型為設(shè)計參考,搭建移動機器人Cilibot實物,外形尺寸僅為4.5 cm×4.5 cm×4.8 cm,如圖13所示。并對本文提出的形態(tài)自修復(fù)算法做小規(guī)模的硬件實物驗證。
圖13 Cilibot實物圖與爆炸圖
以Cilibot機器人為自主修復(fù)任務(wù)載體,將群體機器人形態(tài)自修復(fù)算法內(nèi)嵌至控制器中。以正方形構(gòu)型體為例,在規(guī)則排列好的已成型體基礎(chǔ)上移除一部分機器人,作局部缺失處理,針對缺失后的已成型體自修復(fù)問題,展開相應(yīng)的實物驗證(見圖14)。
圖14 群體系統(tǒng)自修復(fù)實物實驗驗證
修復(fù)任務(wù)開始前,規(guī)則排布的群體機器人系統(tǒng)局部區(qū)域內(nèi)的個體被人為移除。處于循環(huán)檢測周圍環(huán)境狀態(tài)的機器人檢測出周圍鄰域發(fā)生機器人缺失后,開啟修復(fù)的自診斷階段(見圖14中A1),分化出缺失邊緣狀態(tài)機器人后,進行系統(tǒng)規(guī)模的識別,并結(jié)合給定的成型信息自主生成修復(fù)目標(biāo)構(gòu)型,通過個體間的交互完成梯度值的生成(見圖14中A2)。滿足梯度在局部范圍內(nèi)最大的機器人被激活,從初始聚集體中分離并依據(jù)元胞運動規(guī)則集做繞行運動(見圖14中A3,A4),且繞行過程中運動個體依據(jù)運動防撞阻塞機制,向局部范圍的機器人做運動壓制(見圖14中A5)。進入修復(fù)目標(biāo)構(gòu)型區(qū)域的運動狀態(tài)個體根據(jù)終止條件的判定,完成對空缺位置的填充(見圖14中A6),直至所有機器人均運動至空缺區(qū)域,完成已成型體的形態(tài)自修復(fù)任務(wù)(見圖14中A7)。
主要研究結(jié)論如下:
1) 提出了一種基于分層策略的群體機器人自主修復(fù)方法:采用“分層剝離、分層填充、迭代循環(huán)”的分層策略,將自主修復(fù)的全局行為轉(zhuǎn)化為邊緣個體的局部行為,解決了大規(guī)模群體在修復(fù)運動過程中運動沖突和規(guī)劃干擾等問題。
2) 提出了一種針對受損群體機器人系統(tǒng)的自診斷方法:針對發(fā)生局部缺失的已成型體,對其具體缺失現(xiàn)狀作損傷檢測分析,并根據(jù)分析結(jié)果識別當(dāng)前系統(tǒng)規(guī)模,基于原始構(gòu)型信息自主生成修復(fù)目標(biāo)構(gòu)型作為等密度縮放修復(fù)的解決方案,為修復(fù)任務(wù)提供目標(biāo)驅(qū)動。
3) 提出了一種以元胞運動規(guī)則為核心的運動控制方法:基于元胞自動機理論,構(gòu)建了基于個體狀態(tài)與周圍環(huán)境信息的運動規(guī)則集,解決了群體機器人自主修復(fù)過程中的“誰先走”、“怎么走”、“到哪里”3類決策問題。
下一步工作將圍繞復(fù)雜構(gòu)型與復(fù)雜環(huán)境下的群體機器人系統(tǒng)自愈機制、較大規(guī)模的機器人實物平臺驗證等方面進行深入研究。