孫延標(biāo),黃潤才
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
人工智能的快速發(fā)展,促進(jìn)機(jī)器人系統(tǒng)進(jìn)入了一個嶄新的研究領(lǐng)域,多機(jī)器人的編隊(duì)控制受到越來越多的研究者關(guān)注。人們對機(jī)器人復(fù)雜任務(wù)的完成要求越來越高,諸如貨物搬運(yùn)、獵物捕捉以及環(huán)境探索等一些任務(wù)中,傳統(tǒng)的單機(jī)器人已經(jīng)滿足不了需求,多機(jī)器人編隊(duì)的引入成為了可行的途徑。文獻(xiàn)[1]提出了一種多移動機(jī)器人編隊(duì)完成的分布式控制算法,該算法簡單易行,適合大量的機(jī)器人。按照多機(jī)器人編隊(duì)的體系結(jié)構(gòu),編隊(duì)控制主要分為集中式、分布式和分層式三種[2]。集中式是由一個主控單元控制多機(jī)器人系統(tǒng),該方法全局優(yōu)化能力較高,通常應(yīng)用在路徑規(guī)劃等方面[3],但靈活性較差。分布式則是各機(jī)器人的行為自主決定,該方法靈活可靠,在任務(wù)分配方面很廣泛的應(yīng)用[4],但全局目標(biāo)優(yōu)化能力較差。分層式是混合了集中式與分布式,機(jī)器人之間的協(xié)作性較強(qiáng),文獻(xiàn)[5]提出了一種自然啟發(fā)性的方法用于多機(jī)器人的協(xié)調(diào)合作,平衡了任務(wù)的執(zhí)行。
常用的編隊(duì)控制方法有人工勢場法[6]、虛擬結(jié)構(gòu)法[7]、基于行為的方法[8]以及基于圖論的方法[9]等。文獻(xiàn)[6]采用人工勢場法維持多機(jī)器人的隊(duì)形并規(guī)劃各機(jī)器人的路徑,避免了各機(jī)器人之間的碰撞,實(shí)時性較強(qiáng),但當(dāng)勢力場較多以及零勢能點(diǎn)存在時,機(jī)器人會在小范圍內(nèi)往復(fù)運(yùn)動。文獻(xiàn)[7]將人工勢場法與虛擬結(jié)構(gòu)法相結(jié)合,可以有效的形成編隊(duì)隊(duì)形以及靈活的隊(duì)形變換,并且在編隊(duì)行進(jìn)過程中很好的避免碰撞障礙物,但由于嚴(yán)格的隊(duì)形約束會受到頻繁的控制指令,通信過載,增加能耗。文獻(xiàn)[8]將多機(jī)器人的編隊(duì)任務(wù)分解成不同的行為,使用零空間的矩陣?yán)碚摲椒ǜ鶕?jù)一定的優(yōu)先級融合行為形成最終的隊(duì)形,有著明確的隊(duì)形反饋,系統(tǒng)的應(yīng)變能力較強(qiáng),但由于行為融合復(fù)雜,隊(duì)形的基本行為無法明確定義,編隊(duì)控制的穩(wěn)定性難以得到保證。文獻(xiàn)[9]將編隊(duì)整體看作一個有向圖,通過距離反饋控制率設(shè)計不同的控制策略形成編隊(duì)的隊(duì)形,隊(duì)形結(jié)構(gòu)穩(wěn)定,拓?fù)浣Y(jié)構(gòu)簡單明了,但對于稀疏的圖,效率較低。這些方法在隊(duì)形運(yùn)行時對于領(lǐng)航者機(jī)器人本身考慮的較少,然而在一些關(guān)鍵的任務(wù)中,如貨物搬運(yùn)、環(huán)境探索等編隊(duì)運(yùn)行的過程中,當(dāng)領(lǐng)航者出現(xiàn)通信堵塞時,跟隨者接收不到下一步的有關(guān)信息,多機(jī)器人編隊(duì)系統(tǒng)將面臨崩潰的可能,對能量的損耗、任務(wù)的完成有著重大影響。因此合理有效的利用領(lǐng)航者,可以減少通信等待,快速平穩(wěn)的完成相應(yīng)的任務(wù)。文獻(xiàn)[10]隨機(jī)設(shè)置特定領(lǐng)航者模式的通信拓?fù)潢P(guān)系,根據(jù)一致性協(xié)議的約束來提高編隊(duì)控制的穩(wěn)定性。文獻(xiàn)[11]改進(jìn)非線性模型預(yù)測控制,根據(jù)樹形結(jié)構(gòu)動態(tài)分配領(lǐng)航者實(shí)現(xiàn)精確的編隊(duì)控制。文獻(xiàn)[12]采用卡爾曼濾波算法預(yù)測跟隨者機(jī)器人的理想位置,有效的解決了領(lǐng)航者機(jī)器人的位姿突變問題。文獻(xiàn)[13]針對參數(shù)不確定性以及輸入擾動,采用分層控制—估計算法平衡穩(wěn)定了具有兩層領(lǐng)導(dǎo)者的多機(jī)器人編隊(duì)控制。目前,各類編隊(duì)的最優(yōu)控制有著很多的局限性,與實(shí)際還有一定的差距,如領(lǐng)航者級別的增加導(dǎo)致控制繁瑣滿足不了實(shí)時的需求;長時間頻繁的數(shù)據(jù)通信對系統(tǒng)的要求偏高以及動態(tài)環(huán)境下未知因素的欠考慮也會造成影響等。
針對上述研究的一些不足,本文在領(lǐng)航—跟隨法的基礎(chǔ)上,對多機(jī)器人編隊(duì)領(lǐng)航者本身進(jìn)行了研究,設(shè)計了一種接替性領(lǐng)航機(jī)制,當(dāng)隊(duì)形運(yùn)行過程中由傳統(tǒng)方法選定的領(lǐng)航者出現(xiàn)通信堵塞時,所有跟隨者都有可能作為新的領(lǐng)航者組織隊(duì)形繼續(xù)運(yùn)行。本文將新一輪領(lǐng)航者的選取作為編隊(duì)性能的重要指標(biāo),以各機(jī)器人的綜合優(yōu)勢作為選取的依據(jù),最終以完整的隊(duì)形到達(dá)指定的地點(diǎn)。
對于領(lǐng)航-跟隨法多機(jī)器人編隊(duì),一般而言,作為領(lǐng)航者機(jī)器人的運(yùn)動學(xué)模型可以依據(jù)自身的位姿信息來確定,而對于作為跟隨者機(jī)器人的運(yùn)動學(xué)模型則必須是依據(jù)領(lǐng)航者的位姿信息,通過與領(lǐng)航者的相對距離和相對角度來構(gòu)建自身的運(yùn)動學(xué)模型。因輪式移動機(jī)器人的無滑動滾動特征決定了多機(jī)器人系統(tǒng)滿足非完整約束的條件[14],故在本文中主要以輪式的移動機(jī)器人為研究對象,采用與文獻(xiàn)[14]相似的表示方式。
設(shè)移動機(jī)器人在全局坐標(biāo)系下的位姿信息為(x,y,θ),其中,(x,y)為機(jī)器人對應(yīng)的位置坐標(biāo),θ為方向角,即機(jī)器人的線速度方向與坐標(biāo)軸x軸正方向的夾角,如圖1所示,v(t)與w(t)分別表示機(jī)器人在某一時刻t下的線速度與角速度。并且機(jī)器人的位姿信息可由向量p=(x,y,θ)T表示。
圖1 領(lǐng)航者運(yùn)動學(xué)模型
在圖2中,領(lǐng)航者機(jī)器人的線速度表示為vL,角速度表示為wL,線速度方向與坐標(biāo)x軸軸正方向的夾角表示為θL;跟隨者機(jī)器人的線速度表示為vF,角速度表示為wF,線速度方向與坐標(biāo)軸x軸正方向的夾角表示為θF[15]。將機(jī)器人兩車輪的軸心線連接的中點(diǎn)作為對象研究的參考點(diǎn),則領(lǐng)航者與跟隨者這2個機(jī)器人參考點(diǎn)之間的距離表示為l(L-F),領(lǐng)航者機(jī)器人的前進(jìn)方向即線速度方向與2個機(jī)器人參考點(diǎn)連線的夾角表示為φ(L-F)。
圖2 領(lǐng)航—跟隨者運(yùn)動學(xué)模型
對于一個領(lǐng)航—跟隨法的多機(jī)器人編隊(duì)系統(tǒng)來說,整個團(tuán)隊(duì)的運(yùn)動軌跡通常是由領(lǐng)航者進(jìn)行決定的,而跟隨者到達(dá)目標(biāo)點(diǎn)的運(yùn)動軌跡往往是由領(lǐng)航者期望的虛擬跟隨機(jī)器人運(yùn)動軌跡決定的。設(shè)跟隨者與領(lǐng)航者形成最終需要達(dá)到的期望距離與角度分別為即虛擬跟隨機(jī)器人與領(lǐng)航者機(jī)器人之間的距離與角度分別為虛擬跟隨機(jī)器人的位置坐標(biāo)表示為(xV,yV),線速度方向與坐標(biāo)軸軸正方向的夾角即方向角表示為θV,虛擬跟隨機(jī)器人的位置點(diǎn)由領(lǐng)航者機(jī)器人位置點(diǎn)可得:
由圖1可知,可將領(lǐng)航者的運(yùn)動學(xué)模型表示為:
跟隨者的位置點(diǎn)由領(lǐng)航者位置點(diǎn)可得:
跟隨者的位置點(diǎn)與虛擬跟隨機(jī)器人RF位置點(diǎn)的誤差可表示為xF-yF:
為了簡單方便的描述各機(jī)器人在整個編隊(duì)中的位置,將隊(duì)形中的領(lǐng)航者機(jī)器人標(biāo)記為RL,任意的跟隨者機(jī)器人標(biāo)記為RF,領(lǐng)航者期望跟隨的虛擬機(jī)器人標(biāo)記為RV,則領(lǐng)航—跟隨法編隊(duì)控制的運(yùn)動學(xué)模型如圖2所示。
通過旋轉(zhuǎn)矩陣,可將其旋轉(zhuǎn)變換到跟隨者機(jī)器人RF自身的坐標(biāo)系xF-yF下其誤差可表示為:
將式(3)和式(4)代入式(5)中可得:
對式(6)的兩邊求導(dǎo)可得系統(tǒng)的動態(tài)誤差方程為。
對于虛擬跟隨機(jī)器人的引入,將多機(jī)器人編隊(duì)的隊(duì)形保持轉(zhuǎn)換成了實(shí)際跟隨機(jī)器人追蹤虛擬跟隨機(jī)器人的運(yùn)動軌跡的控制,這種模型的建立可以描述任意多機(jī)器人編隊(duì)的隊(duì)形。
由上述可得跟隨者的運(yùn)動學(xué)模型為:
多機(jī)器人協(xié)作任務(wù)通常是由系統(tǒng)選定一個或多個領(lǐng)航者機(jī)器人帶領(lǐng)跟隨者機(jī)器人到達(dá)指定的地點(diǎn),形成需要的編隊(duì)隊(duì)形以完成系統(tǒng)設(shè)定的任務(wù)。當(dāng)領(lǐng)航者與跟隨者出現(xiàn)通信堵塞時,為避免多機(jī)器人編隊(duì)系統(tǒng)崩潰,本文提出一種接替性領(lǐng)航機(jī)制,根據(jù)各跟隨者的綜合優(yōu)勢選取新一輪的領(lǐng)航者組織隊(duì)形繼續(xù)前進(jìn),完成最終的任務(wù)。
機(jī)器人的綜合優(yōu)勢包括距離優(yōu)勢、角度優(yōu)勢與能量優(yōu)勢[16],可用Rc表示綜合優(yōu)勢,Rl表示距離優(yōu)勢,Rθ表示角度優(yōu)勢,Re表示能量優(yōu)勢:
其中,λ0=(λmax+λmin)/2,若令Rl(λmax)=Rl(λmin)=0.05,可得σ=0.6(λmax-λmin),λ為跟隨者與上一任領(lǐng)航者的距離;λmax、λmin分別為該跟隨者與團(tuán)隊(duì)中其他跟隨者的最遠(yuǎn)與最近距離;θF、θL分別為跟隨者與上一任領(lǐng)航者的方位角;EF、EL分別為跟隨者與上一任領(lǐng)航者的單位能量。根據(jù)專家的一些經(jīng)驗(yàn),wl,wθ,we的值可取為0.5,0.3,0.2。
根據(jù)各跟隨者的綜合優(yōu)勢,利用匈牙利算法的組合優(yōu)化原則[17],在跟隨者中選取新的領(lǐng)航者組織隊(duì)形。系統(tǒng)對擔(dān)任領(lǐng)航者的機(jī)器人的flag置為1,對擔(dān)任跟隨者的機(jī)器人的flag置為0。接替性領(lǐng)航機(jī)制主要步驟如下:
1)預(yù)先對團(tuán)隊(duì)中的所有機(jī)器人進(jìn)行編號:i=1,2,…,n;
2)首先指定1號機(jī)器人擔(dān)任領(lǐng)航者完成編隊(duì)的隊(duì)形,同時對1號機(jī)器人的flag置為1,其他機(jī)器人的flag置為0;
3)多機(jī)器人以設(shè)定的編隊(duì)隊(duì)形運(yùn)動前進(jìn);
4)前進(jìn)中每隔一段時間i,領(lǐng)航者與跟隨者進(jìn)行一次通信,若通信成功,則隊(duì)伍繼續(xù)前進(jìn);反之,在跟隨者中根據(jù)各自的綜合優(yōu)勢選取新的領(lǐng)航者接替上一任領(lǐng)航者組織隊(duì)形繼續(xù)前進(jìn),同時對該機(jī)器人的flag置為1,上一任領(lǐng)航者的flag置為0以及編號置為n+i;
5)上一任領(lǐng)航者清理緩存空間后作為跟隨者回歸到新的隊(duì)形中。
6)重復(fù)步驟3)、4)、5)直到多機(jī)器人團(tuán)隊(duì)完成最終的任務(wù)。
初始的機(jī)器人綜合優(yōu)勢矩陣為:
新領(lǐng)航者選取后的機(jī)器人綜合優(yōu)勢矩陣為:
其中,Rc0,…,Rcn為各機(jī)器人的綜合優(yōu)勢,Rc=-1的為領(lǐng)航者,剩余的為跟隨者。
圖3 接替性領(lǐng)航機(jī)制流程圖
該機(jī)制簡單且便于使用,當(dāng)領(lǐng)航者與跟隨者出現(xiàn)通信堵塞時,將對于由傳統(tǒng)方法選定的領(lǐng)航者的依賴問題轉(zhuǎn)變?yōu)閺母S者中選取新領(lǐng)航者的問題,以新一輪的領(lǐng)航者組織隊(duì)形繼續(xù)前進(jìn)完成系統(tǒng)設(shè)定的任務(wù)。
為了驗(yàn)證本文提出的接替性領(lǐng)航機(jī)制可以有效的解決領(lǐng)航—跟隨法多機(jī)器人編隊(duì)對于領(lǐng)航者的依賴,使用MATLAB軟件進(jìn)行仿真實(shí)驗(yàn)。實(shí)驗(yàn)以6個機(jī)器人的三角形隊(duì)形運(yùn)動為例,各機(jī)器人的初始位姿任意,設(shè)領(lǐng)航者的初始位姿RL=[-3 0 0]T,跟隨者的初始位姿RF1=[-4 1 0]T,RF2=[-4-1 0]T,RF3=[-5 2 0]T,RF4=[-5 0 0]T,RF5=[-5-2 0]T,仿真實(shí)驗(yàn)結(jié)果如下:
機(jī)器人的初始位姿以及目標(biāo)點(diǎn)位置如圖4所示。
圖4 機(jī)器人的初始位姿以及目標(biāo)點(diǎn)位置
領(lǐng)航者通信堵塞時隊(duì)形向目標(biāo)點(diǎn)位置移動的運(yùn)動過程如圖5所示。
圖5 領(lǐng)航者通信堵塞時隊(duì)形向目標(biāo)點(diǎn)位置移動的運(yùn)動過程
新領(lǐng)航者組織隊(duì)形向目標(biāo)點(diǎn)位置移動的運(yùn)動過程如圖6所示。
圖6 新領(lǐng)航者組織隊(duì)形向目標(biāo)點(diǎn)位置移動的運(yùn)動過程
上一任領(lǐng)航者清理緩存空間后作為跟隨者回歸到新隊(duì)形中的運(yùn)動過程如圖7所示。
圖7 上一任領(lǐng)航者清理緩存空間后作為跟隨者回歸到新隊(duì)形中的運(yùn)動過程
各機(jī)器人到達(dá)目標(biāo)點(diǎn)位置如圖8所示。
圖8 各機(jī)器人到達(dá)目標(biāo)點(diǎn)位置
各機(jī)器人向目標(biāo)點(diǎn)位置移動的運(yùn)動軌跡如圖9所示。
圖9 各機(jī)器人向目標(biāo)點(diǎn)位置移動的運(yùn)動軌跡
由圖5、圖6可知,當(dāng)領(lǐng)航者通信堵塞時,領(lǐng)航—跟隨法編隊(duì)下跟隨者因接收不到領(lǐng)航者的下一步指示,只能在原地不動,而領(lǐng)航者繼續(xù)前進(jìn);接替性領(lǐng)航機(jī)制下從跟隨者中選取新的領(lǐng)航者組織隊(duì)形繼續(xù)向目標(biāo)點(diǎn)出發(fā),避免了因?qū)︻I(lǐng)航者的依賴導(dǎo)致系統(tǒng)的崩潰。由圖7、圖8可知,接替性領(lǐng)航機(jī)制下上一任領(lǐng)航者清理緩存空間后作為跟隨者回歸到新的隊(duì)形中繼續(xù)前進(jìn),最終全部到達(dá)目標(biāo)點(diǎn),避免了機(jī)器人因故障而丟棄。
本文在針對多機(jī)器人編隊(duì)中領(lǐng)航者的情況下,將對于由傳統(tǒng)方法選定的領(lǐng)航者的依賴問題轉(zhuǎn)變?yōu)閺母S者中選取新領(lǐng)航者的問題來求解,主要為:當(dāng)領(lǐng)航者通信堵塞時,根據(jù)跟隨者的綜合優(yōu)勢從中選取新的領(lǐng)航者組織隊(duì)形繼續(xù)前進(jìn),最終以完整的多機(jī)器人編隊(duì)到達(dá)目標(biāo)點(diǎn)。仿真結(jié)果表明在本文提出的編隊(duì)控制方法下很好的解決了多機(jī)器人編隊(duì)中對于領(lǐng)航者的依懶,隊(duì)伍中每個機(jī)器人的“負(fù)擔(dān)”較小,并且保證了隊(duì)形的完整性,對于機(jī)器人的規(guī)模有很好的擴(kuò)展性。
在本文的多機(jī)器人編隊(duì)環(huán)境下新領(lǐng)航者組織隊(duì)形的效率以及上一任領(lǐng)航者的回歸消耗時間較長,因此如何縮短這兩者消耗的時間是下一步的研究重點(diǎn)。