聶 芬 趙志華
(①山西水利職業(yè)技術(shù)學(xué)院信息工程系,山西 運城 044004; ②西北大學(xué)信息科學(xué)與技術(shù)學(xué)院, 陜西 西安 710127)
據(jù)統(tǒng)計,在白車身的所有焊點中,很大一部分都是通過焊接機器人來完成的[1],而焊接機器人焊接路徑的合理選擇能夠大大提高生產(chǎn)效率,節(jié)約生產(chǎn)成本[2-3]。而一些智能優(yōu)化算法及其改進型由于具有出色的優(yōu)化性能,可以較好地實現(xiàn)焊接機器人焊接路徑的合理規(guī)劃,受到了很多學(xué)者青睞。如呂文壯等[4]為提高焊接機器人路徑規(guī)劃的效果,提出了改進蟻群算法,解決了路徑規(guī)劃精度低的問題,獲得了更短的焊接路徑;姚江云等[5]將Levy飛行引入蜂群算法中,提出改進蜂群算法并利用其進行焊接機器人路徑規(guī)劃,獲得了更優(yōu)的焊接機器人避障路徑;候仰強等[6]開展了基于多目標(biāo)遺傳算法的雙機器人焊接路徑規(guī)劃的研究,獲得了雙機器人協(xié)調(diào)焊接的最優(yōu)路徑;張瑞星等[7]將粒子群算法和蟻群算法進行結(jié)合,提出蟻群粒子群融合算法并用于雙機器人協(xié)同焊接路徑規(guī)劃,獲得了比其他一些優(yōu)化算法更好的應(yīng)用效果。
果蠅優(yōu)化算法[8](fruit fly optimization algorithm,F(xiàn)OA)同前文提到的蟻群算法、蜂群算法、粒子群算法等相似,同樣是一種有效的智能優(yōu)化算法,具有通俗易懂、實現(xiàn)簡單、參數(shù)較少等優(yōu)點,很多學(xué)者對其進行了深入的研究和應(yīng)用。如,杜偉等[9]通過FOA實現(xiàn)了更優(yōu)支持向量機參數(shù)的獲取;趙陽等[10]通過FOA實現(xiàn)了轉(zhuǎn)子主動平衡系統(tǒng)時滯的有效辨識;張麗杰等[11]通過FOA實現(xiàn)了節(jié)點和容量受限的火災(zāi)中人員動態(tài)疏散路徑的合理規(guī)劃;李梅紅[12]通過改進FOA中步長更新方式,提出了動態(tài)變步長果蠅算法,從而實現(xiàn)了對冗余機械臂逆運動學(xué)解的高精度求解;李梅紅[13]通知在FOA引入向最差個體學(xué)習(xí)的策略,提出反向認(rèn)知果蠅算法,從而提高了機器人逆運動學(xué)解的求解精度。
本文以提高焊接機器人路徑規(guī)劃的有效性為目的展開研究,針對FOA存在的一些不足,對FOA算法改進,提出改進果蠅算法(improved fruit fly optimization algorithm, IFOA),實現(xiàn)焊接機器人焊接路徑的IFOA規(guī)劃。實驗結(jié)果表明,對IFOA的改進是合理有效的,相比于其他一些方法,得到的焊接路徑更優(yōu),效率更高,穩(wěn)定性更好。
本文以某型點焊機器人為研究對象,將其安裝在白車身側(cè)圍點焊工位上,其需要在該工位對白車身側(cè)圍進行點焊操作。圖1給出了某車型白車身的側(cè)圍結(jié)構(gòu)示意圖,其中圖1a為整體結(jié)構(gòu),圖1b為各焊點的局部放大圖。從圖1中可以看到該車型車身側(cè)圍上的焊點很多,同時各焊點之間的相對位置無明顯規(guī)律可循,分布比較雜亂,如果焊接的路徑規(guī)劃得不合理,則會嚴(yán)重影響生產(chǎn)效率。
焊接機器人的路徑規(guī)劃問題,實際上就是在滿足一定的約束條件下,找到一條最優(yōu)的焊接路徑完成各焊點的焊接工作,這與旅行商問題(TSP,即商人從起始城市出發(fā),對每個城市走訪一遍后再返回起點,在走訪完成后,力求耗時最短或者行走路程最短)十分相似。
焊接機器人在進行焊接操作時,通常只考慮其在起始焊點以及終止焊點的位姿,而其在兩個焊點之間移動時采用的控制方式則不必考慮,即只需要對其進行點位控制。在實際應(yīng)用中,通常還需要考慮到一些干涉問題,如焊槍與車身、焊槍與夾具等。機器人路徑規(guī)劃的好壞需要一個評價的標(biāo)準(zhǔn),對于焊接機器人而言,通??梢杂煤臅r最少、能耗最少、移動距離最少等標(biāo)準(zhǔn)來進行評價。通過白車身側(cè)圍焊點的分布情況進行分析,發(fā)現(xiàn)各焊點在z軸上的相對位置偏差較小,可以忽略不計,因此本文不考慮z軸上的偏差,直接將各焊點建立O-xy平面坐標(biāo)系,并以移動距離最短為目標(biāo),進行焊接機器人的焊接軌跡規(guī)劃,由此建立的目標(biāo)函數(shù)如下:
(1)
(2)
(3)
其中:n為焊點的個數(shù);d(Ci,Ci+1)為焊點Ci和Ci+1之間的距離;d(C1,Cn)為起始焊點和終止焊點之間的距離。
FOA主要有以下幾個步驟:
(1)確定相關(guān)參數(shù)。主要包括M(種群數(shù))、Gmax(最大迭代次數(shù))、X_axis和Y_axis(初始坐標(biāo))、L(搜索步長)。
(2)按式(4)確定每個果蠅個體新的位置。
(4)
(3)估計果蠅個體所在位置與原點之間的距離Disti,其倒數(shù)即為味道濃度判定值Si。
(5)
(4)將Si代入適應(yīng)度函數(shù)(fitnessfunction)中,得到每個果蠅個體所在位置的食物味道濃度Smelli。
Smelli=function(Si)
(6)
(5)保存該果蠅群體中Smelli最大的果蠅個體的最優(yōu)適應(yīng)度值以及它的位置坐標(biāo)。
[Sg,Xg,Yg]=max(Smelli)
(7)
(6)記錄并保留bestSmell及其對應(yīng)的X、Y坐標(biāo),其余果蠅則向該位置聚集。
(8)
(7)重復(fù)執(zhí)行步驟(2)~(5),判斷Sbest是否優(yōu)于前一值。若當(dāng)前迭代次數(shù)小于Gmax,則重復(fù)步驟(6)。
通過分析上述FOA算法的基本步驟可知,F(xiàn)OA還存在著一些不足之處:一是其搜索步長L影響著算法的搜索能力,而它在最開始就已被設(shè)定好,并不會隨著迭代的進行而發(fā)生變化,如果從一開始對它的設(shè)置就不合理,那么就會對最終的結(jié)果造成重要的影響;二是其生成解的方式具有局限性,即在每次迭代過程完成后,每個果蠅個體都飛向最優(yōu)個體,這就導(dǎo)致當(dāng)搜索步長發(fā)生變化時會造成搜索不均勻的情況出現(xiàn),進而影響最終的結(jié)果。
本文針對FOA存在的上述2個問題對其進行改進,主要創(chuàng)新點體現(xiàn)在以下2個方面:
(1)用自適應(yīng)步長替代固定步長。初始化種群位置后,果蠅個體的隨機方向和距離公式變更為式(9)。
(9)
式中:ω表示步長的權(quán)重,它由式(10)確定。
ω=ω0eG
(10)
式中:ω0表示初始步長的權(quán)重;G表示權(quán)重的系數(shù),它由式(11)確定。
(11)
式中:Sbest為截止到g次迭代的歷史最優(yōu)適應(yīng)度值;Sg-1為上一次迭代最優(yōu)適應(yīng)度值。通過式(9)~(11)就實現(xiàn)了搜索步長的自適應(yīng)變化,并且它與搜索得到的歷史最優(yōu)適應(yīng)度值和當(dāng)代迭代搜索得到的最優(yōu)適應(yīng)度值相關(guān),也就是參考了歷史和當(dāng)前相關(guān)信息。當(dāng)Sbest和Sg-1相差較大時,G就變大,進而搜索步長就增大,果蠅個體就需要飛得更遠;當(dāng)Sbest和Sg-1相差較小時,G就變小,進而搜索步長就減小,果蠅個體就進行短距離的飛行。長短飛行的相互協(xié)同,就使得果蠅個體在搜索范圍內(nèi)的隨機性更強,可以進行更有效的搜索。
(12)
Sgi=Sg+Rgi(i=1,2,…,Ngi)
(13)
式中:Rgi表示煙花爆炸半徑;R為常數(shù),用于對Rgi進行調(diào)節(jié);Ngi表示爆炸數(shù)目;N為常數(shù),用于對Ngi進行調(diào)節(jié);ε用于避免除零操作,其為機器最小值。Rgi和Ngi的計算公式為式(14)。這樣,通過對當(dāng)代Sg進行煙花爆炸操作,就產(chǎn)生了Ngi個新的適應(yīng)度值,而后保留Ngi個新解中的最優(yōu)適應(yīng)度值和位置信息。
(14)
IFOA的偽代碼如下:
本文以生產(chǎn)線上一白車身側(cè)圍焊接工位上的機器人為例,對IFOA方法的有效性進行驗證,并從縱向?qū)Ρ群蜋M向?qū)Ρ?個方面進行比較分析。
參與縱向?qū)Ρ鹊姆椒òǎ篒FOA、FOA方法、文獻[11]中的LFOA方法、文獻[12]中的DCSFOA等4種方法。在該對比中,果蠅種群規(guī)模M都設(shè)置為30,最大迭代次數(shù)Gmax都設(shè)置為200,初始搜索步長L設(shè)置為1;對于LFOA、DCSFOA兩種方法種需要設(shè)置的參數(shù),均按照原參考文獻進行設(shè)置;對于IFOA中的參數(shù),煙花爆炸半徑常數(shù)R設(shè)置為2,爆炸數(shù)目常數(shù)設(shè)置為50,初始步長權(quán)重ω0設(shè)置為2。
參與橫向?qū)Ρ鹊姆椒òǎ篒FOA、文獻[4]中的IACO方法、文獻[5]中的IABC方法、文獻[6]中的IGA方法。在該對比中,相關(guān)方法的參數(shù)設(shè)置均按原文獻進行設(shè)置。
3.2.1 縱向?qū)Ρ冉Y(jié)果分析
采用FOA、LFOA、DCSFOA以及IFOA等4種方法分別進行20次獨立的路徑規(guī)劃計算,分別得到圖2和、表1和圖3的結(jié)果,其中圖2為20次計算結(jié)果的可視化顯示,表1為4種方法20計算結(jié)果的4項統(tǒng)計指標(biāo)(最短路徑、最長路徑、平均值和標(biāo)準(zhǔn)差),圖3為4種方法最短規(guī)劃路徑的可視化結(jié)果。
從圖2中可知,從每種方法計算結(jié)果曲線的上下關(guān)系來看,F(xiàn)OA位于最上方,本文IFOA位于最下方,LFOA和DCSFOA位置2者之間。這說明IFOA的計算得到了路徑是最短的,比其他3種方法得到的路徑都要短;從每種方法計算結(jié)果曲線的波動程度來看,F(xiàn)OA的波動最大,LFOA的波動次之,DCSFOA和本文IFOA的波動程度大體相當(dāng)。這說明在20次計算中,F(xiàn)OA和LFOA都存在陷入局部最優(yōu)無法跳出的情況出現(xiàn),以至于搜索不到最優(yōu)解,而DCSFOA和IFOA的波動相對較小,算法的穩(wěn)定性更強。從表1的結(jié)果可知,對于最短路徑指標(biāo),本文IFOA比其余3種方法中路徑最短的DCSFOA都還縮短了30.51 mm;對于最長路徑指標(biāo),IFOA比LFOA和FOA兩種方法的最短路徑指標(biāo)都還要?。粚τ谄骄抵笜?biāo),同樣是IFOA比其他3種方法的結(jié)果要好;標(biāo)準(zhǔn)差指標(biāo)體現(xiàn)的是算法的穩(wěn)定性,因此這也說明了IFOA的算法穩(wěn)定性較其他3種方法的更強。從圖3中可知,從起始點至終止點再返回起始點的路徑中,只要IFOA是沒有交叉的,其余3種方法的路徑或多或少都存在一定的交叉。
表1 縱向?qū)Ρ?種方法的統(tǒng)計結(jié)果
通過上述分析結(jié)果可以得出:4種方法在路徑規(guī)劃中,IFOA最優(yōu),DCSFOA次之,LFOA位列第3,F(xiàn)OA最差。通過對4種方法的具體步驟分析可知,LFOA雖然改變了果蠅個體位置更新方式,但Levy飛行是按照一定概率實現(xiàn)跳躍的,因此還是會出現(xiàn)陷入局部最優(yōu)的情況;DCSFOA由于變固定步長為動態(tài)變步長,實現(xiàn)了搜索步長隨迭代過程的變化而變化,因此尋優(yōu)能力更強,但是隨著步長動態(tài)變化后,沒有考慮生成解的均勻性;而IFOA通過兩個方面的改進,增強了算法的總體尋優(yōu)能力,進而可以得到更好的尋優(yōu)效果。
3.2.2 橫向?qū)Ρ冉Y(jié)果分析
采用IACO、IABC和IGA分別進行20次獨立的路徑規(guī)劃計算,分別得到圖4、表2和圖5的結(jié)果。需要說明的是,因為在縱向?qū)Ρ戎袔追N方法在耗時上差距很小,對耗時進行對比無太大意義,因此在表1種未對耗時進行對比,而橫向?qū)Ρ戎袔追N方法在耗時上差異很大,因此在表2中增加了最短路徑耗時的對比。
表2 橫向?qū)Ρ?種方法的統(tǒng)計結(jié)果
從圖4、表2、圖5和圖3d的結(jié)果可以得到如下結(jié)論:從路徑規(guī)劃結(jié)果來看,IFOA得到的路徑長度與IABC基本相當(dāng)(IFOA比IABC略短5.68 mm),比其余2種方法要短,這說明IFOA的路徑規(guī)劃能力更強;從最短路徑規(guī)劃耗時來看,IFOA的耗時遠遠小于其余3種方法,特別是比與IFOA路徑長度相當(dāng)?shù)腎ABC減少了近40 s,這說明IFOA的路徑規(guī)劃效率更高;從20次計算標(biāo)準(zhǔn)差值來看,IFOA的標(biāo)準(zhǔn)差均比其它3種方法的要小,這說明IFOA的路徑規(guī)劃穩(wěn)定性更好。
本文研究了焊接機器人的焊接路徑規(guī)劃問題。首先,在分析焊接機器人焊接問題的基礎(chǔ)上,建立了以焊接路徑最短為目標(biāo)的優(yōu)化問題;其次,針對FOA存在的兩點不足之處,提出了IFOA算法;最后,將IFOA用于解決該優(yōu)化問題,并與其他6種方法分別進行縱向和橫向的對比分析,驗證了方法的有效性。