劉良斌 劉德玉
(湖南工業(yè)職業(yè)技術學院,湖南 長沙 410208)
機器人近年來的發(fā)展十分迅速[1],在工業(yè)生產、空間探索、軍事等領域中的應用非常廣泛[2,3]。焊接機器人,特別是點焊機器人在汽車制造領域有著非常重要的地位,研究工業(yè)機器人技術對提高我國自主設計制造能力、提高我國的科技水平有著非常重要的意義[4]。
白車身側圍機器人路徑規(guī)劃是指在白車身側圍焊接工位上,在考慮焊接過程中的工藝、節(jié)拍、碰撞等問題的基礎上,尋找較為合適的機器人路徑規(guī)劃方法,以達到機器人在焊接過程中,移動的路徑最短的效果,使得焊接機器人在節(jié)拍、耗能、效率等方面最優(yōu)[5,6]。這是一個帶限制條件的路徑規(guī)劃問題,一直是國內外學者的重點研究方向。
點焊機器人在工作中面臨的主要問題是焊點過多和焊接軌跡的規(guī)劃問題。例如,汽車的有些部件上的焊點可能達到幾十個,從如此多的焊點中,規(guī)劃一條合適的路徑,是復雜而又費時的。現(xiàn)階段大部分人員是通過自身經驗、參考技術文檔以及類似焊接任務的焊接流程,粗略估計并設計出焊接路徑。這種焊接路徑的規(guī)劃方式耗時較長,會大量占用設備的生產時間,規(guī)劃方案很難保證合理性,故研究工業(yè)機器人焊接路徑規(guī)劃有其重要的意義。
本文以白車身制造中常用的點焊機器人工作站作為研究對象,擬采用改進的遺傳算法實現(xiàn)對機器人焊接路徑的規(guī)劃,以解決焊接機器人在焊接規(guī)劃過程中,焊接的路徑規(guī)劃問題。
機器人焊接的軌跡規(guī)劃,可以假設需要焊接的點為C=(c1,c2,…cN),其中,ci為第i個需要焊接的點。那么,我們也可以將d(ci,cj)定義為第i個需要焊接的點ci和第j個需要焊接的點cj之間的距離。因機器人對某個點進行焊接的時間是固定的,我們需要解決的問題就變成了:找到一條最佳的路徑π=(c1,c2,…cN),使得機器人在焊接過程中經過的總路徑最短。機器人走過的路徑可以表示為下式:
在以往的焊接過程中,如果焊接點位不多,可以由有經驗的工人,對點位進行分配和規(guī)劃。但在點位較多的焊接任務中,點位的分配和軌跡的規(guī)劃難度就會成指數(shù)增長。我們需要找到一種合適的方式來自動規(guī)劃路徑。
將機器人需要焊接的點C=(c1,c2,…cN)認為是旅行商需要遍歷的城市;將焊接機器人從焊接點ci到達cj點所要經過的路徑長度d(ci,cj)認為是旅行商從第i個城市到達第j個城市所需要經過的距離,機器人完成所有的焊點所需要經過的距離為s(π)。于是,就將焊接機器人的焊點的焊接順序規(guī)劃問題轉換為了TSP(旅行商)問題。
遺傳算法是一種以自然現(xiàn)象總結出來的一種算法,該算法將遺傳過程中的基因突變、基因交換和基因保留等方式,將信息進行保留和變異。
主要步驟為:
①對起始個體進行編碼;
②計算并得出個體的目標函數(shù);
③利用輪盤賭等方法選出N 個個體,作為下一代的變異對象;
④對通過第三步得到的變異對象進行交叉和變異,能夠得到新的種群;
⑤比較現(xiàn)有的個體,如果新個體比現(xiàn)有個體更為優(yōu)秀,則將原有最優(yōu)個體替換掉。
重復以上過程,經過足夠次數(shù)后,會收斂于一個近似的最優(yōu)解,算法結束。
(1)焊點編碼設計
選取一個平面薄板焊接工件,先將其所有的焊點記錄在表格中,見表1。
表1 焊接點位信息
在c1,c2,…c30這30 個變量中,分別存儲第1 個、第2 個……第30個需要焊接的點位。
(2)目標函數(shù)的確定
遺傳算法需要設計一個目標函數(shù),通過對比個體的目標函數(shù)的大小,將較差個體進行剔除,并保留適應度較優(yōu)的個體。
顯然,目標函數(shù)應該反映焊接路徑的長度,長度越短,個體就更為優(yōu)秀,保存下來的概率應該越高。
ci點到ci+1點之間的路徑長度可以通過d(ci,ci+1)來表示。焊接完所有的焊點所經過的路徑認為是目標函數(shù)的值,為:
在選擇下一代種群時,應對種群被選擇的概率進行計算,通過上式可以認為,目標函數(shù)值越大,被選中的概率就越低。故只需要設計一個合適的適應度函數(shù)即可。
設當前代的種群共有N個個體,該代的第i個個體用Zi表示。對于第i個個體,即為:
(3)適應度函數(shù)的確定
針對本文所需要解決的機器人焊接路徑規(guī)劃問題??梢缘贸觯簷C器人在焊接過程中,走過的路徑越短,則該焊接路徑越為優(yōu)秀??梢詫C器人需要焊接完所有的點,走過的路徑的倒數(shù)表示。
于是得到適應度函數(shù):
可以得到第i個個體被選中的概率為
可以得到:
(4)隨機競爭選擇
隨機生成2 個不相同的0-1 的數(shù),通過輪盤賭的選擇方式,將這兩個隨機數(shù)所指向的位置作為被選擇的個體。對比通過輪盤賭得出的兩個個體的適應度函數(shù),將相對更優(yōu)的個體作為下一代個體。重復以上工作,選出的個體作為下一代的N個個體。
(5)交叉
將選出的N 個個體的染色體進行交叉。這里選擇部分交叉匹配交叉策略。部分匹配交叉能夠讓種群中出現(xiàn)以往沒有出現(xiàn)過的基因,這里將c2位置和c6位置之間的區(qū)域進行交換,如下所示:
故,經過交叉后的結果為
其中,c1到c30中包含的數(shù)據(jù)為機器人的焊點。本文提到的焊點為依次編號得到,故需要對交換后數(shù)據(jù)進行沖突性檢查,對于沖突的數(shù)據(jù)進行更換。
(6)變異
交叉的過程只是對個體進行了位置的移動,并沒有對個體的組合方式進行新的方式的排列,故引入低概率的變異因子對容易形成局部最優(yōu)的結果加入擾動,以跳出局部最優(yōu)的現(xiàn)象。
本文采用均勻變異方式實現(xiàn):生成2 個1-30 的隨機數(shù),假設分別為i和j,將Ci中的數(shù)與Cj中的數(shù)進行交換,將得到的新個體替換原來的個體。
將進化次數(shù)設置為3000 次,交叉點固定為3,將交叉點個數(shù)分別取即15即10即6;即3;即1。通過matlab進行驗證,可以分別得到適應度進化曲線,如圖1。
圖1 不同交叉情況下的目標函數(shù)變化
可以看到交叉長度為1 的時候可以得到目標函數(shù)值最優(yōu),最優(yōu)方式得到的最短路徑為776mm,如圖2。
根據(jù)圖2 可以看到,交叉長度為1 情況下的最短路徑基本符合經驗設置方法中的軌跡規(guī)劃規(guī)律??梢哉J為交叉長度越短,進化速度越快。
圖2 交叉長度為1情況下最短路徑
在實驗中也發(fā)現(xiàn),交叉長度較短的情況下,更容易出現(xiàn)陷入局部最優(yōu)的情況。故在設置交叉長度時,應綜合考慮。
汽車生產過程中,需要通過機器人對白車身的焊點進行焊接,因焊接數(shù)量非常大,如何對焊接順序進行規(guī)劃,是亟待解決的問題。本文將機器人的焊接問題轉換為旅行商問題,然后通過遺傳算法,對焊接機器人的路徑進行規(guī)劃。通過對遺傳算法中不同交叉長度情況下算法的進化速度進行了對比,得到交叉長度越短,進化速度會越快的結論。