劉良斌 劉德玉
(湖南工業(yè)職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙 410208)
機(jī)器人近年來的發(fā)展十分迅速[1],在工業(yè)生產(chǎn)、空間探索、軍事等領(lǐng)域中的應(yīng)用非常廣泛[2,3]。焊接機(jī)器人,特別是點(diǎn)焊機(jī)器人在汽車制造領(lǐng)域有著非常重要的地位,研究工業(yè)機(jī)器人技術(shù)對(duì)提高我國(guó)自主設(shè)計(jì)制造能力、提高我國(guó)的科技水平有著非常重要的意義[4]。
白車身側(cè)圍機(jī)器人路徑規(guī)劃是指在白車身側(cè)圍焊接工位上,在考慮焊接過程中的工藝、節(jié)拍、碰撞等問題的基礎(chǔ)上,尋找較為合適的機(jī)器人路徑規(guī)劃方法,以達(dá)到機(jī)器人在焊接過程中,移動(dòng)的路徑最短的效果,使得焊接機(jī)器人在節(jié)拍、耗能、效率等方面最優(yōu)[5,6]。這是一個(gè)帶限制條件的路徑規(guī)劃問題,一直是國(guó)內(nèi)外學(xué)者的重點(diǎn)研究方向。
點(diǎn)焊機(jī)器人在工作中面臨的主要問題是焊點(diǎn)過多和焊接軌跡的規(guī)劃問題。例如,汽車的有些部件上的焊點(diǎn)可能達(dá)到幾十個(gè),從如此多的焊點(diǎn)中,規(guī)劃一條合適的路徑,是復(fù)雜而又費(fèi)時(shí)的。現(xiàn)階段大部分人員是通過自身經(jīng)驗(yàn)、參考技術(shù)文檔以及類似焊接任務(wù)的焊接流程,粗略估計(jì)并設(shè)計(jì)出焊接路徑。這種焊接路徑的規(guī)劃方式耗時(shí)較長(zhǎng),會(huì)大量占用設(shè)備的生產(chǎn)時(shí)間,規(guī)劃方案很難保證合理性,故研究工業(yè)機(jī)器人焊接路徑規(guī)劃有其重要的意義。
本文以白車身制造中常用的點(diǎn)焊機(jī)器人工作站作為研究對(duì)象,擬采用改進(jìn)的遺傳算法實(shí)現(xiàn)對(duì)機(jī)器人焊接路徑的規(guī)劃,以解決焊接機(jī)器人在焊接規(guī)劃過程中,焊接的路徑規(guī)劃問題。
機(jī)器人焊接的軌跡規(guī)劃,可以假設(shè)需要焊接的點(diǎn)為C=(c1,c2,…cN),其中,ci為第i個(gè)需要焊接的點(diǎn)。那么,我們也可以將d(ci,cj)定義為第i個(gè)需要焊接的點(diǎn)ci和第j個(gè)需要焊接的點(diǎn)cj之間的距離。因機(jī)器人對(duì)某個(gè)點(diǎn)進(jìn)行焊接的時(shí)間是固定的,我們需要解決的問題就變成了:找到一條最佳的路徑π=(c1,c2,…cN),使得機(jī)器人在焊接過程中經(jīng)過的總路徑最短。機(jī)器人走過的路徑可以表示為下式:

在以往的焊接過程中,如果焊接點(diǎn)位不多,可以由有經(jīng)驗(yàn)的工人,對(duì)點(diǎn)位進(jìn)行分配和規(guī)劃。但在點(diǎn)位較多的焊接任務(wù)中,點(diǎn)位的分配和軌跡的規(guī)劃難度就會(huì)成指數(shù)增長(zhǎng)。我們需要找到一種合適的方式來自動(dòng)規(guī)劃路徑。
將機(jī)器人需要焊接的點(diǎn)C=(c1,c2,…cN)認(rèn)為是旅行商需要遍歷的城市;將焊接機(jī)器人從焊接點(diǎn)ci到達(dá)cj點(diǎn)所要經(jīng)過的路徑長(zhǎng)度d(ci,cj)認(rèn)為是旅行商從第i個(gè)城市到達(dá)第j個(gè)城市所需要經(jīng)過的距離,機(jī)器人完成所有的焊點(diǎn)所需要經(jīng)過的距離為s(π)。于是,就將焊接機(jī)器人的焊點(diǎn)的焊接順序規(guī)劃問題轉(zhuǎn)換為了TSP(旅行商)問題。
遺傳算法是一種以自然現(xiàn)象總結(jié)出來的一種算法,該算法將遺傳過程中的基因突變、基因交換和基因保留等方式,將信息進(jìn)行保留和變異。
主要步驟為:
①對(duì)起始個(gè)體進(jìn)行編碼;
②計(jì)算并得出個(gè)體的目標(biāo)函數(shù);
③利用輪盤賭等方法選出N 個(gè)個(gè)體,作為下一代的變異對(duì)象;
④對(duì)通過第三步得到的變異對(duì)象進(jìn)行交叉和變異,能夠得到新的種群;
⑤比較現(xiàn)有的個(gè)體,如果新個(gè)體比現(xiàn)有個(gè)體更為優(yōu)秀,則將原有最優(yōu)個(gè)體替換掉。
重復(fù)以上過程,經(jīng)過足夠次數(shù)后,會(huì)收斂于一個(gè)近似的最優(yōu)解,算法結(jié)束。
(1)焊點(diǎn)編碼設(shè)計(jì)
選取一個(gè)平面薄板焊接工件,先將其所有的焊點(diǎn)記錄在表格中,見表1。

表1 焊接點(diǎn)位信息
在c1,c2,…c30這30 個(gè)變量中,分別存儲(chǔ)第1 個(gè)、第2 個(gè)……第30個(gè)需要焊接的點(diǎn)位。
(2)目標(biāo)函數(shù)的確定
遺傳算法需要設(shè)計(jì)一個(gè)目標(biāo)函數(shù),通過對(duì)比個(gè)體的目標(biāo)函數(shù)的大小,將較差個(gè)體進(jìn)行剔除,并保留適應(yīng)度較優(yōu)的個(gè)體。
顯然,目標(biāo)函數(shù)應(yīng)該反映焊接路徑的長(zhǎng)度,長(zhǎng)度越短,個(gè)體就更為優(yōu)秀,保存下來的概率應(yīng)該越高。
ci點(diǎn)到ci+1點(diǎn)之間的路徑長(zhǎng)度可以通過d(ci,ci+1)來表示。焊接完所有的焊點(diǎn)所經(jīng)過的路徑認(rèn)為是目標(biāo)函數(shù)的值,為:

在選擇下一代種群時(shí),應(yīng)對(duì)種群被選擇的概率進(jìn)行計(jì)算,通過上式可以認(rèn)為,目標(biāo)函數(shù)值越大,被選中的概率就越低。故只需要設(shè)計(jì)一個(gè)合適的適應(yīng)度函數(shù)即可。
設(shè)當(dāng)前代的種群共有N個(gè)個(gè)體,該代的第i個(gè)個(gè)體用Zi表示。對(duì)于第i個(gè)個(gè)體,即為:

(3)適應(yīng)度函數(shù)的確定
針對(duì)本文所需要解決的機(jī)器人焊接路徑規(guī)劃問題。可以得出:機(jī)器人在焊接過程中,走過的路徑越短,則該焊接路徑越為優(yōu)秀。可以將機(jī)器人需要焊接完所有的點(diǎn),走過的路徑的倒數(shù)表示。
于是得到適應(yīng)度函數(shù):

可以得到第i個(gè)個(gè)體被選中的概率為

可以得到:

(4)隨機(jī)競(jìng)爭(zhēng)選擇
隨機(jī)生成2 個(gè)不相同的0-1 的數(shù),通過輪盤賭的選擇方式,將這兩個(gè)隨機(jī)數(shù)所指向的位置作為被選擇的個(gè)體。對(duì)比通過輪盤賭得出的兩個(gè)個(gè)體的適應(yīng)度函數(shù),將相對(duì)更優(yōu)的個(gè)體作為下一代個(gè)體。重復(fù)以上工作,選出的個(gè)體作為下一代的N個(gè)個(gè)體。
(5)交叉
將選出的N 個(gè)個(gè)體的染色體進(jìn)行交叉。這里選擇部分交叉匹配交叉策略。部分匹配交叉能夠讓種群中出現(xiàn)以往沒有出現(xiàn)過的基因,這里將c2位置和c6位置之間的區(qū)域進(jìn)行交換,如下所示:


故,經(jīng)過交叉后的結(jié)果為

其中,c1到c30中包含的數(shù)據(jù)為機(jī)器人的焊點(diǎn)。本文提到的焊點(diǎn)為依次編號(hào)得到,故需要對(duì)交換后數(shù)據(jù)進(jìn)行沖突性檢查,對(duì)于沖突的數(shù)據(jù)進(jìn)行更換。
(6)變異
交叉的過程只是對(duì)個(gè)體進(jìn)行了位置的移動(dòng),并沒有對(duì)個(gè)體的組合方式進(jìn)行新的方式的排列,故引入低概率的變異因子對(duì)容易形成局部最優(yōu)的結(jié)果加入擾動(dòng),以跳出局部最優(yōu)的現(xiàn)象。
本文采用均勻變異方式實(shí)現(xiàn):生成2 個(gè)1-30 的隨機(jī)數(shù),假設(shè)分別為i和j,將Ci中的數(shù)與Cj中的數(shù)進(jìn)行交換,將得到的新個(gè)體替換原來的個(gè)體。
將進(jìn)化次數(shù)設(shè)置為3000 次,交叉點(diǎn)固定為3,將交叉點(diǎn)個(gè)數(shù)分別取即15即10即6;即3;即1。通過matlab進(jìn)行驗(yàn)證,可以分別得到適應(yīng)度進(jìn)化曲線,如圖1。

圖1 不同交叉情況下的目標(biāo)函數(shù)變化
可以看到交叉長(zhǎng)度為1 的時(shí)候可以得到目標(biāo)函數(shù)值最優(yōu),最優(yōu)方式得到的最短路徑為776mm,如圖2。
根據(jù)圖2 可以看到,交叉長(zhǎng)度為1 情況下的最短路徑基本符合經(jīng)驗(yàn)設(shè)置方法中的軌跡規(guī)劃規(guī)律。可以認(rèn)為交叉長(zhǎng)度越短,進(jìn)化速度越快。

圖2 交叉長(zhǎng)度為1情況下最短路徑
在實(shí)驗(yàn)中也發(fā)現(xiàn),交叉長(zhǎng)度較短的情況下,更容易出現(xiàn)陷入局部最優(yōu)的情況。故在設(shè)置交叉長(zhǎng)度時(shí),應(yīng)綜合考慮。
汽車生產(chǎn)過程中,需要通過機(jī)器人對(duì)白車身的焊點(diǎn)進(jìn)行焊接,因焊接數(shù)量非常大,如何對(duì)焊接順序進(jìn)行規(guī)劃,是亟待解決的問題。本文將機(jī)器人的焊接問題轉(zhuǎn)換為旅行商問題,然后通過遺傳算法,對(duì)焊接機(jī)器人的路徑進(jìn)行規(guī)劃。通過對(duì)遺傳算法中不同交叉長(zhǎng)度情況下算法的進(jìn)化速度進(jìn)行了對(duì)比,得到交叉長(zhǎng)度越短,進(jìn)化速度會(huì)越快的結(jié)論。