劉環(huán)宇,王 宇,趙柏棟,姚奉裕,李 顯,王德權(quán)
(大連工業(yè)大學(xué)機(jī)械工程與自動(dòng)化學(xué)院,大連 116034)
機(jī)械臂焊接路徑規(guī)劃是指在實(shí)際生產(chǎn)環(huán)境中為機(jī)械臂規(guī)劃出一條歷經(jīng)所有焊點(diǎn)且不發(fā)生障礙的路徑,一般以路徑最短、完成時(shí)間最短或者能耗最低之一作為評價(jià)標(biāo)準(zhǔn)[1]。傳統(tǒng)的機(jī)械臂焊接路徑通常依靠工藝人員的經(jīng)驗(yàn)獲得,導(dǎo)致機(jī)械臂移動(dòng)路徑長、工作效率低等問題。針對機(jī)械臂焊接路徑規(guī)劃問題,國內(nèi)外學(xué)者在智能優(yōu)化算法上進(jìn)行了大量的研究。 蟻群算法是基于螞蟻群體覓食行為提出的一種啟發(fā)式搜索算法,廣泛應(yīng)用于路徑搜索問題中,具有魯棒性好的優(yōu)點(diǎn),但面對復(fù)雜路徑問題時(shí),存在容易陷入局部最優(yōu)解等問題。
為解決蟻群算法存在的問題,CAO等[2]提出了動(dòng)態(tài)調(diào)整信息素蒸發(fā)率改進(jìn)全局最優(yōu)性和收斂速度,同時(shí)改進(jìn)啟發(fā)式函數(shù)和狀態(tài)轉(zhuǎn)移規(guī)則,以盡快找到最優(yōu)解,并改變信息素更新策略,以避免過早收斂。姜偉楠等[3]提出了一種改進(jìn)的蟻群算法,通過引入人工勢場和A*算法的評估函數(shù),減少了蟻群算法初始規(guī)劃的盲目性,提高了算法的全局最優(yōu)性。馮超鈺等[4]提出了用蟻群算法和粒子群算法混合的算法計(jì)算得出合理的焊接路徑,并在ROBCAD中建立仿真模型,解決了可達(dá)性、障礙等問題。
本文針對蟻群算法容易陷入局部最優(yōu)的問題,提出一種改進(jìn)蟻群算法,通過對焊點(diǎn)布局圖轉(zhuǎn)換,結(jié)合粒子群算法的編碼方式,對全局焊點(diǎn)路徑求解;引入全局最優(yōu)路徑片段和局部最優(yōu)路徑片段改變信息素更新方式;確定機(jī)械臂可視化范圍并通過視覺反饋系統(tǒng)反饋障礙坐標(biāo),利用三維蟻群算法求解不同焊點(diǎn)間的路徑,避免障礙發(fā)生;以改進(jìn)算法為核心代碼,基于SQL Server和MATLAB GUI為開發(fā)平臺(tái),實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)調(diào)取和路徑求解。
假設(shè)某工位有n個(gè)焊點(diǎn)需要焊接,可將焊接工位信息通過數(shù)學(xué)描述表達(dá)為:
Z=(V,A,E)
(1)
式中,V為所有焊點(diǎn)集合;A為不同焊點(diǎn)間的路徑集合;E為焊點(diǎn)間距離矩陣。
焊點(diǎn)i與焊點(diǎn)j之間的距離用Lij表示,其中i、j=1,2,…,n。用xij表示螞蟻從焊點(diǎn)i行走到焊點(diǎn)j的決策變量,xij為0表示焊點(diǎn)i與焊點(diǎn)j間的路徑已經(jīng)形成,xij為1表示焊點(diǎn)i與焊點(diǎn)j間的路徑未形成[5],則機(jī)械臂焊接路徑最短的數(shù)學(xué)模型目標(biāo)函數(shù)為:
(2)
約束條件為:
(3)
式中,τij(t)為t時(shí)刻ij路徑上的信息素;s為所有未到達(dá)焊點(diǎn)的取值;α為信息素重要程度因子;β為啟發(fā)函數(shù)因子;ηij(t)為t時(shí)刻ij路徑的啟發(fā)函數(shù),其公式為:
(4)
本文以求解白車身某焊接工位的機(jī)械臂焊接路徑為研究對象,工位焊點(diǎn)分布如圖1所示。
圖1 焊點(diǎn)分布示意圖
2.1.1 尋找全局路徑
完成數(shù)學(xué)模型更新后,對路徑進(jìn)行編碼。以將螞蟻k尋找到的全局路徑pathk為例,可表示為:
(5)
2.1.2 信息素更新
每次循環(huán)結(jié)束后,對最優(yōu)路徑上的全局信息素濃度進(jìn)行增強(qiáng),更新公式為:
(6)
(7)
式中,f(sbest)為全局最優(yōu)路徑pathqj的權(quán)值。
通過螞蟻當(dāng)前尋找到的路徑與全局最優(yōu)路徑及局部最優(yōu)路徑進(jìn)行比較,將重復(fù)的部分定義為全局最優(yōu)路徑片段pqj和局部最優(yōu)路徑片段pjb[8]。增加全局最優(yōu)路徑片段pqj和局部最優(yōu)路徑片段pjb路徑上的信息素濃度,減小路徑陷入局部最優(yōu)的概率。路徑信息素更新公式為:
(8)
為保證機(jī)械臂精確識(shí)別障礙發(fā)生位置,并將障礙坐標(biāo)存儲(chǔ)在數(shù)據(jù)庫中,在機(jī)械臂上安裝視覺定位系統(tǒng)和坐標(biāo)反饋系統(tǒng)。通過從數(shù)據(jù)庫中讀取機(jī)械臂反饋的障礙坐標(biāo),利用三維蟻群算法求解不同焊點(diǎn)之間的路徑具體步驟如下:
步驟1:設(shè)置機(jī)械臂每次沿X、Y、Z方向的最大移動(dòng)步長分別為LX,max、LY,max、LZ,max,當(dāng)位于平面αa上的點(diǎn)K對下一個(gè)平面αb內(nèi)的點(diǎn)進(jìn)行搜索時(shí),存在機(jī)械臂可視化范圍。
步驟2:沿LY,max方向把平面αa到平面αb的距離進(jìn)行等量劃分,得到n+1個(gè)平面Bi(i=a,b…),對n+1個(gè)平面分別沿Y、Z方向進(jìn)行等量劃分,得到若干交點(diǎn),確定障礙點(diǎn)坐標(biāo)[10]。
步驟3:局部信息素更新公式為
τ(i,j,m)=(1-ξ)τ(i,j,m)
(9)
式中,τ(i,j,m)為點(diǎn)K上的信息素值;ξ為信息素的衰減系數(shù)。
步驟4:若迭代次數(shù)小于最大迭代次數(shù),則重復(fù)步驟3,否則停止計(jì)算,輸出規(guī)避障礙路徑。
基于改進(jìn)蟻群算法的原理,設(shè)計(jì)MATLAB程序的流程圖如圖2所示。
圖2 改進(jìn)蟻群算法流程圖
為了驗(yàn)證改進(jìn)算法在機(jī)械臂焊接路徑規(guī)劃上的可行性和有效性,分別使用改進(jìn)前算法和改進(jìn)后算法對白車身某焊接工位的機(jī)械臂焊接路徑及進(jìn)行求解,將求解結(jié)果進(jìn)行對比,體現(xiàn)算法的優(yōu)越性[11]。兩種算法均在MATLAB進(jìn)行實(shí)現(xiàn),且參數(shù)設(shè)置相同。蟻群算法通常通過經(jīng)驗(yàn)選取參數(shù),本文算法在大量實(shí)驗(yàn)結(jié)果下,選取參數(shù)如表1所示。
表1 算法參數(shù)
改進(jìn)前算法仿真結(jié)果如圖3所示,通過改進(jìn)算法仿真結(jié)果如圖4所示。
圖3 改進(jìn)前算法規(guī)劃路徑圖 圖4 改進(jìn)后算法規(guī)劃路徑圖
通過對比路徑求解圖3、圖4,改進(jìn)前算法求解的避路徑存在著明顯的曲折,導(dǎo)致機(jī)械臂移動(dòng)距離增加,改進(jìn)后算法求解的路徑曲折有度,明顯優(yōu)于前者,更符合實(shí)際應(yīng)用情況[12]。算法改進(jìn)前后最優(yōu)路徑長度與迭代次數(shù)的關(guān)系如圖5所示,仿真結(jié)果參數(shù)統(tǒng)計(jì)如表2所示。
圖5 最短路徑收斂圖
表2 算法數(shù)據(jù)對比
仿真結(jié)果表明,改進(jìn)后算法的機(jī)械臂移動(dòng)最短路徑長度比改進(jìn)前算法的最短路徑長度縮短77.3 mm,縮短了0.47%;迭代次數(shù)比改進(jìn)前算法減少15次,減少了11.7%,具有更好的收斂速度及尋優(yōu)能力,證明改進(jìn)后算法對機(jī)械臂路徑規(guī)劃效果更優(yōu)。
根據(jù)對機(jī)械臂焊接工藝路徑規(guī)劃的需求及改進(jìn)蟻群算法求解焊接路徑的步驟要求,選擇MATLAB GUI作為開發(fā)工具,以SQL Server 2008數(shù)據(jù)庫作為焊點(diǎn)坐標(biāo)及障礙坐標(biāo)數(shù)據(jù)的存儲(chǔ)和調(diào)用工具,使改進(jìn)算法在軟件中得到實(shí)現(xiàn)[13]。機(jī)械臂焊接路徑規(guī)劃軟件總體架構(gòu)圖如圖6所示。
圖6 軟件總體架構(gòu)圖
為驗(yàn)證設(shè)計(jì)軟件的有效性和實(shí)用性,以規(guī)劃求解汽車白車身前地板焊接路徑為例,使用該軟件進(jìn)行仿真實(shí)驗(yàn)。通過數(shù)據(jù)庫參數(shù)調(diào)用及算法參數(shù)的設(shè)置,求解的機(jī)械臂焊接路徑結(jié)果如圖7所示。
圖7 機(jī)械臂焊接路徑求解結(jié)果圖
軟件求解結(jié)果與MATLAB仿真結(jié)果一致,證明機(jī)械臂焊接路徑規(guī)劃軟件具有有效性及穩(wěn)定性。
(1)改進(jìn)蟻群算法引入粒子群算法,避免了蟻群算法過早陷入局部最優(yōu),增強(qiáng)了算法的尋優(yōu)能力;制定規(guī)避障礙路徑蟻群算法,在求解全局焊點(diǎn)路徑的基礎(chǔ)上解決了不同焊點(diǎn)間可能存在的干涉問題。
(2)通過將改進(jìn)前后算法在相同參數(shù)條件下對同一問題進(jìn)行MATLAB求解,結(jié)果表明:相較于改進(jìn)前算法,改進(jìn)算法規(guī)劃的機(jī)械臂焊接路徑機(jī)械臂移動(dòng)的最短路徑長度縮短了0.47%,迭代次數(shù)減少了11.7%,驗(yàn)證了改進(jìn)算法的優(yōu)越性。