陳旸CHEN Yang
(漳州職業(yè)技術(shù)學(xué)院智能制造學(xué)院,漳州 363000)
隨著人力成本的日益增加,工業(yè)機(jī)器人在工業(yè)生產(chǎn)領(lǐng)域的應(yīng)用也愈加廣泛,但是在采用工業(yè)機(jī)器人取代傳統(tǒng)人力資源時(shí),制約工業(yè)機(jī)器人生產(chǎn)效率提升的一個(gè)關(guān)鍵環(huán)節(jié)就是路徑規(guī)劃。若采用傳統(tǒng)的示教方式進(jìn)行工業(yè)機(jī)器人路徑規(guī)劃,一是需要耗費(fèi)大量的人力與時(shí)間,二是由肉眼通過觀察得出的規(guī)劃路徑未必是工業(yè)機(jī)器人的最優(yōu)運(yùn)動(dòng)路徑,因此,工業(yè)機(jī)器人路徑規(guī)劃就成為了工業(yè)機(jī)器人工業(yè)應(yīng)用中一個(gè)非常重要的部分。
已有許多文獻(xiàn)研究過了二維空間中機(jī)械手的進(jìn)化算法路徑規(guī)劃[1-3]。染色體由軌跡點(diǎn)列表組成,表示笛卡爾空間中的點(diǎn)或機(jī)器人在某一點(diǎn)的關(guān)節(jié)軸角度,由浮點(diǎn)數(shù)或二進(jìn)制數(shù)進(jìn)行表示。在適應(yīng)性計(jì)算中,許多課題研究都會(huì)綜合考慮路徑長度、軸移動(dòng)角度、工具中心點(diǎn)(TCP)到目標(biāo)位置的距離以及可能發(fā)生的碰撞。
進(jìn)化算法(Evolutionary Algorithms)是一種基于種群的搜索算法,它模仿生物進(jìn)化行為,通過適應(yīng)性函數(shù)判斷最優(yōu)解[4]。進(jìn)化算法基于達(dá)爾文的進(jìn)化論[5],通過選擇算法遺傳優(yōu)秀特征[6]。不同種類的進(jìn)化算法在染色體的表示上有所不同,例如遺傳算法(GA)用二進(jìn)制數(shù)表示染色體,進(jìn)化策略用實(shí)數(shù)表示染色體。
進(jìn)化算法的基本流程圖如圖1 所示。先進(jìn)行種群初始化,然后使用適應(yīng)性函數(shù)篩選出優(yōu)秀個(gè)體,接下來執(zhí)行交叉和變異操作,直到篩選出符合要求的個(gè)體或達(dá)到固定的迭代次數(shù)。
圖1 進(jìn)化算法流程圖
適應(yīng)性函數(shù)的設(shè)計(jì)是決定進(jìn)化算法能否正確收斂的重要因素。算法3 是適應(yīng)性函數(shù)的偽代碼,該偽代碼由三個(gè)因素組成:路徑適應(yīng)度(PF)、關(guān)節(jié)適應(yīng)度(AF)和碰撞適應(yīng)度(CF)。適應(yīng)性函數(shù)公式如下:
在算法1 中,單點(diǎn)交叉操作的迭代是通過群體的所有染色體的列表來完成的。對于每次迭代,都會(huì)生成一個(gè)隨機(jī)數(shù)。如果該值小于交叉率(CR),則選擇并克隆兩條連續(xù)的染色體。在下一步驟中,在CrossoverSingle 函數(shù)中執(zhí)行最后的單點(diǎn)交叉。為此,首先隨機(jī)確定種子點(diǎn),然后交換代表染色體的兩個(gè)軌跡點(diǎn)列表中位于種子點(diǎn)前的部分。
算法1:交叉操作
根據(jù)算法2 中所示的步驟執(zhí)行突變操作。該算法在群體的所有染色體的列表中迭代。每個(gè)染色體都會(huì)產(chǎn)生一個(gè)隨機(jī)數(shù)。如果該值較小,則應(yīng)用突變率(MR)對算子進(jìn)行突變。最后在單點(diǎn)突變過程中執(zhí)行突變操作。
算法2:突變操作
進(jìn)化算法的結(jié)束條件可以根據(jù)實(shí)際需求進(jìn)行設(shè)定,通常會(huì)選擇超過最大迭代次數(shù),低于某個(gè)適應(yīng)度閾值或超過預(yù)定義時(shí)間。在本文中,如果在設(shè)定的迭代次數(shù)內(nèi)找到無碰撞路徑或者在1200 秒之內(nèi)沒有找到符合要求的路徑則算法中止。
算法3:適應(yīng)性函數(shù)值計(jì)算
我們在仿真環(huán)境中進(jìn)行統(tǒng)計(jì)分析,比較不同參數(shù)(如突變率(MR)、交叉率(CR)或選擇方法(SM))的影響。仿真環(huán)境采用ABB 公司提供的軟件RobotStudio 進(jìn)行搭建。如圖2 所示。
圖2 仿真測試環(huán)境
許多參數(shù)對進(jìn)化算法得到的路徑結(jié)果質(zhì)量有直接影響。為了確定最佳參數(shù)集,進(jìn)行了一系列測試。首先,確定算法計(jì)算需要的參數(shù)值:
①起點(diǎn)(WP)1 至5(默認(rèn)值:2,步長:1,最佳值:3)。
②突變率(MR):決定參與突變的染色體數(shù)量,0.1 至0.5(默認(rèn)值:0.3,步長:0.1,最佳值:0.3)。
③交叉率(CR):決定定參與交叉的染色體數(shù)量,0.1至0.8(默認(rèn)值:0.75,步長:0.1,最佳值:0.6)。
④隨機(jī)部分選擇(RPS):決定用于構(gòu)成新種群的隨機(jī)生成的染色體數(shù)量。該值用于控制使用選擇算子從新群體中選擇的染色體數(shù)量和隨機(jī)添加到新群體中的染色體數(shù)量,0.0 到0.5(默認(rèn)值:0.1,步長:0.1,最佳值:0.1)。
所有組合中的每個(gè)參數(shù)集都運(yùn)行了十次,并根據(jù)路徑長度、軸移動(dòng)和計(jì)算時(shí)間對結(jié)果進(jìn)行了比較。運(yùn)行次數(shù)設(shè)置為10 次,因?yàn)槌醪綔y試表明,10 次測試的結(jié)果方差值較低。表1 顯示了分批實(shí)驗(yàn)的結(jié)果。它顯示了所找到的解決方案的成功率、路徑長度、計(jì)算時(shí)間和關(guān)節(jié)移動(dòng)角度。成功率是成功找到路徑的運(yùn)行次數(shù)與總運(yùn)行次數(shù)之間的比率。例如,80%的成功率表明,在給定的時(shí)間內(nèi),十次運(yùn)行中有八次可以找到符合要求的路徑。
表1 算法運(yùn)行結(jié)果
在本文中,我們提出了一種進(jìn)化算法,該算法能夠在單個(gè)機(jī)器人場景中計(jì)算6 自由度工業(yè)機(jī)器人的路徑?;诔晒β?、路徑長度(PL)、關(guān)節(jié)軸移動(dòng)角度(AM)和計(jì)算時(shí)間等維度對該算法進(jìn)行了評估。研究表明,進(jìn)化算法在工業(yè)機(jī)器人路徑規(guī)劃中起到了巨大的作用。進(jìn)化算法的一大優(yōu)點(diǎn)是,外軸有效位置的計(jì)算可以通過適應(yīng)度函數(shù)直接集成到路徑規(guī)劃算法中[7]。未來的研究應(yīng)該進(jìn)一步仔細(xì)考慮進(jìn)化算法的深度應(yīng)用,例如整體進(jìn)化算法(用于優(yōu)化問題)和模糊搜索邏輯(用于搜索問題)。