本公開實施例涉及機器人協(xié)同作業(yè),尤其涉及一種多機器人協(xié)同的分布式在線任務(wù)分配算法。
背景技術(shù):
1、在機器人領(lǐng)域,復雜任務(wù)分配仍是一個需要進一步研究的方向。任務(wù)分配領(lǐng)域的學者近年來多采用線性時序邏輯(linear?temporal?logic,ltl)來作為一個頂層描述多機器人復雜任務(wù)場景的工具。時序邏輯不僅可以封裝傳統(tǒng)的點對點布爾目標,還可以封裝復雜的時序要求。但是,目前時序邏輯仍然面臨一些待解決的問題,例如,時序邏輯僅僅對任務(wù)要求進行封裝,復雜性極高,如何對其求得最優(yōu)解是一個值得研究的問題?,F(xiàn)有的方法多為靜態(tài)優(yōu)化,將時序邏輯轉(zhuǎn)化為一個自動機或線性約束,進行線性求解。上述方法難以適應(yīng)動態(tài)任務(wù)環(huán)境,只能處理一類預先設(shè)定好的任務(wù),無法處理動態(tài)不確定任務(wù)要求。
技術(shù)實現(xiàn)思路
1、為了避免現(xiàn)有技術(shù)的不足之處,本發(fā)明提供一種多機器人協(xié)同的分布式在線任務(wù)分配算法,用以解決現(xiàn)有技術(shù)中存在難以適應(yīng)動態(tài)任務(wù)環(huán)境,只能處理一類預先設(shè)定好的任務(wù),無法處理動態(tài)不確定任務(wù)要求的問題。
2、根據(jù)本公開實施例,提供一種多機器人協(xié)同的分布式在線任務(wù)分配算法,該方法包括:
3、利用線性時序邏輯公式對若干個子任務(wù)及其任務(wù)條件進行處理,以得到第一sc-ltl公式;
4、利用非確定性布奇自動機對所述第一sc-ltl公式進行處理,以得到第一可行路徑;
5、利用任務(wù)依賴關(guān)系生成算法對所述第一可行路徑進行處理,以得到對應(yīng)的第一任務(wù)依賴關(guān)系;
6、利用在線任務(wù)發(fā)布算法將所述第一任務(wù)依賴關(guān)系中的所述子任務(wù)進行發(fā)布,無人機利用協(xié)商分配算法對發(fā)布的所述子任務(wù)進行分配。
7、進一步的,利用線性時序邏輯公式對若干個子任務(wù)及其任務(wù)條件進行處理,以得到第一sc-ltl公式的步驟中,包括:
8、利用所述線性時序邏輯公式中的原子命題和若干個布爾和時態(tài)運算符對所有所述子任務(wù)及所述任務(wù)條件進行表示,以得到所述第一sc-ltl公式。
9、進一步的,利用非確定性布奇自動機對所述第一sc-ltl公式進行處理,以得到第一可行路徑的步驟中,包括:
10、設(shè)定所述非確定性布奇自動機;
11、利用所述非確定性布奇自動機從所述第一sc-ltl公式中尋找最短的路徑,以得到所述第一可行路徑。
12、進一步的,所述任務(wù)依賴關(guān)系生成算法包括:
13、依次對每兩個所述子任務(wù)的順序進行確定;其中,
14、對于優(yōu)先關(guān)系,若兩個所述子任務(wù)交換后能夠執(zhí)行,則兩個所述子任務(wù)不存在優(yōu)先關(guān)系;若兩個所述子任務(wù)交換后無法執(zhí)行,則兩個所述子任務(wù)存在優(yōu)先關(guān)系;對比所有所述子任務(wù),并得到確定的優(yōu)先關(guān)系集合;
15、對于沖突關(guān)系,若兩個所述子任務(wù)交換后能夠執(zhí)行,則兩個所述子任務(wù)不存在沖突關(guān)系;若兩個所述子任務(wù)交換后無法執(zhí)行,則兩個所述子任務(wù)存在沖突關(guān)系;對比所有所述子任務(wù),并得到確定的沖突關(guān)系集合。
16、進一步的,利用任務(wù)依賴關(guān)系生成算法對所述第一可行路徑進行處理,以得到對應(yīng)的第一任務(wù)依賴關(guān)系的步驟中,包括:
17、利用所述任務(wù)依賴關(guān)系生成算法對所述第一可行路徑中的每兩個所述子任務(wù)進行分析,以得到所有所述子任務(wù)之間的第一優(yōu)先關(guān)系集合和第一沖突關(guān)系集合;
18、根據(jù)所述第一優(yōu)先關(guān)系集合和所述第一沖突關(guān)系集合,以得到所有所述子任務(wù)的所述第一任務(wù)依賴關(guān)系。
19、進一步的,該方法還包括:
20、獲取新增子任務(wù);
21、利用所述線性時序邏輯公式對所述新增子任務(wù)及其任務(wù)條件進行處理,以得到第二sc-ltl公式;
22、利用所述非確定性布奇自動機對所述第二sc-ltl公式進行處理,以得到第二可行路徑;
23、利用所述任務(wù)依賴關(guān)系生成算法對所述第二可行路徑進行處理,以得到對應(yīng)的第二任務(wù)依賴關(guān)系;
24、利用任務(wù)依賴關(guān)系合并算法將第一任務(wù)依賴關(guān)系與第二任務(wù)依賴關(guān)系進行合并,以得到合并任務(wù)依賴關(guān)系;
25、利用所述在線任務(wù)發(fā)布算法將所述合并任務(wù)依賴關(guān)系中的子任務(wù)進行發(fā)布,所述無人機利用所述協(xié)商分配算法對發(fā)布的子任務(wù)進行分配。
26、進一步的,利用任務(wù)依賴關(guān)系合并算法將第一任務(wù)依賴關(guān)系與第二任務(wù)依賴關(guān)系進行合并,以得到合并任務(wù)依賴關(guān)系的步驟中,包括:
27、從所述第一任務(wù)依賴關(guān)系中獲取所有所述子任務(wù)及其所述第一優(yōu)先關(guān)系集合和所述第一沖突關(guān)系集合;
28、從所述第二任務(wù)依賴關(guān)系中獲取所有所述新增子任務(wù)及其第二優(yōu)先關(guān)系集合和第二沖突關(guān)系集合;
29、根據(jù)所述子任務(wù)和所述新增子任務(wù)得到合并子任務(wù)集合;
30、合并所述第一優(yōu)先關(guān)系集合和所述第二優(yōu)先關(guān)系集合,以得到初始優(yōu)先關(guān)系集合,并對所述初始優(yōu)先關(guān)系集合進行擴展,以得到合并優(yōu)先關(guān)系集合;
31、合并所述第一沖突關(guān)系集合和所述第二沖突關(guān)系集合,以得到初始沖突關(guān)系集合,并對所述初始沖突關(guān)系集合進行擴展,以得到合并沖突關(guān)系集合;
32、根據(jù)所述合并子任務(wù)集合、所述合并優(yōu)先關(guān)系集合和所述合并沖突關(guān)系集合,以得到合并任務(wù)依賴關(guān)系。
33、進一步的,所述在線任務(wù)發(fā)布算法包括:
34、檢查每個待發(fā)布子任務(wù)的第一發(fā)布條件和第二發(fā)布條件;其中,所述第一發(fā)布條件為:所有前序任務(wù)都在執(zhí)行中或已完成;所述第二發(fā)布條件為:待發(fā)布子任務(wù)與待執(zhí)行或正在執(zhí)行的子任務(wù)沒有沖突;
35、當同時滿足所述第一發(fā)布條件和所述第二發(fā)布條件時,發(fā)布所述待發(fā)布子任務(wù),并將發(fā)布的所述待發(fā)布子任務(wù)加入待執(zhí)行列表并從待發(fā)布列表中刪除;
36、循環(huán)對當前的所述待發(fā)布列表進行檢查。
37、進一步的,所述協(xié)商分配算法包括:
38、當所有機器人收到一個或多個任務(wù)后,所述機器人根據(jù)距離選擇最近的所述任務(wù),并將其設(shè)置為自身的擬執(zhí)行目標;
39、若有兩個所述機器人同時選中了同一所述任務(wù),則距離遠的所述機器人重新選擇其他的所述任務(wù),重復該過程直至無沖突;
40、所述機器人執(zhí)行選擇的所述任務(wù),并更新其任務(wù)狀態(tài),并將所述任務(wù)從任務(wù)依賴關(guān)系中移除。
41、本公開的實施例提供的技術(shù)方案可以包括以下有益效果:
42、本公開的實施例中,通過上述多機器人協(xié)同的分布式在線任務(wù)分配算法,一方面,利用線性時序邏輯公式對所有子任務(wù)及其任務(wù)條件進行表示,以得到能夠表示所有子任務(wù)的邏輯關(guān)系的第一sc-ltl公式;利用非確定性布奇自動機對第一sc-ltl公式進行處理,以得到最短的路徑即第一可行路徑;利用任務(wù)依賴關(guān)系生成算法對第一可行路徑中所有子任務(wù)的優(yōu)先關(guān)系和沖突關(guān)系進行分析,以得到第一任務(wù)依賴關(guān)系;最后,利用在線任務(wù)發(fā)布算法將任務(wù)依賴關(guān)系中的子任務(wù)進行發(fā)布,無人機利用協(xié)商分配算法對發(fā)布的子任務(wù)進行分配。另一方面,不斷增加的任務(wù)時,利用任務(wù)依賴關(guān)系合并算法對原本的子任務(wù)和新增子任務(wù)進行處理,以處理不斷增加的任務(wù)要求,在線地將其發(fā)布,隨后交由機器人協(xié)商分配任務(wù),達到優(yōu)化動態(tài)任務(wù)分配過程的目的。