摘" 要: 為解決復雜工況下的機械臂避障與路徑規(guī)劃問題,提出一種通過降維預實驗預設分段式插值的改進RRT算法。該算法基于多次降維實驗擬合,得到路徑中間點,通過插值不斷替換目標點,將長距離多障礙的目標路徑分段求解,具有較好的時間與求解優(yōu)勢,并且能得到研究者所期望的路徑走向。經(jīng)過可視化結果對比:所提算法相比RRTConnect算法減少了約71%的收斂時間,減少了約58%的迭代計算量;而相對于傳統(tǒng)RRT*算法減少了約45%的收斂時間,減少了83%的迭代運算量。最后通過Matlab仿真驗證,實現(xiàn)軌跡優(yōu)化與關節(jié)碰撞驗證,并在真實工況下通過編程控制機器人復現(xiàn)算法得到的路徑,驗證了改進算法所求解的軌跡的收斂時間短且有效,具有良好的應用價值。
關鍵詞: 改進RRT算法; 機械臂避障; 路徑規(guī)劃; 預實驗; 分段式插值; 軌跡優(yōu)化
中圖分類號: TN911.7?34; TP242" " " " " " " " "文獻標識碼: A" " " " " " " " " " " 文章編號: 1004?373X(2025)06?0180?07
Research on robotic arm complex obstacle avoidance path planning based
on improved RRT algorithm
FU Jingkai1, MU Li1, DI Xueyang1, ZHANG Xinnan1, ZHANG Hui2
(1. School of Mechanical Engineering, Shenyang Ligong University, Shenyang 110159, China;
2. School of Economics amp; Management, Shenyang Ligong University, Shenyang 110159, China)
Abstract: In order to solve the problem of obstacle avoidance and path planning for robotic arms under complex working conditions, an improved RRT algorithm is proposed by pre testing segmented interpolation by means of the dimensionality reduction. This algorithm is based on multiple dimensionality reduction experiments to fit the intermediate points of the path, and can continuously replace the target points by the interpolation to solve the long?distance and multi obstacle target path in segments. It has high advantages of time and solution, and can obtain the desired path direction of researchers. The visualization results show that in comparison with the RRTConnect algorithm, the proposed algorithm can reduce the convergence time by about 71% and the iteration computation by about 58%. In comparison with the traditional RRT* algorithm, the proposed algorithm can reduce the convergence time by about 45% and the iteration computation by about 83%. After Matlab simulation verification, the trajectory optimization and joint collision verification are realized, and the path obtained by the algorithm is reproduced by programming the robot under real working conditions, which verifites that the convergence time of the trajectory solved by the improved algorithm is shorter and effective, and has good application value.
Keywords: improved RRT algorithm; robotic arm obstacle avoidance; path planning; pre?experiment; segmented interpolation; trajectory optimization
0" 引" 言
在目前的研究中,簡單的機械臂避障以及路徑規(guī)劃算法研究中常用人工勢場法(Artificial Potential Field, APF)。APF是一種基于合成移動思想構建的路徑規(guī)劃和避障方法,常用于較為簡易的機器人和自主移動系統(tǒng),可以在二維空間內有效避障;但它只能粗略地對路徑進行仿真,對于研究所面臨的復雜三維工作情況并不適用[1],且在仿真過程中還會陷入局部最小的問題而無法得到有效求解。對于自由度逐漸增高的機械臂研究而言,APF已經(jīng)慢慢淡出主流。另一種路徑規(guī)劃常用的A*(A?Star)算法是一種用于圖搜索和路徑規(guī)劃的啟發(fā)式搜索算法,它綜合了Dijkstra算法和貪婪最佳優(yōu)先搜索算法的特點,具有較好的路徑規(guī)劃性能[2]。但是A*搜索模式的算法求解目的更偏向于得到最優(yōu)的路徑,適合求解無固定式機器人的軌跡規(guī)劃問題。故該算法思想更適用于輪式機器人和足式機器人等運動機器人的求解,對于研究中有一端固定約束的機械臂并不適用。而RRT算法則是對機械臂路徑規(guī)劃的主流算法,是一種在機器人運動規(guī)劃中使用的概率方法,特別適用于高維配置空間。RRT的關鍵思想是通過迭代地探索配置空間來構建樹結構[3]。在抽樣中引入的隨機性使算法能夠廣泛地探索空間,對于RRT算法的有效避障和多維度路徑擬合算法非常適用,也尤為適用于研究所面臨的工作情況。隨著智能化機械臂與視覺協(xié)同產(chǎn)線的發(fā)展,傳統(tǒng)產(chǎn)線逐漸被替代,而對于智能產(chǎn)線的關鍵技術研究就是對機械臂的運動軌跡規(guī)劃,對于軌跡規(guī)劃的研究主要解決的就是避障與軌跡規(guī)劃[4]。隨著智能產(chǎn)線與其他技術融合度越來越高,產(chǎn)線上的工作情況也愈發(fā)復雜,對于解決復雜工作情況下高自由度機械臂的避障?路徑規(guī)劃研究迫在眉睫,因此本文以此為研究背景而展開。
1" RRT算法研究
1.1" 傳統(tǒng)算法與研究現(xiàn)狀
目前對于基礎RRT算法的研究較為完備,在經(jīng)典RRT算法下還拓展出了RRTConnect算法以及RRT*算法[5]。RRTConnect算法是RRT算法的一種變體,旨在提高路徑規(guī)劃的效率和成功率。與傳統(tǒng)的RRT算法不同,RRTConnect算法同時從起始狀態(tài)和目標狀態(tài)開始構建兩個樹,然后嘗試將這兩個樹連接在一起,提高了找到可行路徑的概率,有效減少了算法收斂時間,但會增大迭代運算量,適用于起始與終止點距離較長的求解情況。
而RRT*算法則在原始RRT算法的基礎上引入了一些優(yōu)化,以提高路徑規(guī)劃的質量和效率。在對生成的路徑中做實時的父項更新,即在算法中加入rewire Tree函數(shù)對樹中合適的迭代節(jié)點持續(xù)更新。RRT*算法相對于RRT算法的優(yōu)勢在于它通過路徑優(yōu)化來改進已有路徑,因此有可能找到更優(yōu)質的路徑。這種優(yōu)化是通過對樹結構進行動態(tài)調整,使得新節(jié)點能連接到更優(yōu)路徑,但是RRT*算法在不同的工作情況下需要對算法結構進行調整,以適應不同工況,其部署難度大,適用性差,不適合作為通用性算法。針對RRT算法搜索效率低、隨機性大的問題,文獻[5]提出一種改進RRT算法,結合RRT Connect算法和目標偏置RRT算法的優(yōu)點,并在隨機樹擴展過程中設置虛擬目標點和改變步長來優(yōu)化生成路徑,最后通過B樣條對路徑進行優(yōu)化平滑處理。這種算法是對RRTConnect算法的一種優(yōu)化,但還是會增加該算法的計算量,使得整體計算量更為龐大。文獻[6]基于GB?APFB研究的人工勢場引導的概率偏置雙向最優(yōu)RRT算法環(huán)境的適應性較強,路徑搜索效率較高,但是算法本身結構并不穩(wěn)定,仍存在較大的隨機性。文獻[7]在RRT*原有RRT算法的基礎上改進了父節(jié)點選擇的方式,以引入類似人工勢場的引力算法來減少路徑搜索的隨機性。該算法具有一定有效性,但忽略了人工勢場算法特性的缺陷,即“局部最優(yōu)”對路徑整體的影響。
1.2" 復雜工況下機械臂避障研究
在解決復雜工況即較多的障礙物下,機械臂避障與軌跡規(guī)劃研究中,已知三維空間下RRT及其衍生算法會隨著障礙物的增加而使得求解計算量和收斂時間成幾何倍增長[8]。因此,本文研究旨在提供一種適用于該場景下的改進算法來有效解決上述問題。
路徑規(guī)劃算法應該被視為兩部分,即避障與路徑求解。解決避障問題,首先需要對工作工況進行簡化分析,常采用包絡法的故障碰撞檢測,即通過將實體簡化為長方體、圓柱體、球體等簡易模塊[9],來降低計算難度。
在二維空間下障礙物常被簡化為橢圓和圓,如圖1所示,研究仿真軟件基于Matlab?Robotics tool box system。
基于二維的障礙物算法需要在三維空間下對常規(guī)障礙物進行改進,即額外引入Z軸對模型的影響以及邊界處理和碰撞模型定義,如圖2所示。
基于預設下的機械臂工作情況,需要對障礙物模塊和避障檢測進行定義,依據(jù)工作環(huán)境的實際情況將主要障礙物依次簡化。其中:長方體×2為檢測傳感器支架;圓柱體×2為工業(yè)相機支架和產(chǎn)線傳感器;球體×1為視覺檢測支架和檢測件。機械臂工況下模塊化障礙簡圖如圖3所示,各模型的定義索引如圖4所示。
傳統(tǒng)的算法搜索費時費力且準確度不高,容易因無法求解而報錯。研究針對路徑算法進行改進,以提高運算精度,縮短收斂時間,減少運算資源[10?11]。
RRT算法的隨機樹搜索模式可以說是近乎完全隨機的搜索模式,得到的結果很多與期望的路徑相近,研究參照A*的貪婪最佳不斷迭代更新的搜索模式思想,對求解路徑進行優(yōu)化,其算法代碼如下。
V[←{xinit}]; E[←θ];
for" i=1,2,…,n do
[xrand→]Sample(M),
[xnear→]Near([xrand,G=(V,E)])
[xnew→]Steer([xrand,xnear)]
If obtacleFree([xnear],[xnew)" then]
[xnear←NearG=(V,E),xnewminRRT*;]
V[←]V[∪{xnew}];
[xmin←xnearest; cmin←Costxnearest&cLinexnear, xnew;]
For each [xnear∈Xnear ]do
If CollisionFree([xnear,xnew])[^]" Cost([xnear)&cLinexnear,xnewlt;cmin]
then
[xmin←xnear;]
[cmin←Costxnear&cLinexnear,xnew]
E[←E∪{(xmin,xnew)}];
For each [xnear∈Xnear] do
If CollisionFree([xnew,xnear]) Cost ([xnew)&cLinexnew,xnearlt;" " " " "Costxnear]
then [xparent←parent(xnear)];
Return G=(V,E);
而在改進的算法中,希望在生成路徑時得到所期望的“大體走向”,實現(xiàn)方法是通過去掉Z軸的降維預實驗,在二維空間下對軌跡進行預處理。
實驗進行多次擬合運算,得到大部分軌跡的“必經(jīng)之路”,即中間點位的運算,并將中間點位重新在三維空間中向Z軸方向投影而預設為“中間站”的空間束,強制路徑軌跡必須通過中間束,再通過增設多個空間束來優(yōu)化軌跡路徑,使之得到期望下的路徑空間,從而減少“不必要”的樹生成,以達到加速收斂、減少算力、軌跡更優(yōu)的運算結果。其中,“空間束”的實現(xiàn)是在擬合運算得到中間束的X、Y軸笛卡爾坐標后,通過對元胞數(shù)組cellarray(可以定義不同的數(shù)據(jù)類型的結構體)中將定義Z軸位置的參數(shù)賦予“任意值”以實現(xiàn)空間束的投影。改進算法思想代碼如下。
INPUT[: M,xinit,xgoul,xmidi];
RESULT: A PATH L from[ xinit ]to[ xgoul,] Whichmustcross[ xmid];
Init()
For i=1 to n do
[xrand→]Sample(M), [xnear→]Near([xrand,T])
[xnew→]Steer([xrand,xnear,Stepsize)]
[Ei→Edge(xnew,xnear)];
If CollisionFree(M.[Ei])" Then
T.addNode([x,xnew]), T.addEdge([Ei]);
If[ xnew]=[xmid ]Return Input;
Replace: [xinit]=[xmid1], [xmid1]=[xmid2]
WHEN [xmid2]=[xmid i] do[ xnew]=[xmid];
Return main()
For each CollisionFree([xnew,xnear]) to CollisionFree([xmid,xgoul])
Success();
相比于RRT*算法的不斷迭代更新父項樹的計算過程,RRT*算法本質還是在局部進行隨機過程的求解,相比傳統(tǒng)RRT算法雖然會得到更為合理的路徑,但還是會增加整體的計算量。研究的算法思想是在更新過程中跳過局部的樹枝生成搜索過程,從而通過預實驗結果得到[xmidi],在整體的求解過程中多次引入[xmidi]來替換[xgoul],并將每段的結構串聯(lián)起來,以引導干預整體樹枝生成的走向,減少不必要方向下樹枝的生成,得到所預想下的路徑方向,有效減少樹枝產(chǎn)生的迭代次數(shù)。RRT改進算法流程如圖5所示。
在算法求解前需要找到路徑虛擬點來得到空間束,這需要對三維空間降維在二維空間內多次仿真并通過IBM SPSS Statistics 27統(tǒng)計學軟件擬合得到每一次大部分仿真結果的“必經(jīng)之路”。二維空間下的求解結果如圖6所示。
RRT算法具有隨機性特點,需要大量實驗得出數(shù)據(jù)集進行擬合分析。在經(jīng)過255次的擬合后得到不同擬合程度的擬合點數(shù),對于擬合點的界定以5%的單位尺寸作為允許的閾值偏差,擬合結果見表1。
經(jīng)過擬合結果得到78.6%的二維路徑曲線都會通過固定的2個點位,將這2個點位代入中間解,同時代入預設進行運算。對于仿真實驗的預設為:畫布大小以mm為單位,構建了尺寸為1 500的立方體空間,起始點為坐標原點(0,0,0),目標點為(872,941,215),路徑的搜索步長為10,設定隨機樹迭代時間為60 s,隨機樹產(chǎn)生的節(jié)點最大個數(shù)為5 500,運算超過預定時間或節(jié)點閾值,則判定為求解失敗。改進算法與傳統(tǒng)算法迭代結果如圖7、圖8所示。
通過分析可視化結果得到,以分段式插值的改進RRT算法有效減少了不必要的樹生成,且軌跡趨勢更為合理,分段式在表征上是對整體的起點到終點離散化成多個點,將每一個相鄰點以此求解,最后對每一部分的結果進行串聯(lián)拼接,得到更為細化且合理的軌跡結果。這里需要提及:研究中所提到的分段式方法實質上是對路徑的插值優(yōu)化,在仿真運算過程中通過多次引入“PathPoint”路徑點索引數(shù)組不斷替換目標終點“GoalPoint”,在求解過程中實際上是連續(xù)的,且在預實驗中通過大量數(shù)據(jù)的擬合給出的中間點串聯(lián)路徑是平滑且柔順的,并不會出現(xiàn)因“拼接”而產(chǎn)生方向夾角過大等問題,在后續(xù)的實驗驗證中也證明了該算法得到的路徑是真實機械臂可有效執(zhí)行的。
因為RRT算法的隨機迭代過程在每次實驗中的結果并不相同,為保證實驗數(shù)據(jù)可靠,在統(tǒng)一其他條件下,對每種算法的運算結果進行30次仿真,并求取平均數(shù)進行對比,結果如圖9所示。
從數(shù)據(jù)對比結果中可見:改進的RRT算法顯著減少了收斂時間,可以快速地反映仿真過程;并且相比于其他算法,改進算法波動變化趨勢更為平緩,這是因為插值算法在一定程度上限制了RRT算法本身搜索模式的隨機性,使得改進算法具有更好的穩(wěn)定性。在30次的仿真實驗中,RRTConnect算法因超過最大預設節(jié)點閾值數(shù)而仿真失敗2次,而改進RRT算法與RRT*算法均達到預設條件并沒有報錯。
在后續(xù)的數(shù)據(jù)處理分析中得到,基于改進的算法相對于RRTConnect算法大大減少了收斂時間,約為71%,減少了約58%的迭代計算量;相對于傳統(tǒng)RRT*算法減少了約45%的收斂時間,減少了83%的迭代運算量。參數(shù)對比結果見表2。
迭代運算量與收斂時間需要參考不同的運算硬件,在不同的硬件環(huán)境下運算結果并不相同。研究所采用的處理硬件是型號參數(shù)為Intel[?] CoreTM i5?7300HQ CPU@2.50 GHz的CPU。研究采用的改進算法適用于復雜工況下較多障礙物的機械臂避障軌跡規(guī)劃,通過引入導向中間點,使得該算法不會因為障礙物的增多而有明顯變化。通過大量實驗驗證,在仿真起始點位與終止點位相距不過大時,中間束的設定不宜過多,一般以兩三個為宜。過多的中間束會增加求解運算量,同時改進算法在面對障礙物的結構尺寸隨Z軸方向而改變時(球型障礙)會影響求解軌跡,使樹枝無法在球體表面生成,一定程度上影響更為合理的路徑生成,也是算法中可以繼續(xù)優(yōu)化改進的方面。
2" 仿真驗證
2.1" 機械臂運動學建模與逆運動學
實驗選用新松DUCO多克GCR5六軸機械臂對預設軌跡進行復現(xiàn)驗證。首先需要對GCR5機械臂進行DH建模,機械臂模型概念圖如圖10所示,機械臂DH參數(shù)如表3所示。
按照傳統(tǒng)的逆運動學求解方法,通過輸入標準DH參數(shù),將機器人連桿基本關系值賦給函數(shù),在笛卡爾坐標系通過位姿齊次變換矩陣,得到姿態(tài)矩陣與位置矩陣,計算方法基于歐拉變換求解。最后通過調用機器人工具箱ikine()逆運動學求解函數(shù)對關節(jié)角度進行求解,并通過編程復現(xiàn)各個點位的擬合。GCR5逆運動學仿真求解結果如圖11所示。
2.2" 機械臂軌跡優(yōu)化與關節(jié)碰撞驗證
第2.1節(jié)得到的路徑是機械臂末端執(zhí)行器的運動軌跡,在真實的工作情況下同時需要考慮關節(jié)與障礙物模型的碰撞。本節(jié)通過軌跡優(yōu)化函數(shù)算法編寫程序來校驗路徑可行性與關節(jié)運動模擬仿真,基于roboticstoolbox逆運動學求解算法,實現(xiàn)對處于障礙物下的已求解路徑進行關節(jié)驗證以及碰撞檢測。
在簡化機械臂結構體與碰撞模型后,通過運行驗證程序得到GCR5機械臂在預設路徑下的關節(jié)逆運動學優(yōu)化求解軌跡,在62輪的迭代運算下完成了預設路徑求解校驗而沒有碰撞,成功地檢驗了第2.1節(jié)算法中得到的路徑在關節(jié)仿真中的避障檢測結果,如圖12和圖13所示。
3" 實驗驗證與分析
在2.1節(jié)中基于Matlab的機器人工具箱中實現(xiàn)了對改進算法下得到的路徑軌跡的優(yōu)化和逆運動學求解,得到一條機械臂可以完美通過的軌跡。為保證該軌跡的可行性,需要在現(xiàn)實工況中進行復現(xiàn)驗證,通過GCR5機械臂與其控制箱進行連接,基于由Linux搭建的交互系統(tǒng)以及顯示屏進行控制,如圖14所示。
在Matlab中導出模擬路徑,通過GCR5內嵌的示教軟件進行編程,在實際障礙物的工況下對軌跡進行復現(xiàn)實驗驗證,如圖15所示。
該機械臂控制箱的編程控制方式與其他協(xié)作機器人的編程控制方式類似,最終得到的實驗驗證效果主要以4個關鍵幀展示,如圖16所示。在多次重復的機械臂運動過程復現(xiàn)驗證中,機械臂關節(jié)沒有與障礙物發(fā)生干涉碰撞,且具有足夠的預留,平穩(wěn)地從起點運動到了終點。至此,可證明通過對RRT改進算法及在Matlab機器人工具箱中優(yōu)化得到的軌跡能很好地運用在實踐控制設計中。
4" 結" 語
通過對比各種三維空間下的避障路徑求解算法,研究實現(xiàn)了一種預設插值分段式的RRT改進算法。該算法相比于傳統(tǒng)RRT*和RRTConnect算法,無論是求解計算量還是路徑合理性均具有明顯的優(yōu)勢;相比于RRT*算法則具有更快的收斂速度,且更易于部署和實現(xiàn),解決了在復雜工況下的三維機械臂路徑求解的RRT算法弊端。最終通過調用函數(shù)編程實現(xiàn)對已求解路徑的工況下機械臂關節(jié)仿真求解運算和軌跡優(yōu)化。改進算法得到的路徑在仿真環(huán)境和實際環(huán)境下均通過碰撞檢驗。最后在真實的工作情況下對預設軌跡進行驗證,仿真中得到的軌跡可以在實際中復現(xiàn)。該算法具有較好的通用性和適用性,但是在解決球型障礙物時仍存在一定缺陷,對于降維預實驗的擬合量的調控仍需要具體量化,在未來的研究中將會致力于解決這類問題。
注:本文通訊作者為慕麗。
參考文獻
[1] CORKE P. Roboticis, vision and control [M]. Beijing: Publishing House of Electronics Industry, 2013.
[2] FU J K, MU L. Motion analysis of manipulator based on ADAMS and Matlab [C]// Conference on Machine Learning and Computer Application. Hangzhou: IEEE, 2023: 1263645.
[3] DI X Y, MU L. Modeling and motion simulation analysis of SCR5 collaborative robot based on NXUG and ADAMS [C]// Conference on Machine Learning and Computer Application. Hangzhou: IEEE, 2023: 201?210.
[4] 徐紅鑫,慕麗.開鏈式機械臂DH建模思路[J].裝備制造技術,2022(11):162?165.
[5] 江韓,晁永生,周江林,等.改進RRT算法的機械臂路徑規(guī)劃[J].機械設計與制造,2023(12):288?292.
[6] 尹慶文.基于GB?APFB?RRT*算法的機械臂路徑規(guī)劃[J].組合機床與自動化加工技術,2023(10):11?15.
[7] 馬慧麗,魯照權,王壽庭.基于改進RRT算法的機械臂路徑規(guī)劃研究[J].機械設計與研究,2020,36(4):42?46.
[8] 韓碩.基于機器視覺定位的機械臂運動學分析與研究[D].北京:北京交通大學,2021.
[9] 慕麗,孫全偉,郝永平,等.基于微小型平板類零件微裝配系統(tǒng)的研究[J].組合機床與自動化加工技術,2015(6):149?153.
[10] 李艷輝,霍琦,李昂,等.模塊化超冗余度空間機械臂的設計與實驗[J].機器人,2022,44(1):11.
[11] CERRILLO D, BARRIENTOS A, CERROJ D. Kinematic model?ing for hyper?redundant robots: a structured guide [J]. Mathematics, 2022, 10(16): 2891.
[12] 付少雄.工業(yè)機器人編程高手教程[M].北京:機械工業(yè)出版社,2019.
[13] 柏維華,許行之.基于改進RRT算法的空間機械臂避障路徑規(guī)劃[J].組合機床與自動化加工技術,2023(2):18?22.
[14] 陳昊然,張宇,段昊宇翔,等.串聯(lián)機器人模態(tài)仿真與實驗[J].制造業(yè)自動化,2023,45(10):115?119.
[15] 劉暾東,張馨月,林晨瀅,等.基于分段動態(tài)運動基元的機械臂軌跡學習與避障方法[J].機器人,2024,46(3):275?283.
[16] 支琛博,張愛軍,杜新陽,等.改進A*算法的移動機器人全局路徑規(guī)劃研究[J].計算機仿真,2023,40(2):486?491.
作者簡介:付靖凱(1999—),男,遼寧撫順人,碩士研究生,主要研究方向為機器人學與智能檢測。
慕" 麗(1965—),女,遼寧沈陽人,博士研究生,碩士生導師,教授,研究方向為智能檢測、故障診斷。
收稿日期:2024?04?24" " " " " "修回日期:2024?06?10
基金項目:遼寧省教育廳科學研究經(jīng)費項目:青年科技人才“育苗”項目(LG202031)