摘 要:針對(duì)移動(dòng)機(jī)器人在復(fù)雜室內(nèi)環(huán)境下的局部路徑規(guī)劃算法會(huì)面臨躲避動(dòng)態(tài)障礙物效率低、繞路及不能抵達(dá)目標(biāo)點(diǎn)的問題,提出了一種解決室內(nèi)路徑規(guī)劃的通道動(dòng)態(tài)窗口算法。該方法選用基于密度的應(yīng)用噪聲空間聚類算法(DBSCAN)先對(duì)障礙物分割,在相鄰障礙物之間建立通道,并將生成的通道離散化生成一系列的通道點(diǎn)。通過設(shè)計(jì)的通道點(diǎn)評(píng)價(jià)函數(shù),選擇出最優(yōu)通道點(diǎn)作為動(dòng)態(tài)窗口法的臨時(shí)通道點(diǎn),為動(dòng)態(tài)窗口法提供正確的方向。采用通道動(dòng)態(tài)窗口法對(duì)真實(shí)環(huán)境中的ROS機(jī)器人進(jìn)行路徑規(guī)劃,結(jié)果表明,通道動(dòng)態(tài)窗口法在路徑長度、運(yùn)行時(shí)間和采樣次數(shù)的性能上均優(yōu)于動(dòng)態(tài)窗口法,表現(xiàn)出更強(qiáng)的適應(yīng)性和魯棒性,避免了移動(dòng)機(jī)器人躲避障礙物不及時(shí)和陷入局部位置的問題。該算法既能獨(dú)立執(zhí)行局部路徑規(guī)劃任務(wù),也能與 A* 算法相結(jié)合進(jìn)行全局路徑規(guī)劃。
關(guān)鍵詞: 室內(nèi)路徑規(guī)劃; 動(dòng)態(tài)窗口法; 通道; 局部路徑規(guī)劃; 移動(dòng)機(jī)器人
中圖分類號(hào): TP242.6 文獻(xiàn)標(biāo)志碼: A 文章編號(hào): 1001-3695(2025)02-024-0501-06
doi: 10.19734/j.issn.1001-3695.2024.07.0235
Obstacle avoidance method based on channel dynamic window approach
Liu Chunling, Liu Jiaxin’, Guo Kaiwen
(College of Information Engineering, Dalian University, Dalian Liaoning 116622, China)
Abstract:Local path planning algorithms for mobile robots in complex indoor environments faced the problems of inefficient avoidance of dynamic obstacles, detouring and inability to reach the target point. This paper proposed a channel dynamic windowing algorithm to solve the indoor path planning. The method selected the density-based applied noise spatial clustering algorithm (DBSCAN) to segment the obstacles first, create channels between neighboring obstacles, and discretize the generated channels to produce a series of channel points. Through the designed channel point evaluation function, this algorithm selected the optimal channel points as the temporary channel points for the dynamic window me-thod to provide the correct direction for the dynamic window method. By applying the channel dynamic window method to perform path planning for ROS robots in real environments, the results show that the channel dynamic window method outperforms the dynamic window method in terms of the performance of path length, running time, and number of sampling times, exhibiting stronger adaptability and robustness, which effectively prevents the mobile robot from delaying obstacle avoidance and getting trapped in local positions. The algorithm can perform local path planning tasks independently, and can also be combined with the A* algorithm for global path planning.
Key words:indoor path planning; dynamic window method; channel; local path planning; mobile robot
0 引言
隨著人工智能的不斷發(fā)展,智能移動(dòng)機(jī)器人在許多行業(yè)中都得到了廣泛應(yīng)用,包括救災(zāi)、軍事作戰(zhàn)等。除了特殊用途外,移動(dòng)機(jī)器人在商業(yè)服務(wù)領(lǐng)域也得到了廣泛應(yīng)用,如物流中心的物流機(jī)器人負(fù)責(zé)貨物運(yùn)輸;餐館和酒店的機(jī)器人將物品送到指定位置。
移動(dòng)機(jī)器人路徑規(guī)劃主要分為全局路徑規(guī)劃和局部路徑規(guī)劃算法。全局路徑規(guī)劃通過構(gòu)建地圖和路徑規(guī)劃算法確定機(jī)器人的最優(yōu)路徑,而局部路徑規(guī)劃則在機(jī)器人運(yùn)動(dòng)過程中通過實(shí)時(shí)避開障礙物來確保機(jī)器人的安全移動(dòng)。全局路徑規(guī)劃與局部路徑規(guī)劃通常會(huì)結(jié)合使用,前者負(fù)責(zé)從宏觀上規(guī)劃出起點(diǎn)到終點(diǎn)的大致路線,后者則在執(zhí)行過程中負(fù)責(zé)微調(diào)和實(shí)時(shí)適應(yīng)環(huán)境變化。全局路徑規(guī)劃中常用的算法包括A*[1]、Dijkstra[2]、RRT(rapidly-exploring-random-tree)[3]、PRM(probabilistic-roadmaps)[4]、PSO(particle-swarm optimization)[5]、人工蜂群[6]。 局部路徑規(guī)劃常用的算法包括人工勢(shì)場(chǎng)法[7]、時(shí)間彈性帶[8]、動(dòng)態(tài)窗口法(dynamic windows method)[9]、速度障礙法[10]、深度強(qiáng)化學(xué)習(xí)[11]。
在機(jī)器人局部路徑規(guī)劃中,動(dòng)態(tài)窗口法規(guī)劃的路徑平滑,具有良好的避障能力,但算法容易陷入局部最優(yōu),無法獲得全局最優(yōu)路徑,機(jī)器人遠(yuǎn)離目標(biāo)時(shí)無法選擇合適的速度指令[12]。文獻(xiàn)[13]基于全局最優(yōu)路徑,提出了一種改進(jìn)的DWA算法,用于移動(dòng)機(jī)器人在動(dòng)態(tài)環(huán)境下的路徑規(guī)劃。通過刪除冗余節(jié)點(diǎn)、優(yōu)化初始方向、改進(jìn)評(píng)估函數(shù),增強(qiáng)移動(dòng)機(jī)器人規(guī)避移動(dòng)障礙物路徑的高效性。文獻(xiàn)[14] 對(duì)DWA進(jìn)行了改進(jìn),根據(jù)障礙物的速度,動(dòng)態(tài)改變障礙物的安全距離,以提高DWA的障礙物距離評(píng)價(jià)項(xiàng)目。在速度評(píng)估函數(shù)中引入了一個(gè)新的評(píng)估項(xiàng),以優(yōu)化DWA在速度空間中的搜索規(guī)則。文獻(xiàn)[15] 提出了一種改進(jìn)哈里斯鷹算法(IHHO)與改進(jìn)動(dòng)態(tài)窗口算法(IDWA)的融合算法(IHHO-IDWA),通過增加子函數(shù)、提出自適應(yīng)權(quán)重策略、設(shè)定初始航向角等改進(jìn)策略來解決動(dòng)態(tài)環(huán)境下移動(dòng)機(jī)器人路徑規(guī)劃的動(dòng)態(tài)窗口算法存在規(guī)劃路徑長和易陷入死鎖等問題。文獻(xiàn)[16]通過添加和減去線速度和角速度來提高避障性能。它們需要為每個(gè)環(huán)境調(diào)整與避障相關(guān)的策略和參數(shù)。當(dāng)機(jī)器人遇到以前沒有考慮過的情況時(shí),它可能無法有效地避開障礙物。文獻(xiàn)[17] 提出一種基于改進(jìn)Q-learning算法和動(dòng)態(tài)窗口法(DWA)的融合算法,通過提取改進(jìn)Q-learning算法規(guī)劃路徑的節(jié)點(diǎn),將其作為DWA算法的臨時(shí)目標(biāo),在前進(jìn)過程中實(shí)時(shí)躲避環(huán)境中出現(xiàn)的動(dòng)靜態(tài)障礙物。文獻(xiàn)[18]提出了一種改進(jìn)的DWA方法,其使用深度神經(jīng)網(wǎng)絡(luò),用強(qiáng)化學(xué)習(xí)的方式訓(xùn)練,使得模型自適應(yīng)地調(diào)整目標(biāo)函數(shù)的系數(shù),達(dá)到提高效率的目標(biāo)。
盡管以上文獻(xiàn)體現(xiàn)了動(dòng)態(tài)窗口法在各種場(chǎng)景中的自適應(yīng)、避障性能得到了極大的提高,但其在動(dòng)態(tài)復(fù)雜環(huán)境中仍有不足:a)在某些情況下, 動(dòng)態(tài)窗口法所得到的局部最優(yōu)組合路徑可能不是全局最優(yōu)路徑,這可能導(dǎo)致機(jī)器人繞遠(yuǎn)或陷入困境;b)只考慮機(jī)器人周圍的短期目標(biāo)和障礙物,這可能導(dǎo)致機(jī)器人陷入局部最優(yōu)解,無法找到全局最優(yōu)路徑。對(duì)于復(fù)雜環(huán)境中的長距離規(guī)劃問題,動(dòng)態(tài)窗口法可能表現(xiàn)不佳。這些問題的存在,不僅影響了機(jī)器人的路徑規(guī)劃效率,還可能對(duì)其安全性和穩(wěn)定性構(gòu)成威脅。為了克服動(dòng)態(tài)窗口法的這些局限性,提出了通道動(dòng)態(tài)窗口法(channel dynamic window approach)。通過引入“通道”的概念,在機(jī)器人的運(yùn)動(dòng)空間中識(shí)別出可通過的臨時(shí)通道,再通過評(píng)價(jià)函數(shù)選擇最優(yōu)的臨時(shí)通道點(diǎn),從而有效降低路徑規(guī)劃的復(fù)雜度并且避免機(jī)器人陷入局部最優(yōu)的情況。該方法與A*算法的結(jié)合彌補(bǔ)了局部規(guī)劃無法做到長距離規(guī)劃的問題,且通道機(jī)制解決了機(jī)器人繞遠(yuǎn)或陷入局部位置的問題。
1 全局路徑規(guī)劃算法
1.1 A*算法
A*算法是一種啟發(fā)式搜索算法,常用于圖搜索和路徑規(guī)劃。它于 1968 年由Hart等人為解決在圖或網(wǎng)絡(luò)中尋找最短路徑的問題而提出。A*算法將Dijkstra算法的最短路徑搜索和啟發(fā)式搜索的優(yōu)點(diǎn)相結(jié)合,能夠高效地找到從起點(diǎn)到終點(diǎn)的最短路徑。A*算法的基本思想是通過綜合考慮兩個(gè)關(guān)鍵的函數(shù)來實(shí)現(xiàn)路徑搜索,評(píng)價(jià)函數(shù)如式(1)所示。
f(n)=g(n)+h(n)(1)
其中:g(n)表示從起點(diǎn)到當(dāng)前節(jié)點(diǎn) n 的實(shí)際成本(路徑長度),也就是沿已知最短路徑移動(dòng)累計(jì)的成本;h(n)反映了從當(dāng)前節(jié)點(diǎn)n到目標(biāo)節(jié)點(diǎn)的最短路徑估計(jì)代價(jià)。A*算法通過綜合考慮當(dāng)前路徑的實(shí)際成本和對(duì)未來路徑的估算代價(jià),形成了評(píng)價(jià)函數(shù)f(n)來評(píng)估節(jié)點(diǎn)n的優(yōu)先級(jí),以引導(dǎo)算法在搜索空間進(jìn)行有效地決策。
1.2 A*算法規(guī)劃全局路徑
實(shí)現(xiàn)智能移動(dòng)機(jī)器人高效導(dǎo)航需要綜合局部和全局路徑規(guī)劃。局部路徑規(guī)劃能夠滿足對(duì)動(dòng)態(tài)環(huán)境做出實(shí)時(shí)改變,保證機(jī)器人在運(yùn)動(dòng)時(shí)的安全性與實(shí)時(shí)性;而全局性的路徑規(guī)劃則可以在較長的時(shí)期內(nèi)進(jìn)行有效的路徑預(yù)規(guī)劃,從而找到靜態(tài)環(huán)境下的最優(yōu)路徑。所以該算法選擇了A*算法規(guī)劃全局路徑。
A*算法需要先驗(yàn)地圖信息,所以使用cartography來建立全局地圖,然后使用A*算法得到一條如圖1所示的全局路徑。圖1 (a)為設(shè)置的仿真環(huán)境。圖1 (b)為cartography建立的相應(yīng)地圖以及A*生成的路徑。生成的路徑規(guī)劃出了移動(dòng)機(jī)器人的大致行進(jìn)方向,為后期實(shí)現(xiàn)動(dòng)態(tài)窗口法跟隨全局路徑做好了準(zhǔn)備,彌補(bǔ)了動(dòng)態(tài)窗口法的長距離路徑規(guī)劃問題。
2 通道動(dòng)態(tài)窗口法
2.1 動(dòng)態(tài)窗口法
動(dòng)態(tài)窗口法作為一種常用于機(jī)器人路徑規(guī)劃和導(dǎo)航的算法,旨在幫助機(jī)器人在復(fù)雜和動(dòng)態(tài)的環(huán)境中避開障礙物,同時(shí)盡可能快地到達(dá)目標(biāo)點(diǎn)。該方法最初由Fox等人在1997年提出,適用于各種類型的機(jī)器人,包括移動(dòng)機(jī)器人和自動(dòng)駕駛車輛。動(dòng)態(tài)窗口法使用了一個(gè)窗口的概念,這個(gè)窗口表示機(jī)器人在當(dāng)前速度下可行駛的范圍。在每個(gè)時(shí)間步長,機(jī)器人會(huì)計(jì)算一組可能的速度和轉(zhuǎn)向控制命令,并通過評(píng)估這些控制命令來選擇最佳的移動(dòng)策略。
動(dòng)態(tài)窗口法主要分為兩個(gè)部分:第一部分按照移動(dòng)機(jī)器人的姿態(tài)信息以時(shí)間間隔對(duì)速度空間進(jìn)行采樣,在規(guī)定時(shí)間內(nèi)產(chǎn)生軌跡集合; 第二部分根據(jù)評(píng)價(jià)函數(shù)對(duì)軌跡集合內(nèi)的所有軌跡進(jìn)行評(píng)價(jià),選出評(píng)價(jià)最好的軌跡,最后將得到的最優(yōu)軌跡通過轉(zhuǎn)換成速度指令,然后發(fā)送給移動(dòng)機(jī)器人。
動(dòng)態(tài)窗口法評(píng)價(jià)函數(shù)公式如下所示:
T(v,w)=αTtarget+(1.99-Dmin(Probot,Pobstacle)Rmax)βTspeed+γTobstacle(2)
其中:Dmin(Probot,Pobstacle)表示障礙物與機(jī)器人之間的最小距離;Rmax表示以障礙物為中心的最大速度控制半徑,當(dāng)進(jìn)入速度控制半徑時(shí),會(huì)提高速度代價(jià),選擇更安全的軌跡;Ttarget表示移動(dòng)機(jī)器人與目標(biāo)之間的距離代價(jià);Tspeed表示移動(dòng)機(jī)器人的速度代價(jià),該值越小表示速度越快;Tobstacle表示移動(dòng)機(jī)器人的障礙物距離代價(jià),該函數(shù)對(duì)某一范圍內(nèi)的障礙做出評(píng)價(jià),軌跡越接近障礙物,代價(jià)值越高。
在圖1(a)的實(shí)驗(yàn)場(chǎng)景中,進(jìn)行了動(dòng)態(tài)窗口法與全局路徑規(guī)劃的協(xié)同測(cè)試。得到了動(dòng)態(tài)窗口法為移動(dòng)機(jī)器人預(yù)測(cè)的一條如圖2(a) 所示的路徑,當(dāng)?shù)竭_(dá)圖2(b)的位置時(shí),動(dòng)態(tài)窗口法的預(yù)測(cè)軌跡長度逐漸縮短,最終導(dǎo)致移動(dòng)機(jī)器人停留在原地,產(chǎn)生了陷入局部位置的問題。這是因?yàn)樵谒俣瓤臻g中得到的軌跡長度比傳感器探測(cè)范圍小,預(yù)測(cè)軌跡不能對(duì)軌跡范圍外到探測(cè)范圍內(nèi)的部分做出判斷,導(dǎo)致發(fā)現(xiàn)陷入局部位置時(shí)已錯(cuò)過了最佳的規(guī)劃時(shí)機(jī),如果增大速度空間,則會(huì)降低運(yùn)算速度,提高計(jì)算復(fù)雜度。同時(shí),由于傳感器精度導(dǎo)致的誤差,障礙物邊緣位置沒有完全被傳感器檢測(cè)到,在這種情況下,動(dòng)態(tài)窗口法更容易陷入局部位置。
由以上分析可知,在全局路徑規(guī)劃中使用動(dòng)態(tài)窗口法未取得預(yù)期的效果,此時(shí)未能成功規(guī)避障礙物,并導(dǎo)致機(jī)器人陷入局部位置。此外,在實(shí)現(xiàn)動(dòng)態(tài)窗口法跟隨全局路徑之前,需要通過SLAM(simultaneous localization and mapping)獲取地圖信息。但由于傳感器精度、角度等因素,獲取的地圖信息可能與實(shí)際場(chǎng)景不符,會(huì)在整體規(guī)劃路徑上造成阻礙。現(xiàn)實(shí)環(huán)境下臨時(shí)障礙物的出現(xiàn)是在所難免的,如果重新做整體規(guī)劃,效率會(huì)相對(duì)較低,無法滿足實(shí)時(shí)要求。當(dāng)場(chǎng)景較大且起點(diǎn)和目標(biāo)點(diǎn)之間障礙物較多時(shí),使用動(dòng)態(tài)窗口法可能會(huì)出現(xiàn)繞遠(yuǎn)或陷入局部點(diǎn)的情況。
2.2 建立通道
算法采用DBSCAN(density-based spatial clustering of applications with noise)方法對(duì)檢測(cè)到的障礙物進(jìn)行分割,求得需要分割的障礙之間的通道。DBSCAN是由Ester等人在1996年提出的一種廣泛應(yīng)用的基于密度的聚類方法。這種方法可以根據(jù)數(shù)據(jù)點(diǎn)在空間中的密度對(duì)數(shù)據(jù)點(diǎn)進(jìn)行分類,將其劃分為不同的聚類。與擅長處理呈球形障礙物的K-means聚類算法相比,DBSCAN的主要優(yōu)勢(shì)在于其能夠識(shí)別出任意形狀的聚類,并且能夠高效地處理大量數(shù)據(jù),如圖3(a)(b)所示。
通道的建立分為三個(gè)部分。首先,使用DBSCAN將障礙物聚類;然后鄰近的不同障礙物簇之間互相連接形成通道,用通道點(diǎn)評(píng)價(jià)函數(shù)計(jì)算每一個(gè)通道的代價(jià)值;最后過濾無效通道,在最優(yōu)通道中尋找最優(yōu)臨時(shí)目標(biāo)點(diǎn)。通道的構(gòu)成如圖3(c)(d)所示。
算法1 建立通道
輸入:激光傳感器數(shù)據(jù)。
輸出:目標(biāo)點(diǎn)。
a)對(duì)激光數(shù)據(jù)使用DBSCAN聚類得到標(biāo)簽數(shù)據(jù)。
b)由于激光數(shù)據(jù)的特性,所有障礙物在數(shù)據(jù)中的相鄰與環(huán)境中的相鄰保持一致,所以根據(jù)標(biāo)簽數(shù)據(jù)快速得到障礙物端點(diǎn)位置。
c)相鄰障礙物建立通道,將通道線離散化,生成通道點(diǎn)。
d)依據(jù)車的寬距L篩選能通過的通道。
e)依據(jù)式(3),選擇最優(yōu)通道點(diǎn)作為臨時(shí)目標(biāo)點(diǎn)。
其中:pi表示第i個(gè)通道點(diǎn);Vpi表示第i個(gè)通道點(diǎn)的代價(jià)值;D表示點(diǎn)之間的距離;probot表示移動(dòng)機(jī)器人的位置;P(probot)表示距離移動(dòng)機(jī)器人最近的全局路徑位置小于傳感器距離最大值的全局路徑點(diǎn)的集合;pobstacle表示障礙物位置的集合;S(P(probot),pobstacle)表示路徑點(diǎn)集合中與障礙物相交的個(gè)數(shù);pintersect表示障礙物與軌跡的交點(diǎn);ptarget表示目標(biāo)位置;Spath表示全局路徑。
算法將通道作為臨時(shí)目標(biāo)點(diǎn),為動(dòng)態(tài)窗口法提供正確的方向。如圖3(b)所示,粗線段為阻礙物,細(xì)線為阻礙物之間的通道。移動(dòng)機(jī)器人想要越過障礙物,必須通過通道,所以選擇將通道作為臨時(shí)目標(biāo)點(diǎn)。
2.3 通道動(dòng)態(tài)窗口方法
為了解決動(dòng)態(tài)窗口法在跟隨全局路徑時(shí)得到的局部最優(yōu)軌跡組合不一定是全局最優(yōu)軌跡組合,且在最佳軌跡組合的條件下動(dòng)態(tài)窗口法會(huì)在局部位置受限的問題,通道動(dòng)態(tài)窗口法通過將臨時(shí)目標(biāo)點(diǎn)設(shè)計(jì)在通道上,使移動(dòng)機(jī)器人在跟隨全局路徑的過程中成功越過障礙物,避免其陷入局部位置。同時(shí),通道動(dòng)態(tài)窗口法既能結(jié)合全局路徑規(guī)劃算法解決多區(qū)域長距離規(guī)劃問題,又能獨(dú)立完成局部區(qū)域的規(guī)劃任務(wù)。
在通道動(dòng)態(tài)窗口法協(xié)同全局規(guī)劃算法時(shí),首先要利用全局規(guī)劃算法規(guī)劃出一條全局路徑。接著,將描述障礙物的激光數(shù)據(jù)進(jìn)行分割,生成一組通道。然后,將每個(gè)通道離散表示為通道點(diǎn)集合。針對(duì)不同情況,采用不同的評(píng)價(jià)函數(shù)對(duì)通道點(diǎn)進(jìn)行評(píng)分,并從中選出最優(yōu)通道點(diǎn)作為臨時(shí)目標(biāo)點(diǎn)。最終,通過動(dòng)態(tài)窗口法得到移動(dòng)機(jī)器人的動(dòng)作指令。
算法2 通道動(dòng)態(tài)窗口法
輸入:移動(dòng)機(jī)器人姿態(tài)、傳感器數(shù)據(jù)。
輸出:運(yùn)動(dòng)指令。
a)采集傳感器數(shù)據(jù),將障礙物分割,建立通道。
b)通過式(2)得到通道點(diǎn)集的評(píng)價(jià)值。
c)找出評(píng)價(jià)值最大的通道點(diǎn)作為臨時(shí)目標(biāo)點(diǎn)。
d)通過動(dòng)態(tài)窗口法得到動(dòng)作指令。
e)通過左右輪的差速控制移動(dòng)。
f)如果沒有到達(dá)目標(biāo)點(diǎn),重復(fù)執(zhí)行上述步驟。
圖4所示為通道動(dòng)態(tài)窗口法與全局路徑規(guī)劃的協(xié)同測(cè)試,其中黃色路徑代表通道動(dòng)態(tài)窗口法生成的移動(dòng)路徑,紅色路徑則是由A*算法規(guī)劃出的全局最優(yōu)路徑(見電子版)。在全局路徑已知的前提下,若全局路徑上出現(xiàn)了障礙物,那么通道動(dòng)態(tài)窗口法會(huì)選擇與全局路徑緊密相鄰的通道來引導(dǎo)移動(dòng)機(jī)器人,有效地防止了動(dòng)態(tài)窗口法陷入局部最優(yōu)解的問題。當(dāng)全局路徑暢通無阻時(shí),該方法會(huì)使機(jī)器人逐漸趨近于全局路徑。
3 仿真實(shí)驗(yàn)
3.1 動(dòng)態(tài)窗口法與通道動(dòng)態(tài)窗口法比較
實(shí)驗(yàn)所用配置為Intel i7-4000K處理器,16 GB運(yùn)行內(nèi)存和RTX2060顯卡。仿真平臺(tái)使用CoppeliaSim來模擬機(jī)器人運(yùn)動(dòng)、激光掃描、碰撞檢測(cè)等功能。通過測(cè)試通道動(dòng)態(tài)窗口法和動(dòng)態(tài)窗口法的性能表現(xiàn),對(duì)兩者在靜態(tài)和動(dòng)態(tài)環(huán)境中的適應(yīng)性進(jìn)行評(píng)估和比較。表1為動(dòng)態(tài)窗口法設(shè)定的參數(shù)。在選擇角速度分辨率和線速度分辨率時(shí),應(yīng)權(quán)衡預(yù)測(cè)軌跡數(shù)和模型精度之間的權(quán)衡關(guān)系。較高的角速度分辨率和線速度分辨率可以生成更多的預(yù)測(cè)軌跡,從而提升模型的精確性。然而,分辨率的提高會(huì)帶來計(jì)算復(fù)雜度增加、實(shí)時(shí)性能下降的問題。因此,在優(yōu)化動(dòng)態(tài)窗口法時(shí),必須綜合考慮參數(shù)配置對(duì)模型精度和計(jì)算效率的影響,并尋求最佳平衡點(diǎn),以滿足實(shí)際應(yīng)用需求。
將動(dòng)態(tài)窗口法、通道動(dòng)態(tài)窗口法以及文獻(xiàn)[19]提出的改進(jìn)的動(dòng)態(tài)窗口法進(jìn)行性能對(duì)比。圖5顯示了不同算法在應(yīng)對(duì)相同障礙物時(shí)表現(xiàn)出截然不同的反應(yīng)策略。根據(jù)圖5(a)可以看出,動(dòng)態(tài)窗口法傾向于選擇局部最優(yōu)的軌跡,即更靠近障礙物的位置,因?yàn)樵撥壽E在末端更接近目標(biāo)點(diǎn),并且避免了與障礙物發(fā)生碰撞。圖5(b)則顯示了通道動(dòng)態(tài)窗口法與改進(jìn)的動(dòng)態(tài)窗口法的軌跡??梢钥闯觯ǖ绖?dòng)態(tài)窗口法通過提前規(guī)避障礙物,實(shí)現(xiàn)了更小的旋轉(zhuǎn)次數(shù)和更短的路徑來完成任務(wù)。通道動(dòng)態(tài)窗口法通過為移動(dòng)機(jī)器人提供明確的避障指示和引導(dǎo)其規(guī)避方向,使得機(jī)器人能夠以較低的旋轉(zhuǎn)代價(jià)完成任務(wù)。通過這種方式,通道動(dòng)態(tài)窗口法可以更智能地規(guī)劃軌跡,防止與障礙物相撞,從而減少旋轉(zhuǎn)次數(shù)和路徑長度,提高了路徑規(guī)劃的整體效率。
根據(jù)表2的數(shù)據(jù)可以觀察到,通道動(dòng)態(tài)窗口法在與動(dòng)態(tài)窗口法、改進(jìn)的動(dòng)態(tài)窗口法的對(duì)比中表現(xiàn)出了顯著的優(yōu)勢(shì)。具體而言,與動(dòng)態(tài)窗口法相比,通道動(dòng)態(tài)窗口法的路徑長度減少了約18.1%,運(yùn)行時(shí)間縮短了56.7%,采樣次數(shù)減少了約35.1%。此外,與改進(jìn)的DWA相比,兩者的運(yùn)行軌跡雖然相似,但通道動(dòng)態(tài)窗口法在各個(gè)性能方面均優(yōu)于改進(jìn)的動(dòng)態(tài)窗口法,路徑長度減少了19.5%,運(yùn)行時(shí)間縮短了26.1%,采樣次數(shù)減少了約31.4%。通道動(dòng)態(tài)窗口法使得路徑規(guī)劃的效率得到了明顯提升,更為高效。
3.2 基于動(dòng)態(tài)環(huán)境下的通道動(dòng)態(tài)窗口法測(cè)試
為了進(jìn)一步研究通道動(dòng)態(tài)窗口法躲避動(dòng)態(tài)障礙物的能力,圖6和7分別為動(dòng)態(tài)窗口法和通道動(dòng)態(tài)窗口法加入一個(gè)動(dòng)態(tài)障礙物和兩個(gè)動(dòng)態(tài)障礙物來驗(yàn)證算法性能。通過對(duì)比,動(dòng)態(tài)窗口法在躲避兩個(gè)動(dòng)態(tài)障礙物時(shí)出現(xiàn)了繞路的問題,而通道動(dòng)態(tài)窗口法較為成功地規(guī)避了動(dòng)態(tài)障礙。
通過對(duì)兩種算法的路徑長度、運(yùn)行時(shí)間和采樣次數(shù)進(jìn)行對(duì)比,通道動(dòng)態(tài)窗口法能夠?qū)崿F(xiàn)更短的路徑距離,運(yùn)行時(shí)間也相對(duì)較少,所需的采樣次數(shù)也相對(duì)較低。根據(jù)表3所示的數(shù)據(jù)結(jié)果表明,通道動(dòng)態(tài)窗口法在動(dòng)態(tài)環(huán)境下的避障性能具有更明顯的優(yōu)勢(shì)。
3.3 基于TurtleBot3 Burger的實(shí)驗(yàn)驗(yàn)證
為進(jìn)一步驗(yàn)證本文算法的運(yùn)行效果,搭建了如圖8所示的實(shí)驗(yàn)地圖,將TurtleBot3 Burger作為實(shí)驗(yàn)對(duì)象。TurtleBot3 Burger搭載了支持ROS系統(tǒng)和Ubuntu系統(tǒng)的樹莓派4B,使用LDS-02收集數(shù)據(jù)。
首先,LDS-02收集到的數(shù)據(jù)傳入虛擬機(jī)ROS系統(tǒng),對(duì)所得數(shù)據(jù)清洗,去掉超出范圍和異常的值,并用范圍內(nèi)均值代替清洗的數(shù)據(jù)。其次,分別使用動(dòng)態(tài)窗口法和通道動(dòng)態(tài)窗口法進(jìn)行路徑規(guī)劃,控制指令均由ROS系統(tǒng)傳達(dá)。
動(dòng)態(tài)窗口法與通道動(dòng)態(tài)窗口法實(shí)驗(yàn)結(jié)果分別如圖8、9所示,小車移動(dòng)軌跡與仿真實(shí)驗(yàn)結(jié)果相似,在面對(duì)橫截面較大的物體時(shí),動(dòng)態(tài)窗口法無法選擇出更優(yōu)的路徑,通道動(dòng)態(tài)窗口法能選擇出更優(yōu)的路徑。
圖10為該算法與動(dòng)態(tài)窗口法移動(dòng)的軌跡。根據(jù)表4所示,提出算法的路徑長度比動(dòng)態(tài)窗口法的路徑長度縮短了13.9%,采樣次數(shù)減少了29%,運(yùn)行時(shí)間縮短了27.3%。由此可知,通道動(dòng)態(tài)窗口法相比動(dòng)態(tài)窗口法具有更高的效率和路徑規(guī)劃能力。
此外,為驗(yàn)證移動(dòng)機(jī)器人在陌生場(chǎng)景中的適應(yīng)能力,以及測(cè)試自主控制操作下,移動(dòng)機(jī)器人路徑規(guī)劃的效果,搭建了如圖11所示的實(shí)驗(yàn)場(chǎng)景,左側(cè)的仿真圖像中紅色星形代表最終目標(biāo)點(diǎn),綠色星形代表臨時(shí)目標(biāo)點(diǎn)(參見電子版)。
在自主操控中,數(shù)據(jù)的發(fā)布和算法的運(yùn)行均在ROS機(jī)器人的本地運(yùn)行,如圖11(a)所示;在啟動(dòng)過程中,臨時(shí)目標(biāo)點(diǎn)會(huì)指引機(jī)器人避開前方的障礙物,如圖11(b)所示;機(jī)器人越過第一個(gè)障礙物后,臨時(shí)目標(biāo)點(diǎn)引導(dǎo)機(jī)器人通過障礙物之間的間隙,如圖11(c)所示;臨時(shí)目標(biāo)點(diǎn)引導(dǎo)機(jī)器人通過第二個(gè)障礙物間隙,最終如圖11(d)所示。機(jī)器人被引導(dǎo)到最終目標(biāo)點(diǎn),因?yàn)闄C(jī)器人可直達(dá)最終目標(biāo)點(diǎn),所以不再設(shè)立臨時(shí)目標(biāo)點(diǎn)。
圖12(a)和(b)分別顯示了機(jī)器人在實(shí)驗(yàn)過程中角速度和線速度的變化情況。由圖可知,在機(jī)器人啟動(dòng)階段,為了避開前方障礙物,角速度和線速度均顯著增加。然而,當(dāng)機(jī)器人需要通過第一個(gè)間隙時(shí),線速度開始降低,而角速度則用于控制機(jī)器人尋找合適方向以通過間隙。一旦方向確定,線速度迅速提高,而角速度降低,這表明機(jī)器人正在以最快速度直線行駛。當(dāng)機(jī)器人需要通過第二個(gè)間隙時(shí),線速度再次降低,角速度上升,這說明機(jī)器人正在對(duì)準(zhǔn)臨時(shí)目標(biāo)點(diǎn)。隨后,機(jī)器人以較快的速度通過,并最終到達(dá)目標(biāo)位置。
自主控制的機(jī)器人移動(dòng)軌跡如圖13所示,軌跡總長度為2.14 m,運(yùn)行時(shí)間20 s,采樣次數(shù)41。機(jī)器人運(yùn)行時(shí)間較長并且采樣次數(shù)較多,是因?yàn)樾枰ㄟ^較大的轉(zhuǎn)彎躲避當(dāng)前較近的障礙物,之后又要通過變化角度通過間隙,但是機(jī)器人最終成功完成了路徑規(guī)劃任務(wù),并且無碰撞發(fā)生。
4 結(jié)束語
針對(duì)移動(dòng)機(jī)器人在室內(nèi)多區(qū)域環(huán)境下,出現(xiàn)的陷入局部最優(yōu)問題以及在規(guī)避動(dòng)態(tài)障礙物的過程中,動(dòng)態(tài)窗口算法會(huì)導(dǎo)致行駛距離增加等問題,提出了一種適用于室內(nèi)移動(dòng)機(jī)器人的通道動(dòng)態(tài)窗口法。以動(dòng)態(tài)窗口法為基礎(chǔ),引入通道點(diǎn)概念,通過選擇臨時(shí)目標(biāo)點(diǎn)來有效導(dǎo)航引導(dǎo)動(dòng)態(tài)窗口法,提高動(dòng)態(tài)窗口法的性能。利用臨時(shí)目標(biāo)點(diǎn),有助于機(jī)器人在復(fù)雜和動(dòng)態(tài)環(huán)境中更加靈活地調(diào)整其運(yùn)動(dòng)軌跡,使算法更加穩(wěn)定和可靠。通過模擬動(dòng)態(tài)環(huán)境并使用真實(shí)的 ROS 機(jī)器人進(jìn)行測(cè)試,證明了該算法的有效性。該算法不僅能在動(dòng)態(tài)環(huán)境中順利進(jìn)行路徑規(guī)劃,還能提高規(guī)劃效率,有效防止機(jī)器人陷入局部最優(yōu),保證了機(jī)器人在復(fù)雜動(dòng)態(tài)環(huán)境中的導(dǎo)航效率和穩(wěn)定性。
未來還需在長距離更復(fù)雜的測(cè)試環(huán)境中進(jìn)行驗(yàn)證,以及聚焦于算法的進(jìn)一步優(yōu)化,特別是提高多機(jī)器人的規(guī)避能力。此外,將引入?yún)?shù)自適應(yīng)調(diào)節(jié)機(jī)制,提升模型的魯棒性和穩(wěn)定性。
參考文獻(xiàn):
[1]Wu Xiaolan, Zhang Qiyu, Bai Zhifeng, et al. A self-adaptive safe A* algorithm for AGV in large-scale storage environment [J]. Intelligent Service Robotics, 2024, 17(2): 221-235.
[2]Wang Jinghua, Xu Ziyu, Zheng Xiyu, et al. A fuzzy logic path planning algorithm based on geometric landmarks and kinetic constraints [J]. Information Technology and Control, 2022, 51(3): 499-514.
[3]Zhang Lieping, Shi Xiaoxu, Yi Yameng, et al. Mobile robot path planning algorithm based on RRT_connect [J]. Electronics, 2023, 12(11): 24-56.
[4]Li Weimin, Wang Lei, Zou Awei, et al. Path planning for UAV based on improved PRM [J]. Energies, 2022, 15(19): 7267-7267.
[5]Ma Zeyuan, Chen Jing. Adaptive path planning method for UAVs in complex environments [J]. International Journal of Applied Earth Observation and Geoinformation, 2022, 115: 103-133.
[6]魏博, 楊茸, 舒思豪, 等. 基于離子運(yùn)動(dòng)-人工蜂群算法的移動(dòng)機(jī)器人路徑規(guī)劃 [J]. 計(jì)算機(jī)應(yīng)用, 2021, 41(2): 379-383. (Wei Bo, Yang Rong, Shu Sihao, et al. Mobile robot path planning based on ion motion-artificial bee colony algorithm [J]. Journal of Computer Applications, 2021, 41(2): 379-383.)
[7]Su Qinghua, Ma Shaobo, Wang Liyong, et al. Artificial potential field guided JPS algorithm for fast optimal path planning in cluttered environments [J]. Journal of the Brazilian Society of Mechanical Sciences and Engineering, 2022, 44(12): 602.
[8]謝春麗, 劉斐灝. 改進(jìn)時(shí)間彈性帶的動(dòng)態(tài)避障軌跡規(guī)劃系統(tǒng)研究 [J]. 重慶交通大學(xué)學(xué)報(bào): 自然科學(xué)版, 2023, 42(3): 143-150. (Xie Chunli, Liu Feihao. Research on dynamic obstacle avoidance trajectory planning system with improved time elastic band [J]. Journal of Chongqing Jiaotong University: Natural Science Edition, 2023, 42(3): 143-150.)
[9]Fox D, Burgard W, Thrun S. The dynamic window approach to collision avoidance [J]. IEEE Robotics amp; Automation Magazine, 1997, 4(1): 23-33.
[10]江南, 徐海芹, 邢浩翔. 基于TSACO及動(dòng)態(tài)避障策略的無人機(jī)路徑規(guī)劃 [J]. 計(jì)算機(jī)應(yīng)用研究, 2024, 41(10):3015-3020. (Jiang Nan, Xu Haiqin, Xing Haoxiang. UAV path planning based on TSACO and dynamic obstacle avoidance strategy [J]. Application Research of Computers, 2024, 41(10):3015-3020.)
[11]Liu Yanglong, Chen Zuguo, Li Yonggang, et al. Robot search path planning method based on prioritized deep reinforcement learning [J]. International Journal of Control, Automation and Systems, 2022, 20(8): 2669-2680.
[12]Hossain T, Habibullah H, Islam R, et al. Local path planning for autonomous mobile robots by integrating modified dynamic-window approach and improved follow the gap method [J]. Journal of Field Robotics, 2022, 39(4): 371-386.
[13]Song Baoyue, Tang Suming, Li Yao. A new path planning strategy integrating improved ACO and DWA algorithms for mobile robots in dynamic environments [J]. Mathematical Biosciences and Enginee-ring, 2024, 21(2): 2189-2211.
[14]Li Yue, Zhao Jianyou, Chen Zenghua, et al. A robot path planning method based on improved genetic algorithm and improved dynamic window approach [J]. Sustainability, 2023, 15(5): 4656-4656.
[15]黃志鋒, 劉媛華, 任志豪, 等. 融合改進(jìn)哈里斯鷹和改進(jìn)動(dòng)態(tài)窗口的機(jī)器人動(dòng)態(tài)路徑規(guī)劃 [J]. 計(jì)算機(jī)應(yīng)用研究, 2024, 41(2): 450-458. (Huang Zhifeng, Liu Yuanhua, Ren Zhihao, et al. Research on mobile robot dynamic path planning based on improved Harris hawk algorithm and improved dynamic window algorithm [J]. Application Research of Computers, 2024, 41(2): 450-458.)
[16]Kim J, Yang G H. Improvement of dynamic window approach using reinforcement learning in dynamic environments [J]. International Journal of Control, Automation and Systems, 2022, 20(9): 2983-2992.
[17]王志偉, 鄒艷麗, 劉唐慧美, 等. 基于改進(jìn)Q-learning算法和DWA的路徑規(guī)劃 [J]. 傳感器與微系統(tǒng), 2023, 42(9): 148-152. (Wang Zhiwei, Zou Yanli, Liu Tanghuimei, et al. Path planning based on improved Q-learning algorithm and DWA [J]. Sensors and Microsystems, 2023, 42(9): 148-152.)
[18]Xu Wangzihao, Zhang Yuhao, Yu Leitao, et al. A local path planning algorithm based on improved dynamic window approach [J]. Journal of Intelligent amp; Fuzzy Systems, 2023, 45(3): 4917-4933.