本發(fā)明涉及機(jī)器人智能拍賣算法技術(shù)領(lǐng)域,更具體地,涉及一種面向動(dòng)態(tài)任務(wù)的多機(jī)器人分布式任務(wù)分配形成方法。
背景技術(shù):
隨著人們對(duì)人工智能和復(fù)雜系統(tǒng)認(rèn)識(shí)的深入,機(jī)器人系統(tǒng)在建筑、軍事、消防、工業(yè)生產(chǎn)等領(lǐng)域有了良好的應(yīng)用前景。而當(dāng)前多機(jī)器人系統(tǒng)中任務(wù)數(shù)量大,任務(wù)點(diǎn)包含信息復(fù)雜,參與的機(jī)器人眾多,全局搜索算法的計(jì)算代價(jià)呈現(xiàn)指數(shù)增長(zhǎng),這使得全局搜索算法很難在規(guī)定的時(shí)間內(nèi)尋找到任務(wù)分配問(wèn)題的最優(yōu)解。因此,全局搜索算法并不適用大規(guī)模多智能體動(dòng)態(tài)任務(wù)分配問(wèn)題的求解。在大規(guī)模系統(tǒng)中任務(wù)分配須滿足實(shí)時(shí)性的要求,傾向于在規(guī)定的時(shí)間內(nèi)得到“好”的解,而得到的解并不一定是最優(yōu)解。因此對(duì)于時(shí)間約束的多機(jī)器人動(dòng)態(tài)任務(wù)分配問(wèn)題研究具有重要意義。
當(dāng)前任務(wù)分配很多采用拍賣算法,傳統(tǒng)的拍賣算法面向任務(wù)是靜態(tài)的,采用的是一次拍賣算法。但在面對(duì)任務(wù)點(diǎn)數(shù)量多且動(dòng)態(tài)變化情況下存在很大的缺陷,無(wú)法實(shí)行更多次調(diào)度,不能滿足實(shí)時(shí)性的需要,更得不到理想的效果。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的面向動(dòng)態(tài)任務(wù)的多機(jī)器人分布式任務(wù)分配形成方法,該方法基于改進(jìn)的拍賣算法,以及結(jié)合A-star算法路徑尋優(yōu),通過(guò)機(jī)器人之間協(xié)同合作解決環(huán)境中多個(gè)動(dòng)態(tài)任務(wù)的問(wèn)題。
為了達(dá)到上述目的,本發(fā)明提供一種面向動(dòng)態(tài)任務(wù)的多機(jī)器人分布式任務(wù)分配形成方法,該方法包括:
S1:根據(jù)環(huán)境地圖中信息,理清任務(wù)分配問(wèn)題需要考慮的因素和難點(diǎn);
S2:任務(wù)發(fā)生時(shí),基于多階段拍賣算法,生成任務(wù)分配方案,機(jī)器人根據(jù)所述任務(wù)分配方案執(zhí)行任務(wù)。
進(jìn)一步,所述步驟S1中,包括:
S11:給定一張目標(biāo)環(huán)境地圖,所述地圖上分布有多個(gè)具有任務(wù)執(zhí)行能力的機(jī)器人、屬性隨時(shí)間變化的任務(wù)點(diǎn)和若干個(gè)障礙物;
S12:根據(jù)任務(wù)點(diǎn)的狀態(tài)變化,理清任務(wù)分配需要考慮的因素及難點(diǎn)
進(jìn)一步,所述步驟S11中,所述的環(huán)境為機(jī)器人工作環(huán)境,對(duì)給定的環(huán)境地圖建立直角坐標(biāo)系,坐標(biāo)系以x軸向右為正方向,y軸向上為正方向,并將該工作環(huán)境劃分為多個(gè)柵格,環(huán)境地圖在空間上分布有N(N∈Z+)個(gè)任務(wù)點(diǎn)、M(M∈Z+)個(gè)機(jī)器人以及B(B∈Z+)個(gè)障礙物,并分別確定機(jī)器人、任務(wù)和障礙物的坐標(biāo)。
其中,任務(wù)用字母j表示,其中j=1,2,…,N,任務(wù)在地圖上近似于一個(gè)點(diǎn)。機(jī)器人用字母i表示,其中i=1,2,…,M。障礙物用字母b表示,其中b=1,2,…,B。
任務(wù)點(diǎn)在地圖上的坐標(biāo)為其中j=1,2,…,N;機(jī)器人在地圖上的坐標(biāo)為其中i=1,2…M;障礙物在地圖上的坐標(biāo)為其中k=1,2,…,B。
任務(wù)點(diǎn)與機(jī)器人之間的距離公式為:
假定任務(wù)點(diǎn)j坐標(biāo)與任務(wù)點(diǎn)j'坐標(biāo)分別為則兩者之間距離公式為:
進(jìn)一步,所述步驟S12中,任務(wù)點(diǎn)狀態(tài)量隨時(shí)間呈現(xiàn)指數(shù)函數(shù)形式變化,任務(wù)點(diǎn)j(j=1,2,…,N)在(t+1)時(shí)刻的狀態(tài)量用方程表示為:
式中:
Sj(t+1),Sj(t):任務(wù)j(j=1,2,…,N)分別在(t+1)和t階段的任務(wù)點(diǎn)狀態(tài)量;
αj:第j個(gè)任務(wù)點(diǎn)的狀態(tài)變化率;
βi:機(jī)器人i的執(zhí)行能力且βi>0;
Δt:t與(t+1)之間的時(shí)間差;
ε:任務(wù)量閾值,設(shè)定任務(wù)量閾值ε判斷任務(wù)是否完成,當(dāng)sj(t)<ε時(shí),表示任務(wù)已完成。
這是一個(gè)任務(wù)狀態(tài)分布式的動(dòng)態(tài)任務(wù)分配問(wèn)題。任務(wù)點(diǎn)的狀態(tài)變化是連續(xù)的指數(shù)函數(shù)形式(式三)。其任務(wù)量為時(shí)間分布,它受到有多少個(gè)機(jī)器人在執(zhí)行該任務(wù)(智能體的執(zhí)行能力總和)的影響。
任務(wù)點(diǎn)j(j=1,2,…,N)的完成時(shí)間與作用于任務(wù)點(diǎn)j執(zhí)行能力之和成反比。當(dāng)t階段執(zhí)行目標(biāo)任務(wù)j的m個(gè)機(jī)器人執(zhí)行能力和時(shí),表明該m個(gè)機(jī)器人無(wú)法完成該任務(wù)點(diǎn),sj(t)呈現(xiàn)上升的趨勢(shì);當(dāng)時(shí),表明m個(gè)機(jī)器人可以完成該任務(wù)點(diǎn),sj(t)呈現(xiàn)下降的趨勢(shì)。
進(jìn)一步,所述步驟S12中,系統(tǒng)任務(wù)分配需要考慮的因素包括任務(wù)點(diǎn)屬性參數(shù)和機(jī)器人屬性參數(shù)。
任務(wù)點(diǎn)j(j=1,2,…N)的屬性參數(shù)包括:任務(wù)點(diǎn)的任務(wù)量(即狀態(tài)值)Sj(t),表示t時(shí)刻任務(wù)點(diǎn)的任務(wù)量,其中j=1,2,…,N,當(dāng)t=0時(shí)表示任務(wù)點(diǎn)的初始量Sj(0);任務(wù)點(diǎn)變化率αj;任務(wù)點(diǎn)j是空間分布的,任務(wù)點(diǎn)j在環(huán)境地圖上所處的位置
機(jī)器人i(i=1,2,…,M)的屬性參數(shù)包括:運(yùn)動(dòng)速度vi,表示機(jī)器人i在單位時(shí)間內(nèi)所走的路徑長(zhǎng);機(jī)器人能力值βi;機(jī)器人在環(huán)境地圖上所處的位置
隨著目標(biāo)任務(wù)點(diǎn)和機(jī)器人數(shù)量的增加,任務(wù)分配問(wèn)題的難度快速增加,各目標(biāo)任務(wù)點(diǎn)的重要程度、狀態(tài)變化率以及各個(gè)智能體執(zhí)行任務(wù)時(shí)的代價(jià)、執(zhí)行能力等都是需要考慮的因素。
假定正在前往第j個(gè)任務(wù)點(diǎn)的機(jī)器人在下一階段方案生成前不去其他任務(wù)點(diǎn),對(duì)于給定的M(M∈Z+)個(gè)機(jī)器人、N(N∈Z+)個(gè)任務(wù)點(diǎn),對(duì)任務(wù)點(diǎn)進(jìn)行多次拍賣共有種分配方案,其復(fù)雜度為
所述步驟S2中,進(jìn)一步包括:
S21:檢測(cè)到任務(wù)時(shí),選擇距離任務(wù)點(diǎn)最近的機(jī)器人作為代理機(jī)器人;若距離數(shù)個(gè)任務(wù)點(diǎn)最近的機(jī)器人為同一個(gè)機(jī)器人i(i=1,2,…,M),系統(tǒng)會(huì)選擇數(shù)個(gè)任務(wù)點(diǎn)中選擇距離直角坐標(biāo)系原點(diǎn)最近的任務(wù)點(diǎn)的機(jī)器人i為其代理機(jī)器人;
S22:代理機(jī)器人發(fā)布拍賣信息給通訊半徑內(nèi)的競(jìng)拍機(jī)器人,等待反饋;
S23:接收到拍賣信息的競(jìng)拍機(jī)器人根據(jù)自身收益函數(shù)選擇收益最高的任務(wù)點(diǎn)進(jìn)行投標(biāo);
S24:代理機(jī)器人收集投標(biāo)信息,以預(yù)定規(guī)則選擇中標(biāo)的機(jī)器人,并通知中標(biāo)的機(jī)器人執(zhí)行任務(wù);
S25:未中標(biāo)的競(jìng)拍機(jī)器人和處在通訊盲區(qū)的機(jī)器人選擇執(zhí)行最近的任務(wù)點(diǎn)。
進(jìn)一步,所述步驟S2中,當(dāng)檢測(cè)到已完成任務(wù)點(diǎn)和無(wú)目標(biāo)的空閑機(jī)器人時(shí),會(huì)對(duì)空閑機(jī)器人進(jìn)行重新拍賣,使得空閑機(jī)器人重新獲得新的任務(wù)點(diǎn),從而得出新的分配方案,直至環(huán)境中所有的任務(wù)點(diǎn)被執(zhí)行完后,停止拍賣。
本發(fā)明面向目標(biāo)任務(wù)是隨時(shí)間動(dòng)態(tài)變化的,任務(wù)點(diǎn)在被完成的時(shí)間點(diǎn)上也是分布的,即任務(wù)點(diǎn)在被執(zhí)行完的時(shí)間上是不一致的。
若沿用傳統(tǒng)的拍賣算法流程,在生成分配方案后,一直按照該方案執(zhí)行動(dòng)態(tài)目標(biāo)任務(wù),則很難適應(yīng)目標(biāo)任務(wù)的動(dòng)態(tài)變化和實(shí)時(shí)性要求。
改進(jìn)后的拍賣算法會(huì)實(shí)時(shí)跟蹤任務(wù)點(diǎn)的狀態(tài)變化,一旦存在已完成任務(wù)點(diǎn),會(huì)存在無(wú)目標(biāo)的機(jī)器人,算法會(huì)對(duì)它們進(jìn)行重新分配,從而得出新的分配方案,通過(guò)多次拍賣的實(shí)現(xiàn),以時(shí)間最優(yōu)為導(dǎo)向,最大程度的利用機(jī)器人的資源,實(shí)現(xiàn)分階段設(shè)計(jì)分配方案的目標(biāo),以適應(yīng)動(dòng)態(tài)任務(wù)的變化。
進(jìn)一步,所述步驟S22中,代理機(jī)器人負(fù)責(zé)發(fā)布拍賣信息給通信半徑內(nèi)的競(jìng)拍機(jī)器人,等待反饋;每個(gè)任務(wù)點(diǎn)j(j=1,2,…,N)的代理機(jī)器人掌握該任務(wù)點(diǎn)j的相關(guān)拍賣信息,所述消息包括:任務(wù)點(diǎn)j位置、任務(wù)點(diǎn)j的變化率、任務(wù)點(diǎn)j狀態(tài)量和任務(wù)點(diǎn)j所需要的合適機(jī)器人數(shù)量s。任務(wù)點(diǎn)的狀態(tài)量隨時(shí)間呈現(xiàn)指數(shù)函數(shù)形式變化。
任務(wù)點(diǎn)j所需要的合適機(jī)器人數(shù)sj定義為:假定存在w個(gè)機(jī)器人使得且任務(wù)點(diǎn)j所需要機(jī)器人最佳數(shù)目s取值為:
w≤sj≤w+2 (式四)
機(jī)器人i(i=1,2,…,M)都有對(duì)應(yīng)的通訊半徑ri(機(jī)器人的通訊半徑可以設(shè)為不同值),代理機(jī)器人負(fù)責(zé)發(fā)布拍賣信息給通信半徑內(nèi)的競(jìng)拍機(jī)器人。
進(jìn)一步,所述步驟S23中,接受到z(0≤z≤N)個(gè)代理機(jī)器人發(fā)布拍賣信息的競(jìng)拍機(jī)器人對(duì)這些信息進(jìn)行權(quán)衡,權(quán)衡標(biāo)準(zhǔn)為:競(jìng)拍機(jī)器人對(duì)這z個(gè)代理機(jī)器人發(fā)布拍賣信息進(jìn)行分析,本發(fā)明對(duì)傳統(tǒng)的拍賣算法進(jìn)行了改進(jìn),引進(jìn)了動(dòng)態(tài)經(jīng)濟(jì)效益函數(shù),機(jī)器人i計(jì)算執(zhí)行完某個(gè)任務(wù)點(diǎn)j后的收益值Eij(Eij為實(shí)數(shù)),并選擇收益最高的任務(wù)點(diǎn)進(jìn)行投標(biāo)。所用的動(dòng)態(tài)收益函數(shù)其為:
Eij=g(k1,Sj(t),αj,βi,n)-h(k2,dij) (式五)
式中:
g:機(jī)器人i執(zhí)行任務(wù)點(diǎn)j結(jié)束后獲得利益,為指數(shù)函數(shù);
h:機(jī)器人i執(zhí)行任務(wù)點(diǎn)j消耗的成本;
k1,k2:可變權(quán)重參數(shù),在不同壞境下可以設(shè)為其相應(yīng)的值;
dij:機(jī)器人i與任務(wù)點(diǎn)j之間的路徑長(zhǎng);
上式中,k1與Sj(t)的乘積為指數(shù)函數(shù)的比例系數(shù),αj,βi,n三者之間關(guān)系式構(gòu)成指數(shù)函數(shù)中的指數(shù),n代表正在執(zhí)行任務(wù)點(diǎn)j的機(jī)器人數(shù)量(在t=0時(shí),任務(wù)點(diǎn)無(wú)機(jī)器人執(zhí)行,此時(shí)n為0);
h是dij函數(shù),給定參數(shù)k2,則h的值由dij決定。
對(duì)于給定的環(huán)境地圖每個(gè)機(jī)器人都有對(duì)應(yīng)的執(zhí)行能力值βi(i=1,2,…,M),該機(jī)器人i的能力值為常數(shù),機(jī)器人之間的執(zhí)行能力值可以設(shè)為不同。
進(jìn)一步,所述步驟S24中,代理機(jī)器人收到競(jìng)拍機(jī)器人的投標(biāo)信息后,分析其信息,根據(jù)整體效益最大的目標(biāo),選擇中標(biāo)的競(jìng)拍機(jī)器人,并通知所有投標(biāo)的競(jìng)拍機(jī)器人結(jié)果。
進(jìn)一步,所述步驟S25中,地圖中通訊盲區(qū)的機(jī)器人(環(huán)境地圖中由于通訊半徑的限制可能存在接收不到代理機(jī)器人發(fā)布拍賣信息的機(jī)器人)和未中標(biāo)的競(jìng)拍機(jī)器人自行去執(zhí)行距離其最近的任務(wù)點(diǎn)。
進(jìn)一步,所述步驟S24中,代理機(jī)器人會(huì)根據(jù)預(yù)定規(guī)則選擇中標(biāo)的競(jìng)拍機(jī)器人,具體內(nèi)容為:
任務(wù)點(diǎn)j的代理機(jī)器人接受到nj個(gè)競(jìng)拍機(jī)器人投標(biāo)消息,若nj>sj,則按照收益大小排序,選擇排名靠前的(sj-1)個(gè)競(jìng)拍機(jī)器人作為中標(biāo)機(jī)器人,并通知所有投標(biāo)的競(jìng)拍機(jī)器人,若nj<sj,則nj個(gè)競(jìng)拍機(jī)器人全部為中標(biāo)機(jī)器人。
進(jìn)一步,所述步驟S24中,機(jī)器人在行進(jìn)過(guò)程中,通過(guò)A-star算法對(duì)路徑進(jìn)行尋優(yōu),可以合理的與其他機(jī)器人避碰及與障礙物進(jìn)行避撞,并搜索出機(jī)器人到達(dá)相應(yīng)任務(wù)點(diǎn)的最優(yōu)無(wú)碰路徑。
生成任務(wù)分配方案,機(jī)器人按照分配的方案開始執(zhí)行目標(biāo)任務(wù)點(diǎn),機(jī)器人在前往目標(biāo)任務(wù)行程中會(huì)實(shí)時(shí)的顯示自己所在的位置,同時(shí)通過(guò)A-star算法進(jìn)行最優(yōu)無(wú)碰路徑的搜索。
在A-star算法的搜索過(guò)程中,采用通過(guò)一個(gè)代價(jià)函數(shù)來(lái)搜索擴(kuò)展空間節(jié)點(diǎn)的方法,代價(jià)函數(shù)的一般形式為:
f(i)=g(i)+h(i) (式六)
式中:
f(i):節(jié)點(diǎn)i從初始節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的估價(jià)函數(shù);
g(i):在狀態(tài)空間中從初始節(jié)點(diǎn)到節(jié)點(diǎn)i的實(shí)際代價(jià);
h(i):從節(jié)點(diǎn)i到目標(biāo)節(jié)點(diǎn)最佳路徑的估計(jì)代價(jià)。
通過(guò)A-star算法進(jìn)行最優(yōu)無(wú)碰路徑的搜素,機(jī)器人遇到障礙物會(huì)合理的避開以及機(jī)器人在行進(jìn)過(guò)程中不會(huì)遇到,A-star是一種求解最短路徑的有效方法,提高了路徑規(guī)劃的實(shí)時(shí)、環(huán)境適應(yīng)性的效率。
機(jī)器人在整個(gè)執(zhí)行過(guò)程中遵守以下的規(guī)則:
a)任務(wù)點(diǎn)j所需要的最佳機(jī)器人數(shù)為sj;
b)正在前往第j個(gè)任務(wù)點(diǎn)的機(jī)器人在下階段方案生成前不去其他任務(wù)點(diǎn);
c)機(jī)器人不會(huì)去已經(jīng)被執(zhí)行完的任務(wù)點(diǎn);
d)代理機(jī)器人會(huì)根據(jù)事先制定的規(guī)則選擇中標(biāo)的競(jìng)拍機(jī)器人;
e)未中標(biāo)的競(jìng)拍機(jī)器人或通訊盲區(qū)的機(jī)器人(通訊半徑內(nèi)接收不到代理機(jī)器人發(fā)出的拍賣信息的機(jī)器人)會(huì)執(zhí)行自身最近的任務(wù)點(diǎn);
f)代理機(jī)器人執(zhí)行自身代理的任務(wù)點(diǎn)。
通過(guò)上述技術(shù)方案,本發(fā)明最后生成一套完整的執(zhí)行方案,并得到所有任務(wù)點(diǎn)被完成所需要的時(shí)間。完成所有任務(wù)點(diǎn)所需的時(shí)間為最后一個(gè)被執(zhí)行完任務(wù)點(diǎn)的時(shí)間。
基于上述技術(shù)方案,本發(fā)明提出了一種面向動(dòng)態(tài)任務(wù)的多階段拍賣算法,解決了環(huán)境中動(dòng)態(tài)任務(wù)分配問(wèn)題,傳統(tǒng)的拍賣算法采用的一次分配來(lái)解決給定的任務(wù),在面對(duì)動(dòng)態(tài)任務(wù)存在很大局限性,達(dá)不到預(yù)期的效果。通過(guò)多次拍賣的實(shí)現(xiàn),以時(shí)間最優(yōu)為目的,最大程度的利用機(jī)器人的資源,將上述方法在VC++和Csharp平臺(tái)上進(jìn)行仿真,通過(guò)大量的實(shí)驗(yàn)仿真測(cè)試結(jié)果表明,改進(jìn)的拍賣算法較傳統(tǒng)的拍賣算法更能夠很好的解決環(huán)境中的動(dòng)態(tài)任務(wù),通過(guò)多次分配來(lái)滿足實(shí)時(shí)性的需求,并能夠給出接近的最優(yōu)解。
附圖說(shuō)明
圖1為根據(jù)本發(fā)明實(shí)施例的環(huán)境模型圖。
圖2為根據(jù)本發(fā)明實(shí)施例的多階段拍賣算法流程圖。
圖3為根據(jù)本發(fā)明實(shí)施例的代理機(jī)器人工作流程圖。
圖4為根據(jù)本發(fā)明實(shí)施例的競(jìng)拍機(jī)器人工作流程圖。
圖5為根據(jù)本發(fā)明實(shí)施例的傳統(tǒng)拍賣算法(單階段拍賣算法)仿真圖。
圖6為根據(jù)本發(fā)明實(shí)施例的改進(jìn)拍賣算法(多階段拍賣算法)仿真圖。
圖7為根據(jù)本發(fā)明實(shí)施例的多階段拍賣算法與單階段拍賣算法消耗時(shí)間對(duì)比圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。
本發(fā)明提供一種基于改進(jìn)的拍賣算法,以及結(jié)合A-star算法路徑尋優(yōu),通過(guò)機(jī)器人之間協(xié)同合作解決環(huán)境中多個(gè)動(dòng)態(tài)任務(wù)的問(wèn)題。
多階段拍賣算法是在傳統(tǒng)拍賣算法的基礎(chǔ)上進(jìn)行改進(jìn),增加相應(yīng)的規(guī)則和動(dòng)態(tài)收益函數(shù)。傳統(tǒng)的拍賣算法適用于解決靜態(tài)目標(biāo)任務(wù)的分配問(wèn)題,并通過(guò)效益和代價(jià)參數(shù)分別衡量目標(biāo)任務(wù)價(jià)值和機(jī)器人執(zhí)行代價(jià),設(shè)計(jì)目標(biāo)任務(wù)對(duì)各機(jī)器人的拍賣算法,生成分配方案,整個(gè)系統(tǒng)只進(jìn)行一次拍賣。
機(jī)器人協(xié)同合作體現(xiàn)為:機(jī)器人檢測(cè)到任務(wù)點(diǎn)發(fā)生時(shí),代理機(jī)器人通過(guò)發(fā)布拍賣信息給競(jìng)拍機(jī)器人,競(jìng)拍機(jī)器人根據(jù)接收到信息進(jìn)行權(quán)衡,進(jìn)行投標(biāo);代理機(jī)器人根據(jù)反饋的信息以事先制定的規(guī)則選擇分配方案,機(jī)器人在執(zhí)行任務(wù)的進(jìn)程中會(huì)將了解的信息發(fā)送給自身的通訊半徑內(nèi)機(jī)器人,實(shí)現(xiàn)資源共享,一旦有任務(wù)點(diǎn)完成后,空閑的機(jī)器人會(huì)通過(guò)重新拍賣獲得目標(biāo)任務(wù)點(diǎn),去協(xié)助其它機(jī)器人執(zhí)行任務(wù)點(diǎn),直到所有任務(wù)點(diǎn)完成。
根據(jù)本申請(qǐng)的一個(gè)實(shí)施例中,如圖1所示,本發(fā)明環(huán)境模型圖,包括以下步驟:
首先,對(duì)目標(biāo)地圖建立直角坐標(biāo)系,并將目標(biāo)地圖分成多個(gè)等尺寸的地圖塊,每個(gè)地圖塊長(zhǎng)寬相等。
其次,在本發(fā)明實(shí)施例中,給定的目標(biāo)地圖長(zhǎng)寬都為300個(gè)單位,則地圖中含有地圖塊數(shù)89401個(gè)。
給定的環(huán)境地圖中可以特定設(shè)置M(M∈Z+)個(gè)機(jī)器人、N(N∈Z+)個(gè)任務(wù)點(diǎn)、以及B(B∈Z+)個(gè)障礙物。
計(jì)算并存儲(chǔ)任務(wù)點(diǎn)之間距離(式二)以及任務(wù)點(diǎn)與機(jī)器人之間距離(式一)。
最后分析本發(fā)明的研究目標(biāo):針對(duì)多個(gè)具有一定任務(wù)執(zhí)行能力的機(jī)器人,給定多個(gè)屬性隨時(shí)間變化的任務(wù),建立多機(jī)器人的動(dòng)態(tài)任務(wù)分配策略,優(yōu)化所有任務(wù)的完成時(shí)間,可以用最后一個(gè)任務(wù)的完成時(shí)間來(lái)衡量。
當(dāng)m(0≤m≤M)個(gè)機(jī)器人作用于任務(wù)點(diǎn)j(j=1,2,…,N)時(shí),在(t+1)(t≥0)時(shí)刻任務(wù)點(diǎn)j的任務(wù)狀態(tài)量公式為:
如圖2所示,本發(fā)明采用的多階段拍賣算法流程圖,詳述如下:
在S201中,檢測(cè)任務(wù)發(fā)生時(shí)先確定每個(gè)任務(wù)點(diǎn)的代理機(jī)器人,任務(wù)點(diǎn)j選擇原則為距離任務(wù)點(diǎn)j最近的機(jī)器人作為代理機(jī)器人。
代理機(jī)器人的工作流程參考圖3所示,詳述如下:
當(dāng)接受監(jiān)測(cè)系統(tǒng)的消息后,距離任務(wù)點(diǎn)j(j=1,2,…,N)最近的機(jī)器人i(i=1,2,…,M)為該任務(wù)點(diǎn)的代理機(jī)器人。機(jī)器人i首先了解任務(wù)點(diǎn)j的任務(wù)具體信息并對(duì)其進(jìn)行整理:主要是計(jì)算完成任務(wù)j所需要的機(jī)器人最佳數(shù)目s、獲取任務(wù)點(diǎn)變化率αj、任務(wù)點(diǎn)的任務(wù)狀態(tài)量、任務(wù)點(diǎn)所處的地理位置等。然后向通訊半徑內(nèi)的競(jìng)拍機(jī)器人發(fā)送拍賣信息,等待反饋。接收到拍賣信息的競(jìng)拍機(jī)器人根據(jù)自身收益函數(shù)選擇收益最高的任務(wù)點(diǎn)進(jìn)行投標(biāo),代理機(jī)器人以整體效益最高為目標(biāo)選擇中標(biāo)的競(jìng)拍機(jī)器人,并通知所有投標(biāo)的競(jìng)拍機(jī)器人。若中標(biāo)機(jī)器人的數(shù)量n達(dá)到n>s的條件,則選擇收益排名靠前的s個(gè)機(jī)器人,未中標(biāo)機(jī)器人會(huì)重新選擇距離最近的任務(wù)點(diǎn)。
在S203中,競(jìng)拍機(jī)器人工作流程參考圖4,詳述如下:
沒(méi)有被選為代理機(jī)器人則自動(dòng)轉(zhuǎn)換為競(jìng)拍機(jī)器人,首先代理機(jī)器人i發(fā)布拍賣信息給通信半徑內(nèi)的競(jìng)拍機(jī)器人,等待反饋。接收到拍賣信息的競(jìng)拍機(jī)器人根據(jù)自身收益函數(shù)選擇收益最高的任務(wù)點(diǎn)進(jìn)行投標(biāo),代理機(jī)器人收集投標(biāo)信息,并以系統(tǒng)整體效益最高為目標(biāo)選擇中標(biāo)的競(jìng)拍機(jī)器人。如果競(jìng)拍機(jī)器人成功中標(biāo),則開始執(zhí)行任務(wù),若未能成功中標(biāo)的機(jī)器人選擇去執(zhí)行最近的任務(wù)點(diǎn)。若有任務(wù)點(diǎn)被完成,則根據(jù)當(dāng)前情況重新分配空閑機(jī)器人,直至任務(wù)完成。
生成分配方案,開始執(zhí)行任務(wù),機(jī)器人在行進(jìn)中通過(guò)A-Star算法對(duì)路徑進(jìn)行尋優(yōu),可以合理的與其他機(jī)器人避碰以及與障礙物進(jìn)行避撞,并搜索出機(jī)器人到達(dá)相應(yīng)任務(wù)點(diǎn)的最佳無(wú)碰路徑。
一旦存在已完成任務(wù)點(diǎn),會(huì)存在無(wú)目標(biāo)的空閑機(jī)器人,系統(tǒng)會(huì)對(duì)它們進(jìn)行重新拍賣,從而得出新的分配方案,直至環(huán)境中所有的任務(wù)點(diǎn)完成。
機(jī)器人協(xié)作執(zhí)行任務(wù)測(cè)試。
上面提到的改進(jìn)的拍賣算法(多階段拍賣算法)的方法,有M個(gè)機(jī)器人、N個(gè)任務(wù)點(diǎn)以及B個(gè)障礙物。在(m是執(zhí)行任務(wù)點(diǎn)j的機(jī)器人數(shù)量)的約束條件下。為了測(cè)試使用的拍賣算法在執(zhí)行動(dòng)態(tài)任務(wù)的改善,使用長(zhǎng)寬為300個(gè)柵格的地圖進(jìn)行測(cè)試,對(duì)比單階段拍賣算法和多階段拍賣算法的效果。
圖5和圖6都為測(cè)試?yán)?,其中粗黑色小圓圈為代理機(jī)器人,機(jī)器人3為通訊盲區(qū)的機(jī)器人,具體如下:
圖5為某個(gè)測(cè)試單階段拍賣算法仿真圖,機(jī)器人2,4和5分別是任務(wù)點(diǎn)2,3和1的代理機(jī)器人,代理機(jī)器人發(fā)布對(duì)應(yīng)任務(wù)點(diǎn)的拍賣信息給通訊半徑內(nèi)的競(jìng)拍機(jī)器人;經(jīng)過(guò)首輪拍賣,競(jìng)拍機(jī)器人1,6和7成功中標(biāo),分別執(zhí)行任務(wù)點(diǎn)2,3和1。機(jī)器人3為通訊盲區(qū)的機(jī)器人(不在代理機(jī)器人通訊半徑范圍內(nèi),無(wú)法接受代理機(jī)器人發(fā)布的拍賣信息)選擇執(zhí)行距離最近的任務(wù)點(diǎn)1,生成任務(wù)分配方案后機(jī)器人開始執(zhí)行目標(biāo)任務(wù)點(diǎn),執(zhí)行過(guò)程中不再進(jìn)行拍賣,一旦有任務(wù)點(diǎn)被執(zhí)行完,空閑的機(jī)器人不協(xié)助其他機(jī)器人去執(zhí)行未完成的任務(wù)點(diǎn)。
圖6為相同的某個(gè)測(cè)試多階段拍賣算法仿真圖,其初次分配的方法和單階段拍賣算法分配方法相同,多階段拍賣算法特點(diǎn)在于一旦存在已完成任務(wù)點(diǎn),會(huì)存在無(wú)目標(biāo)的機(jī)器人,算法會(huì)對(duì)它們進(jìn)行重新分配,圖中任務(wù)點(diǎn)1先被執(zhí)行完,算法對(duì)機(jī)器人3,5和7重新分配,不浪費(fèi)空閑的機(jī)器人,通過(guò)多次拍賣,最大程度的利用機(jī)器人的資源,實(shí)現(xiàn)分階段設(shè)計(jì)分配方案的目標(biāo)。
為了驗(yàn)證該改進(jìn)拍賣算法的效率,選取了8組測(cè)試數(shù)據(jù),通訊半徑設(shè)定為200個(gè)單位,k1=1,k2=0.0025;統(tǒng)計(jì)結(jié)果如表1所示。
表1為測(cè)試時(shí)間統(tǒng)計(jì)表
將上面的仿真結(jié)果繪制成折線圖,如圖7所示,進(jìn)行對(duì)比結(jié)果,面向動(dòng)態(tài)任務(wù)引入相應(yīng)的規(guī)則和動(dòng)態(tài)收益函數(shù)后,機(jī)器人執(zhí)行動(dòng)態(tài)任務(wù)的整體效果有了很大的提升,通過(guò)仿真測(cè)試,證明了面向動(dòng)態(tài)任務(wù)機(jī)器人采用改進(jìn)的多階段拍賣算法有效性。
最后,本申請(qǐng)的方法僅為較佳的實(shí)施方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。