本發(fā)明涉及機(jī)器人控制領(lǐng)域,尤其涉及一種群體移動物聯(lián)網(wǎng)機(jī)器人控制方法。
背景技術(shù):
隨著物聯(lián)網(wǎng)技術(shù)的日益成熟,大規(guī)模的物聯(lián)網(wǎng)機(jī)器人協(xié)同工作成為可能,而在此之前,機(jī)器人的任務(wù)分配,有序集群運(yùn)動等問題也急需解決。參考自然界生物不難發(fā)現(xiàn),群體行為是普遍存在的一種生物行為模式,蟻群能夠通過集體協(xié)作獵殺體型遠(yuǎn)超過自身的昆蟲或者高效的構(gòu)造巢穴,候鳥在遷徙過程中能夠組成有利于飛行的陣型,海洋中的某些魚類會集群躲避捕食者的威脅,這些生物集群看起來并沒有所謂的“中樞系統(tǒng)”統(tǒng)一發(fā)號指令,卻能有條不紊的共同實(shí)現(xiàn)某一目標(biāo),著實(shí)令人嘆為觀止。很明顯,這種自然形成的系統(tǒng)具備某種自組織性,不會因某個(gè)“核心”失效而導(dǎo)致系統(tǒng)整體失效,系統(tǒng)內(nèi)的個(gè)體雖然可能功能單一,卻也因此具有可替換性,在相當(dāng)大的范圍內(nèi)增減個(gè)體數(shù)量不會對系統(tǒng)功能產(chǎn)生影響,健壯性極強(qiáng)。而這些特點(diǎn)正是大規(guī)模物聯(lián)網(wǎng)機(jī)器人系統(tǒng)所需要的,具有極佳的參考意義。研究者對開生物集群行為模式的研究和模仿已進(jìn)行了數(shù)十年,1987年,Reynolds建立了分散式行為模型并對鳥群進(jìn)行了仿真,證明簡單個(gè)體間通過密集交互可以實(shí)現(xiàn)聚合行為,這是人們最早對自然集群的研究和模擬。1993年,Beni等人提出“元胞機(jī)器人系統(tǒng)”具備實(shí)現(xiàn)智能行為的能力,并正式引入了集群智能概念。此后大量集群控制算法涌現(xiàn),各類算法已經(jīng)能夠?qū)崿F(xiàn)豐富的群體行為控制,然而在實(shí)際情況中不可變的,單一的控制算法往往無法滿足需求,相比之下,可以隨時(shí)間變化的控制算法更適合描述真實(shí)環(huán)境下群體系統(tǒng)的工作模式,也具備更強(qiáng)的環(huán)境適應(yīng)能力。本發(fā)明針對這一現(xiàn)狀提出了一種時(shí)變控制算法,旨在實(shí)現(xiàn)豐富的、隨時(shí)間變化的物聯(lián)網(wǎng)機(jī)器人群體控制功能。
技術(shù)實(shí)現(xiàn)要素:
本方法的核心思想是令物聯(lián)網(wǎng)機(jī)器人的控制函數(shù)中包含時(shí)間項(xiàng),使其成為關(guān)于時(shí)間的函數(shù),當(dāng)時(shí)間改變時(shí)控制函數(shù)也隨之變化。此外,考慮到實(shí)際的機(jī)器人群體中存在成員分工不同及通信延遲,允許各機(jī)器人個(gè)體在同一時(shí)間點(diǎn)受不同函數(shù)驅(qū)動,以此進(jìn)一步增加算法靈活性。以下給出算法實(shí)現(xiàn)細(xì)節(jié):
設(shè)集合SV={(Vx1+Vy1),(Vx2+Vy2),…,(Vxn+Vyn)}代表位置移動類控制函數(shù)集,Vx1,Vx2,…,Vxn為不同類型的關(guān)于位置的函數(shù),用于指定機(jī)器人在二維空間中向x軸方向的位移,Vy1,Vy2…,Vyn同上,用于指定y軸方向的位移。設(shè)集合SO={O1,O2,…,Om}代表其它類型控制函數(shù)集,O1,O2,…,Om為控制機(jī)器人實(shí)現(xiàn)除位置移動外的某種特定功能(此處“功能”包括但不限于姿態(tài)調(diào)整、數(shù)據(jù)采集、通信及各類與周圍環(huán)境交互的動作等)的控制函數(shù)。令S={Ct1E1,Ct2E2,…,CtNEN}代表各種子控制函數(shù)的集合,其中1≤N≤m+n,E1,E2,…,EN表示不同類型的子控制函數(shù),各函數(shù)均應(yīng)取自SV或SO,即Ei∈SV∪SO,1≤i≤N,參數(shù)1≤i≤N用于引入時(shí)間變量t。在任意時(shí)刻t,作用在某機(jī)器人個(gè)體上的控制函數(shù)f(t)表示為:
上式表示在任意時(shí)刻t,作用于一個(gè)可控機(jī)器人個(gè)體上的子控制函數(shù)有且只有一個(gè),t0,t1,…,tN將時(shí)間分為N段,當(dāng)t從t0到tN變化時(shí),集合S中的子控制函數(shù)將在每個(gè)時(shí)間段內(nèi)依次對機(jī)器人個(gè)體產(chǎn)生作用,輪流主導(dǎo)機(jī)器人行為。合理規(guī)劃集合S中的子控制函數(shù)實(shí)現(xiàn)豐富的、隨時(shí)間變化的控制功能。任何能夠控制機(jī)器人實(shí)現(xiàn)某種特定功能(如位置移動、姿態(tài)調(diào)整、數(shù)據(jù)采集、通信及各類與周圍環(huán)境交互的動作等)的控制函數(shù)均可作為集合S中的子控制函數(shù)。此外,除提前規(guī)劃外,集合S中的子控制函數(shù)還可實(shí)時(shí)、動態(tài)地進(jìn)行增減,以滿足復(fù)雜多變的實(shí)際工作需求。
附圖說明
圖1為本算法的控制流程圖;
圖2為本算法控制下的機(jī)器人群體運(yùn)動軌跡。
具體實(shí)施方式
本方法應(yīng)用于物聯(lián)網(wǎng)機(jī)器人控制時(shí)基本控制流程如下:
S1.物聯(lián)網(wǎng)機(jī)器人接收外部指令,規(guī)劃任務(wù)及任務(wù)時(shí)間,即構(gòu)建或修改控制函數(shù)集合S。
S2.根據(jù)規(guī)劃準(zhǔn)備一項(xiàng)新任務(wù),即設(shè)置或變更控制函數(shù),任何控制函數(shù)都應(yīng)取從上一步中構(gòu)建或修改的控制函數(shù)集合S中選取。
S3.執(zhí)行當(dāng)前任務(wù),即機(jī)器人在當(dāng)前控制函數(shù)作用下行動。
S4.檢查是否有修改指令的請求,即是否需要修改或重建控制函數(shù)集合S。若為是,則轉(zhuǎn)至步驟S1,若為否,則繼續(xù)下一步。
S5.判斷當(dāng)前任務(wù)是否已耗盡預(yù)定時(shí)間,即是否已超出當(dāng)前控制函數(shù)作用的時(shí)間范圍。若為是,則進(jìn)行下一步,若為否,則轉(zhuǎn)至步驟S3繼續(xù)執(zhí)行當(dāng)前任務(wù)。
S6.判斷當(dāng)前任務(wù)是否為預(yù)定的最后一項(xiàng)任務(wù)。若為是,則流程結(jié)束,若為否,則轉(zhuǎn)至S2準(zhǔn)備下一項(xiàng)任務(wù)。
附圖1展示了本算法的控制流程。
以物聯(lián)網(wǎng)機(jī)器人集群運(yùn)動控制為例進(jìn)行詳細(xì)說明:當(dāng)個(gè)體間同時(shí)存在吸引及排斥的相互作用時(shí),每個(gè)個(gè)體能夠在特定距離下達(dá)到受力平衡,而這可以成為群體構(gòu)成穩(wěn)定陣型的保障,建立如下控制函數(shù)模型:
Vxi,Vyi分別用于指定機(jī)器人沿x軸和y軸方向的位移,分別為x軸和y軸方向的單位向量,x,y為該機(jī)器人的當(dāng)前坐標(biāo),xj,yj代表該機(jī)器人附近其他第j個(gè)機(jī)器人的坐標(biāo),如果該機(jī)器人附近有M個(gè)其他機(jī)器人,則j為1到M之間的整數(shù)。k為比例系數(shù),當(dāng)該機(jī)器人互相位于對方的吸引區(qū)內(nèi)時(shí),引力占主導(dǎo)地位,相應(yīng)的k應(yīng)取一負(fù)數(shù),當(dāng)機(jī)器人間距在平衡區(qū)內(nèi)時(shí),兩機(jī)器人間無互相作用力,k為0,否則斥力占主導(dǎo)地位,k取一正數(shù)。設(shè)定不同的引力區(qū),平衡區(qū)及排斥區(qū)范圍即可實(shí)現(xiàn)不同的控制效果。
現(xiàn)考慮如下情形:在二維環(huán)境中隨機(jī)放置若干物聯(lián)網(wǎng)機(jī)器人,個(gè)體在t0時(shí)刻處于靜止?fàn)顟B(tài),此時(shí)控制函數(shù)表示為:
Vx1=0
Vy1=0
在時(shí)間點(diǎn)t1時(shí)各物聯(lián)網(wǎng)機(jī)器人接收外部指令進(jìn)行必要的初始化設(shè)置,在t2完成操作,本階段控制函數(shù)設(shè)為O1。
之后各機(jī)器人根據(jù)指令執(zhí)行聚攏操作,此階段控制函數(shù)取為:
的取值表示當(dāng)受控機(jī)器人與周圍第j個(gè)機(jī)器人的間距dj<10時(shí)兩個(gè)體相互排斥,dj≥30時(shí)兩個(gè)體相互吸引,排斥作用強(qiáng)于吸引作用以避免碰撞。聚攏完成后希望各個(gè)體有序分散,重新構(gòu)成相對松散的陣型,設(shè)這一行為在時(shí)間點(diǎn)t3開始,t4點(diǎn)結(jié)束,則此階段控制函數(shù)可取為:
綜合考慮以上各階段函數(shù),令SV={(Vx1+Vy1),(Vx2+Vy2),(Vx3+Vy3)}為位置移動類控制函數(shù)集,SO={O1}為其他類型控制函數(shù)集,則S={Ct1E1,Ct2E2,Ct3E3,Ct4E4},其中E1=(Vx1+Vy1),E2=O1,E3=(Vx2+Vy2),E4=(Vx3+Vy3),在任意時(shí)刻t,作用在某機(jī)器人個(gè)體上的控制函數(shù)表示為:
上述控制函數(shù)作用于物聯(lián)網(wǎng)機(jī)器人實(shí)現(xiàn)集群陣型控制,附圖2展示了該算法控制下的機(jī)器人運(yùn)動軌跡,矩形標(biāo)示了起始位置,圓形及三角形分別標(biāo)示了各控制函數(shù)下機(jī)器人的相對穩(wěn)定位置。全部流程中作用于機(jī)器人的控制函數(shù)共變化三次,實(shí)現(xiàn)了靜止→初始化設(shè)置→構(gòu)建緊密陣型→構(gòu)建松散陣型的動態(tài)變化過程,展示了本算法的時(shí)變特性。上述集群陣型控制僅為本方法的應(yīng)用之一,實(shí)際上只要構(gòu)建恰當(dāng)?shù)目刂坪瘮?shù)集合S、合理規(guī)劃控制函數(shù)作用的時(shí)間域并遵循附圖1所示的控制流程即可實(shí)現(xiàn)各種實(shí)際情況中需要的控制功能。