劉任平,陳賽清,劉梅
摘 要: 焊接機(jī)器人路徑規(guī)劃對(duì)于提高機(jī)器人的焊接效率至關(guān)重要。傳統(tǒng)的機(jī)械臂焊接規(guī)劃采用示教-再現(xiàn)方式,這種焊接模式難以達(dá)到高效率、低耗能的要求。對(duì)焊接機(jī)器人路徑規(guī)劃問題以及遺傳算法進(jìn)行研究,從時(shí)間最優(yōu)角度重點(diǎn)對(duì)遺傳編碼方式、適應(yīng)度函數(shù)、選擇、交叉、變異等進(jìn)行了分析,并采用VS2010對(duì)焊接機(jī)器人進(jìn)行仿真,該遺傳算法明顯提高了焊接機(jī)器人的焊接效率。
關(guān)鍵詞: 焊機(jī)機(jī)器人; 路徑規(guī)劃; 遺傳算法; 交叉; 變異
中圖分類號(hào):TP319 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)06-13-03
Application research of welding robot path planning based on genetic algorithm
Liu Renping, Chen Saiqing, Liu Mei
(North China University of Technology, Beijing 100144, China)
Abstract: Welding robot path-planning is essential in improving the efficiency of the robot welding. Traditional mechanical arm welding planning adopts the way of teaching-reproduction, which is hard to achieve the requirement of high efficiency and low energy exhausting. By researching the welding robot path-planning issues and related algorithm, the genetic encoding method, fitness function, selection, crossover and mutation are analyzed from the aspects of the optimal time, simulating the welding robot by using VS2010. The experiments show that genetic algorithm has obvious advantages for improving the efficiency of the robot welding.
Key words: welding robot; path-planning; genetic algorithm; crossover; mutation
0 引言
路徑規(guī)劃是指按照一定的性能指標(biāo),讓機(jī)器人從所處的環(huán)境中搜索到一條從初始位置到目標(biāo)位置的最優(yōu)或次優(yōu)路徑。路徑規(guī)劃是機(jī)器人研究中的重要領(lǐng)域,國(guó)內(nèi)外在機(jī)器人路徑規(guī)劃上已經(jīng)做了大量的研究工作。傳統(tǒng)的機(jī)械臂焊接規(guī)劃采用示教-再現(xiàn)方式,這種一成不變的焊接方式難以達(dá)到高效率、低能耗的要求。本文基于遺傳算法對(duì)機(jī)械臂焊接進(jìn)行規(guī)劃,使機(jī)械臂焊接路徑得到優(yōu)化,減少了焊接芯片的生產(chǎn)時(shí)間,提高了生產(chǎn)效率,降低生產(chǎn)成本。
1 焊接機(jī)器人模型
焊接機(jī)器人采用四軸聯(lián)動(dòng)機(jī)械手,它由底部基座、大臂、小臂和手組成,共三個(gè)自由度,各自由度之間有旋轉(zhuǎn)關(guān)節(jié)連接,如圖1所示。
圖1 焊接機(jī)器人模型
焊機(jī)機(jī)器人的三個(gè)旋轉(zhuǎn)關(guān)節(jié),其軸線相互平行,在平面內(nèi)進(jìn)行定位和定向。另一個(gè)關(guān)節(jié)是移動(dòng)關(guān)節(jié),用于完成末端件在垂直于平面的運(yùn)動(dòng),它以旋轉(zhuǎn)關(guān)節(jié)的角位移和移動(dòng)關(guān)節(jié)的位移來確定末端工作位置與姿態(tài)。每個(gè)動(dòng)作都用一個(gè)直流伺服電機(jī)加以驅(qū)動(dòng),因此這個(gè)機(jī)器人驅(qū)動(dòng)系統(tǒng)至少需要四個(gè)步進(jìn)電機(jī)來實(shí)現(xiàn)其運(yùn)動(dòng)控制。
2 遺傳算法
本文基于時(shí)間因素對(duì)焊接機(jī)器人進(jìn)行研究。從起點(diǎn)到終點(diǎn)對(duì)焊點(diǎn)的焊接可以歸結(jié)為求哈密爾頓回路問題。要使焊接芯片的時(shí)間縮短,則要找出一條最短的哈密爾頓回路,類似于TSP問題。我們采用遺傳算法進(jìn)行處理。
遺傳算法是一類借鑒生物界自然選擇和自然遺傳機(jī)制的隨機(jī)搜索算法,它模擬自然選擇和自然遺傳過程中發(fā)生的繁殖、交叉和基因突變現(xiàn)象,在每次迭代中都保留一些候選解,并按某種指標(biāo)從結(jié)群中選取較優(yōu)的個(gè)體,利用遺傳算子(選擇、交叉和變異)對(duì)這些個(gè)體進(jìn)行組合,產(chǎn)生新一代的候選結(jié)群,重復(fù)此過程,知道滿足某種收斂指標(biāo)為止。遺傳算法的組成主要包括遺傳編碼、適應(yīng)度函數(shù)、遺傳算子(選擇、交叉、變異)、運(yùn)行參數(shù)。
這里要解決的是,機(jī)械臂從待機(jī)位姿出發(fā),焊接所有焊點(diǎn),回到作業(yè)原點(diǎn),求路程或時(shí)間最短。假設(shè)把機(jī)械臂所要焊接的點(diǎn)編號(hào)為1,2,3…,n。
2.1 遺傳編碼方式
用遺傳算法來求解機(jī)械臂軌跡規(guī)劃問題時(shí),首先要確定問題解的編碼。哈密爾頓問題的求解是一條回路?;诤附有酒奶攸c(diǎn),這里采用順序表示[1]:
假定焊接芯片中所有的焊接點(diǎn)組成一個(gè)列表即為W,給每個(gè)焊接點(diǎn)分配一個(gè)1到n的序列,將這個(gè)序列記為W,即:
用編碼串表示為:
T:1 2 3 4 5 6 7 … n
說明對(duì)焊接芯片的焊接順序從焊接點(diǎn)v1開始,依此經(jīng)過的焊接點(diǎn)為v2,v3,v4,v5,…,vn,然后在返回v1。
2.2 適應(yīng)度函數(shù)
遺傳算法對(duì)一個(gè)個(gè)體(解)的好壞用適應(yīng)度函數(shù)值來評(píng)價(jià),適應(yīng)度函數(shù)值越大,解的質(zhì)量越好。適應(yīng)度函數(shù)是遺傳算法進(jìn)化過程的驅(qū)動(dòng)力,也是進(jìn)行自然選擇的惟一標(biāo)準(zhǔn),它的設(shè)計(jì)應(yīng)結(jié)合求解問題本身的要求而定。根據(jù)機(jī)械臂焊接路徑的特點(diǎn),不同的路徑機(jī)械臂耗能不一樣,而機(jī)械臂耗能可以直接體現(xiàn)在機(jī)械臂轉(zhuǎn)動(dòng)的角度上,所有定義適應(yīng)度函數(shù)的值是一次焊接完所有焊點(diǎn)機(jī)械臂轉(zhuǎn)動(dòng)角度的總和[2]。機(jī)器人機(jī)械臂焊接平面圖如圖2所示。
圖2 機(jī)器人機(jī)械臂焊接的平面圖模型
圖2中實(shí)線部分OA1和A1B1分別代表機(jī)械臂的大臂和小臂,設(shè)∠A1OB1=θ1,∠A2OD=θ2,∠B1A1O=θ3,∠B2A2O=θ4,為了完成從B1到B2的焊接,大臂和小臂所轉(zhuǎn)過的角度和為(θ2-θ1)+(θ4-θ3)。為了方便運(yùn)算,假設(shè)A1B1=OA1,B1、B2分別為焊接芯片上兩個(gè)相鄰的焊點(diǎn),從B1 到B2的焊接,由于A1B1、OA1和OB1的長(zhǎng)度已知,求得∠CA1O1、∠B1OA1,從而求得θ3、θ1的值。同理由A2B2、OB2、OA2的長(zhǎng)度求得θ4、θ2,最后計(jì)算出F(x)=(θ2-θ1)+(θ4-θ3)。
即適應(yīng)度函數(shù)可以定義為:
2.3 遺傳算子
⑴ 選擇
選擇就是從種群里挑選出適應(yīng)性好的個(gè)體,同時(shí)淘汰適應(yīng)性不好的個(gè)體。選擇主要基于個(gè)體適應(yīng)度,適應(yīng)度越高的個(gè)體被選中的概率越大。把適應(yīng)性好的個(gè)體直接遺傳或間接交叉操作產(chǎn)生新的個(gè)體遺傳到下一代。本論文采用了兩種選擇機(jī)制,輪盤賭選擇機(jī)制和選取父代最優(yōu)個(gè)體子代所有個(gè)體的選擇機(jī)制。我們采用輪盤賭選擇方法來選擇。
⑵ 交叉
生物進(jìn)化的核心作用是生物遺傳基因的重組,相對(duì)應(yīng),遺傳算法的核心操作是交叉算子,所謂交叉是指兩個(gè)或兩個(gè)以上的父代個(gè)體的部分結(jié)構(gòu)加以替換重組而生成新個(gè)體的操作。
由于本文編碼方式要求每一條路徑的染色體編碼中不允許出現(xiàn)重復(fù)的基因碼,即每一個(gè)焊點(diǎn)必須并且只能訪問一次[3],所以遺傳算法一般的交叉操作產(chǎn)生子個(gè)體的方法不適用這種編碼方式,交叉算子也只能根據(jù)此編碼方式進(jìn)行設(shè)計(jì),這里采用一致雜交的順序交叉法(OX)[4],具體操作步驟為:
① 從第一個(gè)雙親中隨機(jī)選擇一個(gè)子串(由一個(gè)隨機(jī)數(shù)得到);
② 將子串復(fù)制到一個(gè)空子串的相應(yīng)位置,產(chǎn)生一個(gè)原始后代;
③ 刪除第二雙親中已有的基因,得到原始后代需要的其他基因的排序;
④ 按照這個(gè)基因排序,從左到右將這些基因定位到后代的空缺位置上。
隨機(jī)在串中選擇一組隨機(jī)數(shù):
當(dāng)?shù)趇個(gè)隨機(jī)數(shù)小于0.5時(shí),父代的第i位參與交叉,否則保留。然后所缺的元素由另一父本的相應(yīng)元素保持順序不變來填充。假設(shè)所選交叉位置為2、3、5、7、10,則交叉操作位:
⑶ 變異
變異是指依據(jù)變異概率將個(gè)體編碼串中的某些基因值用其他基因值來替換,從而形成一個(gè)新的個(gè)體。GA中的變異運(yùn)算是產(chǎn)生新個(gè)體的輔助方法,它決定了GA的局部搜索能力,同時(shí)保持種群的多樣性。交叉運(yùn)算和變異運(yùn)算的相互配合,共同完成對(duì)搜索空間的全局搜索和局部搜索。本文采用對(duì)換變異[3],具體操作如下:
隨機(jī)在串中選擇一組隨機(jī)數(shù),假設(shè)第i、j為的隨機(jī)數(shù)是隨機(jī)數(shù)數(shù)列中最小的兩個(gè),則將第i、j兩位對(duì)應(yīng)的基因交換位置。假設(shè)為3、7為:
父本: 1 2 11 12 5 7 9 3 4 6 8 10
子代: 1 2 9 12 5 7 11 3 4 6 8 10
完整的遺傳算法具體過程如圖3所示。
[產(chǎn)生新一代群體][是][否][重
復(fù)
N
代][設(shè)種群規(guī)模為M執(zhí)行M/2][變異運(yùn)算][交叉運(yùn)算][輪盤賭選擇][計(jì)算個(gè)體適應(yīng)度][是否滿足停止準(zhǔn)則][產(chǎn)生初始群體][輸出結(jié)果并結(jié)束]
圖3 遺傳算法的具體過程
3 實(shí)驗(yàn)結(jié)果和分析
隨機(jī)取12個(gè)焊點(diǎn)進(jìn)行模擬仿真,種群規(guī)模為100,交叉概率為0.7,變異概率為0.05,進(jìn)行仿真,結(jié)果如圖4所示。
圖4 遺傳算法仿真結(jié)果
隨機(jī)取16個(gè)焊點(diǎn)進(jìn)行模擬仿真,種群規(guī)模為100,交叉概率為0.7,變異概率為0.05,再次進(jìn)行仿真,結(jié)果如圖5所示。
圖5 遺傳算法仿真結(jié)果
由圖4和圖5可知,遺傳算法在仿真過程中效果很好。應(yīng)用遺傳算法后,機(jī)械臂焊接在實(shí)際應(yīng)用中,能保證時(shí)間上有優(yōu)化,而且在時(shí)間優(yōu)化的情況下,能量也有相應(yīng)的優(yōu)化。
4 結(jié)束語
實(shí)驗(yàn)表明,應(yīng)用遺傳算法的焊機(jī)機(jī)器人的焊接效率在很大程度上得到了提高。與此同時(shí),讓焊機(jī)機(jī)器人具備了一定的路徑規(guī)劃自學(xué)習(xí)能力,摒棄傳統(tǒng)的焊機(jī)機(jī)器人示教-再現(xiàn)方式。由于本文只是單方面從時(shí)間最優(yōu)的角度對(duì)機(jī)械手焊接路徑的規(guī)劃進(jìn)行了研究,因此本系統(tǒng)還需要進(jìn)行更深層次的改進(jìn)和創(chuàng)新。
參考文獻(xiàn):
[1] 汪可.遺傳算法求解TSP問題的研究[J].電腦知識(shí)與技術(shù),2011.9.
[2] 遲寧,王月海.焊接機(jī)器人智能控制程序的研究與實(shí)現(xiàn)[D].北方工業(yè)大學(xué),2011.7.
[3] 王濤,謝仲生.遺傳算法和禁忌搜索算法相結(jié)合在壓水堆換料優(yōu)化中的應(yīng)用[J].第十屆反應(yīng)堆數(shù)值計(jì)算和粒子輸運(yùn)學(xué)術(shù)會(huì)議,2006.
[4] 劉燁,倪志偉,劉慧婷.求解旅行商問題的一個(gè)改進(jìn)的遺傳算法[J].計(jì)算機(jī)工程與應(yīng)用,2007.6.