蘇 俊 熊瑞平 溫記明 李云秋 譚 平
(四川大學(xué)機(jī)械工程學(xué)院,四川成都 610041)
伴隨著中國(guó)從制造業(yè)大國(guó)邁向制造業(yè)強(qiáng)國(guó)的產(chǎn)業(yè)升級(jí)趨勢(shì),工業(yè)機(jī)器人在大批量生產(chǎn)中被越來(lái)越多的使用[1]。在本文工況中,待處理工件有4處位置點(diǎn)需要進(jìn)行去毛刺打磨操作,考慮到工件的大批量處理,因此設(shè)計(jì)使用工業(yè)機(jī)器人進(jìn)行去毛刺打磨處理操作并規(guī)劃?rùn)C(jī)器人運(yùn)動(dòng)軌跡,使得機(jī)器人運(yùn)動(dòng)平穩(wěn)且運(yùn)行時(shí)間最短,從而提高工件打磨效率。機(jī)器人路徑規(guī)劃算法是工業(yè)機(jī)器人技術(shù)的重要組成部分,常用的機(jī)器人運(yùn)動(dòng)軌跡規(guī)劃優(yōu)化目標(biāo)有運(yùn)動(dòng)時(shí)間最優(yōu)、能量最優(yōu)以及混合最優(yōu)目標(biāo)等優(yōu)化目標(biāo)[2]。本文以時(shí)間最優(yōu)作為優(yōu)化目標(biāo),通過(guò)優(yōu)化軌跡路徑參數(shù)使得軌跡運(yùn)動(dòng)時(shí)間最短[3-7]。
常用的規(guī)劃軌跡有樣條軌跡、多項(xiàng)式軌跡和分段軌跡等方式[8-9]。其中樣條曲線軌跡求解相對(duì)復(fù)雜[10-11],多項(xiàng)式軌跡常用三次、五次、七次多項(xiàng)式進(jìn)行軌跡優(yōu)化,三次多項(xiàng)式曲線求解簡(jiǎn)單但加速度不連續(xù),沿規(guī)劃路徑運(yùn)動(dòng)不平穩(wěn)[12];單條5次多項(xiàng)式軌跡能夠保證運(yùn)動(dòng)的穩(wěn)定性,但其適應(yīng)能力較差,容易因?yàn)橐粌蓚€(gè)點(diǎn)造成整個(gè)曲線的變形[13];高階的7次規(guī)劃曲線,求解較復(fù)雜且會(huì)出現(xiàn)龍格現(xiàn)象,其求解出的值準(zhǔn)確度更低[14]。本文選取3次-5次-3次三段多項(xiàng)式軌跡方法,該曲線在保證規(guī)劃曲線位移、速度和加速度連續(xù),機(jī)器人運(yùn)行平穩(wěn)的同時(shí),通過(guò)3段方程提高了軌跡對(duì)中間點(diǎn)位的適應(yīng)能力,避免受限于中間點(diǎn)造成軌跡扭曲的問(wèn)題,提高了軌跡過(guò)度點(diǎn)平滑性[15];同時(shí)約束方程最高求解次數(shù)為5次,保留了多項(xiàng)式軌跡計(jì)算簡(jiǎn)單的優(yōu)勢(shì)。常用的軌跡優(yōu)化方法有粒子群算法、蟻群算法和遺傳算法等。本文引入粒子群算法進(jìn)行軌跡優(yōu)化,粒子群算法成熟度高、求解能力強(qiáng)。但是,粒子群算法的缺點(diǎn)是算法較早熟,容易過(guò)早陷入局部最優(yōu)。因此,本文通過(guò)融合免疫操作的方法對(duì)粒子群算法進(jìn)行改進(jìn),增強(qiáng)粒子群算法的搜索能力,通過(guò)改進(jìn)后的粒子群算法提高機(jī)器人運(yùn)行效率;并利用本文的軌跡規(guī)劃問(wèn)題,將融合免疫操作的改進(jìn)粒子群算法與傳統(tǒng)粒子群算法、傳統(tǒng)可變參數(shù)改進(jìn)粒子群算法進(jìn)行對(duì)比,考察本文算法的性能。
本文研究利用工業(yè)機(jī)器人進(jìn)行工件去毛刺打磨工作,針對(duì)機(jī)器人在笛卡爾空間中的4個(gè)位姿點(diǎn)位進(jìn)行軌跡規(guī)劃,減少工作時(shí)間,提高工件處理效率。
待處理工件為異型梯形工件,需要對(duì)4個(gè)柱體端面進(jìn)行去毛刺打磨,如圖1所示。
圖1 打磨處理位置
4個(gè)打磨位姿點(diǎn)放置在機(jī)器人空間坐標(biāo)系中,分布如表1所示。
表1 目標(biāo)點(diǎn)末端位姿
其中Ti表示第i點(diǎn)的空間位姿。本文引入庫(kù)卡KR16-2型工業(yè)機(jī)器人進(jìn)行去毛刺打磨操作,其改進(jìn)DH參數(shù)如表2所示。
表2 機(jī)器人改進(jìn)D-H參數(shù)
其中,i表示機(jī)器人第i軸 、αi表示連桿扭轉(zhuǎn)角、ai表示連桿長(zhǎng)度、θi表 示關(guān)節(jié)轉(zhuǎn)角、di表示連桿偏移距離。為確定機(jī)器人的運(yùn)動(dòng)范圍是否滿(mǎn)足工況需求,使用蒙特卡洛法[16]計(jì)算機(jī)器人的工作空間,利用Matlab開(kāi)源機(jī)器人運(yùn)動(dòng)學(xué)工具箱Robot Tool Box[17]進(jìn)行運(yùn)動(dòng)學(xué)建模仿真驗(yàn)證。算法代入大量隨機(jī)點(diǎn)近似遍歷機(jī)器人運(yùn)動(dòng)空間,仿真得到機(jī)器人工作空間范圍。代入5 000組隨機(jī)角度值計(jì)算機(jī)器人工作空間范圍,保留運(yùn)算結(jié)果數(shù)據(jù),輸出點(diǎn)位分布如圖2所示。
圖2 機(jī)器人工作空間范圍
機(jī)器人工作空間近似為一個(gè)高度值范圍[-1 000,1 400]mm ,半徑1 600 mm的橢球體空間,包含4個(gè)目標(biāo)位置點(diǎn)位,符合工況需求。利用機(jī)器人學(xué)工具箱求解笛卡爾空間位姿對(duì)應(yīng)的關(guān)節(jié)空間逆解,結(jié) 果如表3所示,其中Pi表 示第i點(diǎn)的關(guān)節(jié)角弧度值。
表3 關(guān)節(jié)空間逆解結(jié)果rad
針對(duì)機(jī)器人關(guān)節(jié)空間軌跡規(guī)劃,使用3-5-3三段多項(xiàng)式曲線進(jìn)行軌跡規(guī)劃,在保證曲線連續(xù)、速度和加速度連續(xù)的基礎(chǔ)上利用3段分段軌跡增強(qiáng)軌跡對(duì)位姿點(diǎn)位的適應(yīng)能力。設(shè)3段曲線角度為q1~q3,曲線參數(shù)aij表 示第i段曲線第j個(gè)參數(shù),3段運(yùn)動(dòng)時(shí)間參數(shù)分別為t1~t3,可得到關(guān)節(jié)空間中軌跡位置關(guān)系滿(mǎn)足函數(shù)關(guān)系式(1),軌跡速度方程滿(mǎn)足函數(shù)關(guān)系式(2),軌跡加速度方程滿(mǎn)足函數(shù)關(guān)系式(3)。
設(shè)關(guān)節(jié)空間中4個(gè)目標(biāo)點(diǎn)轉(zhuǎn)角位置分別為Q1~Q4,為保證機(jī)器人運(yùn)動(dòng)軌跡平滑穩(wěn)定無(wú)沖擊,根據(jù)分段軌跡約束條件,初始點(diǎn)Q1和 終點(diǎn)Q4滿(mǎn)足速度和加速度為0,路徑點(diǎn)之間的位置、速度及加速度連續(xù),3段軌跡運(yùn)行時(shí)間分別是tl1~tl3,約束表達(dá)式分別有位置連續(xù)約束方程(4)、速度連續(xù)約束方程(5)和加速度連續(xù)約束方程(6)。
將上述約束方程組寫(xiě)作q=a×A,其中q為包含路徑點(diǎn)Q1~Q4的向量,a包含曲線參數(shù)aij的運(yùn)動(dòng)方程系數(shù),A為包含運(yùn)動(dòng)時(shí)間t1~t3的方陣。公式變形為a=q×A-1,求解軌跡方程系數(shù)aij,即為最優(yōu)狀態(tài)下的軌跡曲線方程。
本文的軌跡優(yōu)化目標(biāo)為機(jī)器人運(yùn)行時(shí)間最優(yōu),即在滿(mǎn)足軌跡約束條件下機(jī)器人沿軌跡運(yùn)行時(shí)間最短。3-5-3多項(xiàng)式軌跡由3段軌跡組成,總運(yùn)行時(shí)間即為3段之和,即tl=tl1+tl2+tl3,使用智能算法對(duì)軌跡的14個(gè)參數(shù)(aij)同時(shí)進(jìn)行優(yōu)化,使得機(jī)器人沿軌跡運(yùn)行時(shí)間值最少。同時(shí)每一機(jī)器人關(guān)節(jié)有運(yùn)行速度與加速度限制,得到優(yōu)化目標(biāo)函數(shù)表達(dá)式(7),其中目標(biāo)函數(shù)f(tl)表示3段時(shí)間之和最小,限制條件為運(yùn)行角速度ω值小于等于限制速度ωmax,運(yùn)行角加速度α值小于等于角加速度限制 αmax。
粒子群算法是上世紀(jì)90年代提出的一種智能優(yōu)化算法,通過(guò)多個(gè)粒子迭代探索最值問(wèn)題的最優(yōu)解[18],其表達(dá)式如式(8)。
式中:i表示當(dāng)前種群中某一粒子,t表示粒子迭代次數(shù),d表示粒子維度;表示粒子位置值,表示粒子速度;pid表示當(dāng)前粒子在迭代中的歷史最優(yōu)位置;pgd表示全局最優(yōu)位置;步長(zhǎng)ω和學(xué)習(xí)因子c1和c2是分布在[0~1]之間的隨機(jī)數(shù)。為適應(yīng)本文的優(yōu)化目標(biāo),粒子位置xid的3個(gè)維度分別設(shè)置為3段軌跡的運(yùn)行時(shí)間tl1~tl3,建立粒子群適應(yīng)度公式如式(9)。
粒子群算法計(jì)算簡(jiǎn)單、運(yùn)算效率高,一經(jīng)問(wèn)世便被應(yīng)用在各個(gè)領(lǐng)域。但是粒子群算法容易早熟,過(guò)早進(jìn)入局部最優(yōu),往往難以求出更優(yōu)秀的全局解[19-20]。改善粒子群算法早熟缺陷的常用方式是引入可變參數(shù),例如線性遞減參數(shù)法、自適應(yīng)權(quán)重法、隨機(jī)參數(shù)權(quán)重法等;可變參數(shù)法在早期降低學(xué)習(xí)因子c1和c2的值,提高步長(zhǎng)ω的值,在早期提高算法的全局搜索能力,在后期提高算法局部搜索能力,優(yōu)化算法在整體和局部的搜索能力[21-22]。參數(shù)因子設(shè)計(jì)公式如式(10)。
通過(guò)引入可變參數(shù)的粒子群算法,能夠在一定程度上改善粒子群算法容易陷入局部最優(yōu)的問(wèn)題,但可變參數(shù)法全局探索能力仍然限制較大、效果不夠好[23]。
為了更好地改進(jìn)粒子群算法,提高軌跡規(guī)劃能力,本節(jié)通過(guò)融合免疫算法的操作對(duì)粒子群算法進(jìn)行改進(jìn)。免疫算法參考生物的免疫系統(tǒng),其核心概念是抗體多樣性、免疫記憶與免疫接種[24]。在運(yùn)用免疫算法進(jìn)行問(wèn)題求解時(shí),抗原代表了滿(mǎn)足約束關(guān)系的最優(yōu)解,抗體為當(dāng)前候選解。抗體與抗原之間的親和力值反映了當(dāng)前解的優(yōu)秀程度,抗體和抗體之間的親和力反映了候選解的多樣性。免疫記憶反應(yīng)指從記憶庫(kù)中搜索該類(lèi)問(wèn)題的較優(yōu)解記憶粒子作為抗體,模擬與抗原最優(yōu)解反應(yīng)所產(chǎn)生的抗體值。免疫接種模擬了接種疫苗治療相應(yīng)病癥的手段,通過(guò)有指導(dǎo)、有目的地對(duì)種群粒子進(jìn)行修改,從而提高種群粒子多樣性、抑制優(yōu)化過(guò)程中的退化效應(yīng),提高算法搜索性能[25]。免疫算法操作依賴(lài)的計(jì)算參數(shù)有濃度、濃度選擇概率、適應(yīng)度概率、和免疫替換概率等。粒子濃度計(jì)算如式(11),其中xi表示粒子i,D(xi)表示粒子i的抗體濃度,N表示種群數(shù)量,f(xi)表 示粒子i適應(yīng)度函數(shù)值。
推導(dǎo)出粒子濃度概率公式(12),其中PD(xi)表示粒子i濃度概率值。
粒子i適應(yīng)度概率計(jì)算式為式(13),其中PF(xi)表 示粒子適應(yīng)度概率,psum表示個(gè)體最優(yōu)適應(yīng)度值。
免疫替換概率計(jì)算式為式(14),表明當(dāng)前粒子多大程度上需要進(jìn)行替換操作,rand為范圍在[0-1]的隨機(jī)數(shù)。PR(i)表 示粒子i的免疫替換概率。
免疫替換生成公式為式(15),其中rang為設(shè)置的范圍設(shè)定值。當(dāng)免疫替換概率值PRi超過(guò)設(shè)定值,則進(jìn)行免疫替換操作。
本文在基本粒子群算法的基礎(chǔ)上進(jìn)一步引入免疫操作,利用免疫算法的濃度挑選機(jī)制,抑制近似的高濃度解,促進(jìn)邊緣的低濃度解,同時(shí)通過(guò)免疫接種操作對(duì)種群進(jìn)行有指導(dǎo)、有目的地替換,提高種群多樣性,從而提高改進(jìn)粒子群算法的搜索能力。這一算法流程圖如圖3所示。
圖3 算法流程圖
應(yīng)用改進(jìn)粒子群算法對(duì)機(jī)械臂進(jìn)行3-5-3分段軌跡規(guī)劃,算法主要流程步驟為:
Step1在粒子搜索空間中隨機(jī)生成N個(gè)粒子,初始化粒子位置與速度。
Step2求解粒子對(duì)應(yīng)的軌跡系數(shù),計(jì)算當(dāng)前軌跡角速度與角加速度大小。若角速度和角加速度超過(guò)設(shè)定值,表明粒子不滿(mǎn)足角速度和角加速度限制要求,將其適應(yīng)度值設(shè)置為極大值常數(shù)C。若角速度與角加速度滿(mǎn)足限制要求,計(jì)算粒子適應(yīng)度值。
Step3計(jì)算粒子歷史最優(yōu)值pid和全局最優(yōu)值pgd。
Step4計(jì)算兩代間最優(yōu)適應(yīng)度差值是否小于設(shè)定值di f,若兩代間適應(yīng)度差值小于設(shè)定值,則表明搜索算法陷入局部最優(yōu),全局搜索能力較弱,此時(shí)進(jìn)行免疫操作。首先計(jì)算種群粒子濃度概率、適應(yīng)度概率、免疫替換概率,若免疫替換概率大于設(shè)定值則對(duì)種群粒子進(jìn)行免疫替換操作。
Step5利用粒子群算法對(duì)種群進(jìn)行迭代,更新粒子位置與速度。
Step6判斷迭代次數(shù)是否滿(mǎn)足設(shè)定值,若滿(mǎn)足設(shè)定次數(shù)則輸出結(jié)果,算法結(jié)束;若還未滿(mǎn)足迭代次數(shù),則返回Step2循環(huán)算法。
為考察改進(jìn)后算法的性能,選取算法測(cè)試函數(shù)對(duì)算法性能進(jìn)行考察,對(duì)比傳統(tǒng)粒子群、傳統(tǒng)變參數(shù)改進(jìn)粒子群和本文提出的免疫粒子群3種算法的性能,以衡量新算法的改進(jìn)效果。本文選取Griewank function、Ackley function、Schaffer2 function和Levy function這4種主流的具有多局部最小值,求解難度較大的測(cè)試函數(shù)。4種測(cè)試函數(shù)全局最小值均為0,實(shí)驗(yàn)以測(cè)試函數(shù)函數(shù)值作為適應(yīng)度進(jìn)行迭代計(jì)算。設(shè)置粒子群種群個(gè)體數(shù)為N=20,總迭代次數(shù)設(shè)置為K=100。對(duì)于傳統(tǒng)粒子群算法,步進(jìn)參數(shù)ω 設(shè)置為0.5,學(xué)習(xí)因子c1和c2設(shè)置為 0.35;對(duì)于可變參數(shù)改進(jìn)粒子群算法,步進(jìn)參數(shù)ω設(shè)置最大值 ωmax=0.9,最小值ωmin=0.2,學(xué)習(xí)因子c1和c2最大值設(shè)置為c1max=c2max=0.5,最小值設(shè)置為c1min=c2min=0.2。對(duì)于融合免疫操作的改進(jìn)粒子群算法,代間適應(yīng)度差值閾值di f設(shè)置為di f=0.05,免疫替代概率Prep設(shè)置為Prep=0.01,免疫粒子生成范圍參數(shù)rang設(shè) 置為rang=1。對(duì)每一測(cè)試函數(shù)分別使用3種算法重復(fù)100組求解實(shí)驗(yàn),每一組總迭代次數(shù)設(shè)置為100代,同時(shí)計(jì)算第10代、20代、50代、100代平均適應(yīng)度值,實(shí)驗(yàn)結(jié)果如表4所示。
分析表4的實(shí)驗(yàn)結(jié)果,本文所提出的融合免疫操作的改進(jìn)粒子群算法在4種主流測(cè)試函數(shù)中,相較于傳統(tǒng)粒子群算法和傳統(tǒng)改進(jìn)粒子群算法均體現(xiàn)出了較大的優(yōu)勢(shì)。在第100代適應(yīng)度結(jié)果中,除在Griewank function測(cè)試函數(shù)中免疫粒子群算法適應(yīng)度降為改進(jìn)粒子群算法一半以外,其他3種測(cè)試函數(shù)中免疫粒子群算法適應(yīng)度值相較于其他兩種傳統(tǒng)求解算法均小于1個(gè)數(shù)量級(jí)以上,特別是在Schaffer2 function測(cè)試中小于5個(gè)數(shù)量級(jí),體現(xiàn)了免疫粒子群算法求解能力的優(yōu)勢(shì)。同時(shí)在第10代、20代、50代中,免疫粒子群算法適應(yīng)度值均小于其他兩種傳統(tǒng)算法,且適應(yīng)度降低速度更快,體現(xiàn)了免疫粒子群算法迭代能力的優(yōu)勢(shì)。對(duì)比表格數(shù)據(jù),可以得出本文所提出的融合免疫操作的改進(jìn)粒子群算法在迭代求解能力、求解結(jié)果上均優(yōu)于傳統(tǒng)粒子群算法及傳統(tǒng)改進(jìn)粒子群算法。
表4 測(cè)試函數(shù)適應(yīng)度均值
在考察本文所提出的算法對(duì)于主流測(cè)試函數(shù)求解性能后,為了進(jìn)一步對(duì)比驗(yàn)證改進(jìn)后的算法在處理本文軌跡規(guī)劃問(wèn)題上的性能,本文利用傳統(tǒng)粒子群算法、基于變參數(shù)的改進(jìn)粒子群算法和融合免疫操作的改進(jìn)粒子群算法對(duì)機(jī)器人6軸進(jìn)行最短時(shí)間軌跡規(guī)劃求解運(yùn)算,并進(jìn)行適應(yīng)度結(jié)果對(duì)比。設(shè)定機(jī)器人各軸角速度限制設(shè)置為 ωmax≤2.88 rad/s2,角加速度限制設(shè)置為αmax≤45.45 rad/s2,計(jì)算各軸適應(yīng)度曲線。如圖4所示,分別計(jì)算基本粒子群方法(方法1)、可變參數(shù)改進(jìn)粒子群方法(方法2)和本文提出的融合免疫操作的改進(jìn)粒子群方法(方法3)3種方案的各軸適應(yīng)度迭代值。如表5所示,計(jì)算機(jī)械臂6個(gè)軸迭代100次適應(yīng)度最終值f1~f6,6個(gè)軸適應(yīng)度均值fave和六軸適應(yīng)度最大值fmax。如表6所示,對(duì)比1表示方法2相較于方法1在適應(yīng)度上的改進(jìn)效果,對(duì)比2表示方法3相較于方法1在適應(yīng)度上的改進(jìn)效果,對(duì)比3表示方法3相較于方法2在適應(yīng)度上的改進(jìn)效果。s1~s6表示機(jī)器人6根軸的適應(yīng)度優(yōu)化率,save表示平均適應(yīng)度優(yōu)化率,smax表示最大適應(yīng)度優(yōu)化率。從適應(yīng)度迭代結(jié)果來(lái)看,相較于傳統(tǒng)粒子群算法,可變參數(shù)改進(jìn)粒子群算法在機(jī)器人路徑規(guī)劃問(wèn)題中的適應(yīng)度平均改進(jìn)1.4倍,最大值適應(yīng)度改進(jìn)1.522倍;而本文所提出的融合免疫操作的粒子群算法相較于傳統(tǒng)粒子群算法在平均適應(yīng)度上改進(jìn)3倍,最大值適應(yīng)度改進(jìn)2.831倍。根據(jù)圖表結(jié)果,本文所提出的融合免疫操作的改進(jìn)粒子群算法在路徑規(guī)劃問(wèn)題中相較于傳統(tǒng)粒子群算法和傳統(tǒng)改進(jìn)粒子群算法迭代效率更高,適應(yīng)度優(yōu)化更快,適應(yīng)度結(jié)果更優(yōu)秀。
表5 適應(yīng)度值
表6 適應(yīng)度優(yōu)化率
圖4 機(jī)械臂適應(yīng)度曲線
在前述最大適應(yīng)度規(guī)劃條件下,進(jìn)行機(jī)器人各軸路徑規(guī)劃如圖5所示,得到3種不同算法方案下機(jī)械臂6個(gè)軸的角位移、角速度、角加速度曲線。其中圖5a~c分別表示方法1、方法2和方法3的角位移曲線,角位移運(yùn)算終值一致,3種方法均完成了路徑規(guī)劃,機(jī)械臂抵達(dá)指定位置;圖5d~f分別表示方法1、方法2和方法3的角速度曲線,3個(gè)圖中各軸角速度最大值均滿(mǎn)足最大角速度2.88 rad/s限制;圖5g~i分別表示方法1、方法2和方法3的角加速度曲線,3個(gè)圖中各軸角加速度最大值均滿(mǎn)足最大角加速度最大值均滿(mǎn)足最大角加速度45.45 rad/s2限制。機(jī)械臂規(guī)劃軌跡平滑,各軸運(yùn)動(dòng)角速度、角加速度連續(xù)且滿(mǎn)足最大運(yùn)行角速度和角加速限制條件。
圖5 機(jī)械臂路徑規(guī)劃曲線
本文為解決機(jī)械臂路徑規(guī)劃最短時(shí)間問(wèn)題,提出了融合免疫操作的改進(jìn)粒子群算法以改善傳統(tǒng)粒子群算法易陷入局部最優(yōu)的問(wèn)題,使用此算法與傳統(tǒng)粒子群算法和傳統(tǒng)可變參數(shù)改進(jìn)粒子群算法在最短時(shí)間問(wèn)題上進(jìn)行求解對(duì)比。所提出的改進(jìn)算法相較于傳統(tǒng)粒子群算法適應(yīng)度更佳、收斂更快,大大改善了傳統(tǒng)粒子群算法易于早熟、容易陷入局部最優(yōu)的劣勢(shì),縮短了機(jī)械臂路徑規(guī)劃時(shí)間。
綜上所述,本文建立機(jī)器人運(yùn)動(dòng)學(xué)模型,利用分段多項(xiàng)式曲線進(jìn)行軌跡規(guī)劃,通過(guò)融合免疫算法操作改進(jìn)傳統(tǒng)粒子群算法,控制機(jī)器人動(dòng)作,實(shí)現(xiàn)機(jī)器人軌跡控制,提高機(jī)器人工作效率,為工業(yè)機(jī)器人的空間軌跡規(guī)劃提供了一套思路方法。