本技術(shù)涉及路徑規(guī)劃,具體涉及一種多機器人路徑規(guī)劃方法、裝置及電子設(shè)備。
背景技術(shù):
1、現(xiàn)代智能系統(tǒng)中,多機器人路徑規(guī)劃是一項重要且復(fù)雜的任務(wù),其要求多個機器人能夠在已知的復(fù)雜環(huán)境中從起點位置移動到目標(biāo)位置,同時避免與其他機器人發(fā)生碰撞。隨著自動駕駛車輛、物流機器人和協(xié)作無人機等應(yīng)用的興起,多機器人路徑規(guī)劃逐漸成為近年來的研究熱點。
2、相關(guān)技術(shù)中,通常采用基于沖突的搜索(conflict-based?search,cbs)算法進行多機器人路徑規(guī)劃。然而,隨著地圖的增大和機器人數(shù)量的增多,傳統(tǒng)的cbs算法在進行路徑規(guī)劃時,會出現(xiàn)求解時間延長、路徑規(guī)劃效率低、不能準(zhǔn)確規(guī)劃最優(yōu)路徑等問題。
技術(shù)實現(xiàn)思路
1、有鑒于此,本技術(shù)實施例提供了一種多機器人路徑規(guī)劃方法、裝置及電子設(shè)備,以解決相關(guān)技術(shù)在多機器人路徑規(guī)劃時求解時間長、路徑規(guī)劃效率低、不能準(zhǔn)確規(guī)劃最優(yōu)路徑的技術(shù)問題。
2、第一方面,本技術(shù)實施例提供了一種多機器人路徑規(guī)劃方法,包括:
3、獲取地圖中多個機器人分別對應(yīng)的起點位置和目標(biāo)位置,基于各機器人的起點位置和目標(biāo)位置進行路徑規(guī)劃,確定所述各機器人的最優(yōu)路徑;
4、檢測所述各機器人的最優(yōu)路徑是否存在路徑?jīng)_突,若任意兩個機器人的最優(yōu)路徑存在路徑?jīng)_突,則檢測所述路徑?jīng)_突的沖突類型,并根據(jù)所述沖突類型確定所述路徑?jīng)_突的沖突屬性;所述沖突屬性包括可避免重規(guī)劃的沖突屬性和不可避免重規(guī)劃的沖突屬性;
5、根據(jù)所述沖突屬性,利用相應(yīng)的路徑搜索算法對所述路徑?jīng)_突對應(yīng)的機器人重新進行路徑規(guī)劃,得到新的最優(yōu)路徑作為最優(yōu)路徑;
6、重新執(zhí)行檢測所述各機器人的最優(yōu)路徑是否存在路徑?jīng)_突的步驟,直至所述各機器人的最優(yōu)路徑均不存在路徑?jīng)_突,輸出各機器人當(dāng)前的最優(yōu)路徑。
7、在第一方面的一種可能的實施方式中,所述沖突類型包括頂點沖突和邊沖突;
8、所述根據(jù)所述沖突類型確定所述路徑?jīng)_突的沖突屬性,包括:
9、若所述路徑?jīng)_突為頂點沖突,則根據(jù)所述兩個機器人的負載情況和在發(fā)生路徑?jīng)_突的上一時刻的行駛方向,確定所述路徑?jīng)_突的頂點沖突類型,并根據(jù)所述頂點沖突類型,確定所述路徑?jīng)_突的沖突屬性;其中,所述頂點沖突類型包括交叉頂點沖突、相向頂點沖突、地圖頂點交叉頂點沖突和追擊頂點沖突;
10、若所述路徑?jīng)_突為邊沖突,則確定所述路徑?jīng)_突的沖突屬性為不可避免重規(guī)劃的沖突屬性。
11、在第一方面的一種可能的實施方式中,所述負載情況包括負載狀態(tài)和空載狀態(tài);
12、所述根據(jù)所述兩個機器人的負載情況和在發(fā)生路徑?jīng)_突的上一時刻的行駛方向,確定所述路徑?jīng)_突的頂點沖突類型,包括:
13、檢測所述兩個機器人的負載情況;
14、若所述兩個機器人在發(fā)生路徑?jīng)_突的上一時刻為側(cè)向行駛,且所述路徑?jīng)_突對應(yīng)的頂點不位于所述地圖的頂點,則確定所述路徑?jīng)_突為交叉頂點沖突;
15、若所述兩個機器人在發(fā)生路徑?jīng)_突的上一時刻為對向行駛,則確定所述路徑?jīng)_突為相向頂點沖突;
16、若所述兩個機器人的負載情況不同、在發(fā)生路徑?jīng)_突的上一時刻同向行駛,且空載狀態(tài)的機器人在在路徑?jīng)_突的上一時刻落后于負載狀態(tài)的機器人,則確定所述路徑?jīng)_突為追擊頂點沖突;
17、若所述兩個機器人在發(fā)生路徑?jīng)_突的上一時刻為側(cè)向行駛,且所述路徑?jīng)_突對應(yīng)的頂點位于所述地圖的頂點,則確定所述路徑?jīng)_突為地圖頂點交叉頂點沖突。
18、在第一方面的一種可能的實施方式中,所述根據(jù)所述頂點沖突類型,確定所述路徑?jīng)_突的沖突屬性,包括:
19、若所述頂點沖突類型為交叉頂點沖突、相向頂點沖突或追擊頂點沖突,則確定所述路徑?jīng)_突的沖突屬性為可避免重規(guī)劃的沖突屬性;
20、若所述頂點沖突類型為地圖頂點交叉頂點沖突,則確定所述路徑?jīng)_突的沖突屬性為不可避免重規(guī)劃的沖突屬性。
21、在第一方面的一種可能的實施方式中,所述路徑搜索算法包括第一路徑搜索算法和第二路徑搜索算法;
22、在所述根據(jù)所述沖突屬性,利用相應(yīng)的路徑搜索算法對所述路徑?jīng)_突對應(yīng)的最優(yōu)路徑重新進行路徑規(guī)劃,得到新的最優(yōu)路徑作為最優(yōu)路徑之前,還包括:
23、根據(jù)所述兩個機器人的負載情況,設(shè)置約束條件;所述約束條件包括第一約束條件和第二約束條件;
24、所述根據(jù)所述沖突屬性,利用相應(yīng)的路徑搜索算法對所述路徑?jīng)_突對應(yīng)的機器人重新進行路徑規(guī)劃,得到新的最優(yōu)路徑作為最優(yōu)路徑,包括:
25、若所述沖突屬性為可避免重規(guī)劃的沖突屬性,則基于所述第一約束條件,利用第一路徑搜索算法對所述路徑?jīng)_突對應(yīng)的機器人重新進行路徑規(guī)劃;
26、若所述沖突屬性為不可避免重規(guī)劃的沖突屬性,則基于所述第二約束條件,利用第二路徑搜索算法對所述路徑?jīng)_突對應(yīng)的機器人重新進行路徑規(guī)劃。
27、在第一方面的一種可能的實施方式中,所述根據(jù)所述兩個機器人的負載情況,設(shè)置約束條件,包括:
28、若所述兩個機器人的負載情況相同,則分別對所述兩個機器人設(shè)置禁止占用目標(biāo)頂點或目標(biāo)邊的第一約束條件;
29、若所述兩個機器人的負載情況不同,則設(shè)置禁止所述兩個機器人中負載情況為空載狀態(tài)的機器人占用目標(biāo)頂點或目標(biāo)邊的第二約束條件;
30、其中,所述目標(biāo)頂點為沖突類型為頂點沖突的路徑?jīng)_突中的頂點,所述目標(biāo)邊為沖突類型為邊沖突的路徑?jīng)_突中的邊。
31、在第一方面的一種可能的實施方式中,所述第一路徑搜索算法為第一改進的a*搜索算法;
32、所述基于所述第一約束條件,利用第一路徑搜索算法對所述路徑?jīng)_突對應(yīng)的機器人重新進行路徑規(guī)劃,包括:
33、根據(jù)所述兩個機器人的起點位置和目標(biāo)位置,以及第一約束條件,利用所述第一改進的a*搜索算法對所述兩個機器人重新進行路徑規(guī)劃;其中,所述第一改進的a*搜索算法的啟發(fā)函數(shù)h1為
34、
35、式中,x(s)和x(g)分別為機器人的起點位置的x坐標(biāo)和目標(biāo)位置的x坐標(biāo),y(s)和y(g)分別為機器人的起點位置的y坐標(biāo)和目標(biāo)位置的y坐標(biāo),k為可數(shù)值,dx為機器人的起點位置的x坐標(biāo)與目標(biāo)位置的x坐標(biāo)的差值的絕對值,dy為機器人的起點位置的y坐標(biāo)與目標(biāo)位置的y坐標(biāo)的差值的絕對值。
36、在第一方面的一種可能的實施方式中,所述第二路徑搜索算法為第二改進的a*搜索算法;
37、所述基于所述第二約束條件,利用第二路徑搜索算法對所述路徑?jīng)_突對應(yīng)的機器人重新進行路徑規(guī)劃,包括:
38、根據(jù)所述兩個機器人中負載情況為空載狀態(tài)的機器人的起點位置和目標(biāo)位置,以及第二約束條件,利用所述第二改進的a*搜索算法對所述負載情況為空載狀態(tài)的機器人重新進行路徑規(guī)劃;其中,所述第二改進的a*搜索算法的啟發(fā)函數(shù)h2為
39、
40、式中,δ為自適應(yīng)因子,cross為交叉影響因子,d(s)為機器人的起點位置到目標(biāo)位置的對角線距離。
41、第二方面,本技術(shù)實施例提供了一種多機器人路徑規(guī)劃裝置,包括:
42、獲取模塊,用于獲取地圖中多個機器人分別對應(yīng)的起點位置和目標(biāo)位置,基于各機器人的起點位置和目標(biāo)位置進行路徑規(guī)劃,確定所述各機器人的最優(yōu)路徑;
43、確定模塊,用于檢測所述各機器人的最優(yōu)路徑是否存在路徑?jīng)_突,若任意兩個機器人的最優(yōu)路徑存在路徑?jīng)_突,則檢測所述路徑?jīng)_突的沖突類型,并根據(jù)所述沖突類型確定所述路徑?jīng)_突的沖突屬性;所述沖突屬性包括可避免重規(guī)劃的沖突屬性和不可避免重規(guī)劃的沖突屬性;
44、得到模塊,用于根據(jù)所述沖突屬性,利用相應(yīng)的路徑搜索算法對所述路徑?jīng)_突對應(yīng)的機器人重新進行路徑規(guī)劃,得到新的最優(yōu)路徑作為最優(yōu)路徑;
45、輸出模塊,用于重新執(zhí)行檢測所述各機器人的最優(yōu)路徑是否存在路徑?jīng)_突的步驟,直至所述各機器人的最優(yōu)路徑均不存在路徑?jīng)_突,輸出各機器人當(dāng)前的最優(yōu)路徑。
46、第三方面,本技術(shù)實施例提供了一種電子設(shè)備,包括存儲器和處理器,存儲器中存儲有可在處理器上運行的計算機程序,處理器執(zhí)行計算機程序時實現(xiàn)如第一方面任一項所述的多機器人路徑規(guī)劃方法。
47、第四方面,本技術(shù)實施例提供了一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)存儲有計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)如第一方面任一項所述的多機器人路徑規(guī)劃方法。
48、第五方面,本技術(shù)實施例提供了一種計算機程序產(chǎn)品,當(dāng)計算機程序產(chǎn)品在電子設(shè)備上運行時,使得電子設(shè)備執(zhí)行上述第一方面中任一項所述的多機器人路徑規(guī)劃方法。
49、可以理解的是,上述第二方面至第五方面的有益效果可以參見上述第一方面中的相關(guān)描述,在此不再贅述。
50、本技術(shù)實施例提供的多機器人路徑規(guī)劃方法、裝置及電子設(shè)備,對各機器人進行路徑規(guī)劃,確定各機器人的最優(yōu)路徑,之后,檢測到任意兩個機器人的最優(yōu)路徑存在路徑?jīng)_突時,根據(jù)路徑?jīng)_突的沖突類型確定路徑?jīng)_突的沖突屬性,這里,沖突屬性包括可避免重規(guī)劃的沖突屬性和不可避免重規(guī)劃的沖突屬性,之后,對不同沖突屬性,利用不同的路徑搜索算法對相應(yīng)的機器人重新進行路徑規(guī)劃,并重復(fù)檢測各機器人的最優(yōu)路徑是否存在路徑?jīng)_突,直至各機器人的最優(yōu)路徑均不存在路徑?jīng)_突,輸出各機器人當(dāng)前的最優(yōu)路徑,這樣,區(qū)分路徑?jīng)_突的不同沖突類型,確定路徑?jīng)_突的沖突屬性,并對不同沖突屬性采用不同路徑搜索算法重新進行路徑規(guī)劃,能夠縮短求解時間,提高路徑規(guī)劃效率,準(zhǔn)確規(guī)劃多機器人的最優(yōu)路徑。
51、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本說明書。