黃 超, 茅 健, 馬 麗, 向朝興, 王 琛, 阮大文
(上海工程技術(shù)大學(xué) 機械與汽車工程學(xué)院, 上海 201620)
關(guān)節(jié)型工業(yè)機器人憑其良好的空間靈活性和高效、精準等特點,被廣泛應(yīng)用于現(xiàn)代工業(yè)自動化生產(chǎn),如搬運、碼垛、焊接、切割等[1].諸多實際應(yīng)用表明,對機器人的運動軌跡進行規(guī)劃不能僅關(guān)注運動效果和任務(wù)要求,還要考慮工作效率、能量消耗和平穩(wěn)性等因素,從而實現(xiàn)最優(yōu)規(guī)劃[2].迄今國內(nèi)不少學(xué)者圍繞關(guān)節(jié)空間軌跡規(guī)劃的時間最優(yōu)、能量最優(yōu)和沖擊最優(yōu)3個方面展開了大量研究,而時間最優(yōu)的軌跡規(guī)劃也最熱門.
時間最優(yōu)軌跡是指在一定約束條件下,工業(yè)機器人完成相同路徑所用時間最短的軌跡.對關(guān)節(jié)軌跡進行時間優(yōu)化的方法有多種,如采用遺傳算法、粒子群算法、模擬退火算法等[3].殷鳳健[4]采用三次樣條插值方法進行軌跡規(guī)劃,并通過自適應(yīng)遺傳算法對插值時間進行優(yōu)化,但遺傳變異過程中存在收斂速度慢、后期尋優(yōu)效率不高的問題.鄧偉等[5]提出一種基于雙種群遺傳的混沌優(yōu)化算法,提高了進化速度和搜索能力.李國龍等[6]提出了改進粒子群算法,采用動態(tài)變化的慣性權(quán)重實現(xiàn)粒子的個性化搜索,并引入隨機算子和隨機局部搜索,避免陷入局部最優(yōu)解.劉國強等[7]通過添加交叉算子、動態(tài)慣性因子、混沌變異等對粒子群算法作出改進,使群體在迭代初期能以較短時間搜索到最優(yōu)值,迭代后期又能快速準確收斂到最優(yōu)解,顯著提高了搜索結(jié)果的精度.
本文針對線性遞減改變慣性權(quán)重的粒子群優(yōu)化(LPSO)算法易陷入局部收斂的問題,提出基于非線性動態(tài)改變慣性權(quán)重的粒子群優(yōu)化(NPSO)算法,并利用NPSO算法進行關(guān)節(jié)運動時間最優(yōu)求解.
達明TM900型機器人如圖1所示,首先建立機械臂6連桿坐標(biāo)系,如圖2所示.
圖1 TM900型機器人Fig.1 TM900 robot
圖2 連桿坐標(biāo)系Fig.2 Link coordinate system
坐標(biāo)系{O}代表基座參考系,固連于基座底面中心,坐標(biāo)系{Oi}代表連桿i的坐標(biāo)系.由連桿坐標(biāo)系可得到D-H參數(shù)表,見表1.
表1 D-H參數(shù)表Table 1 D-H parameters table
通過D-H參數(shù)和連桿坐標(biāo)系建立機械臂正運動學(xué)方程,相鄰連桿坐標(biāo)系間的變換公式[6]為
(1)
根據(jù)以上各連桿變換矩陣可以建立機械臂末端運動學(xué)模型,得到機械臂末端相對于坐標(biāo)系{O}的總變換矩陣為
60T=10T21T32T43T54T65T=
(2)
式中:c123=cos(θ1+θ2+θ3);s123=sin(θ1+θ2+θ3);其他同理.
(3)
式中:fkine()為正向運動學(xué)求解函數(shù);robot_1為在Matlab中構(gòu)建的機械臂對象;Po、Pe均為正向運動求解得到的位姿矩陣;ctraj()為軌跡規(guī)劃函數(shù);Pc為將整條路徑劃分為3段可獲得4個路徑點的位置矩陣;Xji為機械臂末端在第i個路徑節(jié)點通過逆運動學(xué)求解得出的第j個關(guān)節(jié)的角度,得到前3個關(guān)節(jié)的關(guān)節(jié)角度,見表2.
表2 路徑節(jié)點坐標(biāo)和關(guān)節(jié)逆解Table 2 Path node coordinates and joint inverse solutions
工作路徑1→2→3→4如圖3所示,可劃分為3段,機械臂末端在初始位置1和終止位置4處的速度和加速度均為0,起始段1→2采用3次多項式插值,中間段2→3采用5次多項式插值,終止段3→4采用3次多項式插值.使用3-5-3多項式插值函數(shù)進行軌跡規(guī)劃,具備有效減小機構(gòu)沖擊,計算量小等優(yōu)點.
圖3 工作路徑Fig.3 Work path
關(guān)節(jié)j的運動位置與時間的關(guān)系式分為以下幾種情況.
當(dāng)0≤t≤t1時,為
(4)
當(dāng)t1≤t≤t1+t2時,為
(5)
當(dāng)t1+t2≤t≤t1+t2+t3時,為
(6)
式中:未知系數(shù)aj1i,aj2i,aj3i(j=1,2,3,…,6)分別為第j個關(guān)節(jié)軌跡第1,2,3段插值函數(shù)的第i個系數(shù),θj1(t),θj2(t),θj3(t)分別為第j個關(guān)節(jié)第1,2,3段的多項式軌跡.
已知條件:1) 第j個關(guān)節(jié)的4個插值點分別為Xj1,Xj2,Xj3,Xj4;2) 第j個關(guān)節(jié)在第1個插值點(初始點)和第4個插值點(終點)的速度和加速度均為0;3) 第j個關(guān)節(jié)在4個插值點處的速度和加速度均連續(xù).將已知條件代入式(4)至式(6)中得到矩陣方程
A·a=ba=A-1·b
(7)
故當(dāng)3段時間t1、t2、t3確定時,可解出系數(shù)矩陣a,然后將其回代入式(4)至式(6)中,可得到關(guān)節(jié)j的3段運動學(xué)方程,為
采用改進粒子群算法尋求最短的關(guān)節(jié)運動時間,對機械臂的每個關(guān)節(jié)單獨進行優(yōu)化,選取單個關(guān)節(jié)完成運動所用的時間(t1、t2、t3)組成一個三維粒子群,隨機生成N個粒子,粒子的適應(yīng)度函數(shù)為
fitness=t1+t2+t3
(8)
式中,t1,t2,t3分別為起始段、中間段、終止段的關(guān)節(jié)運動時間.
根據(jù)適應(yīng)度函數(shù)計算粒子的適應(yīng)度值,選取當(dāng)代粒子中適應(yīng)度值最小的作為局部最優(yōu)粒子pbest,迭代n次后所有粒子中適應(yīng)度值最小的作為全局最優(yōu)粒子gbest,可得
(9)
(10)
(11)
式中:k為當(dāng)前迭代次數(shù);n為全局總迭代次數(shù).
本文引入一種非線性動態(tài)調(diào)整ω的方法,首先定義粒子i與粒子j間的相似度公式為
(12)
式中:d(i,j)為第i個粒子與第j個粒子的歐氏距離;dmax為空間粒子的最大距離.當(dāng)d(i,j)→0時,s(i,j)=1;當(dāng)d(i,j)→dmax時,s(i,j)=0,且s(i,j)?(0,1).故兩個粒子距離越近,相似度就越高.
(13)
除滿足普通約束條件外,機器人關(guān)節(jié)由伺服電機驅(qū)動,速度v和加速度a均有能安全工作的范圍值,不能超過規(guī)定的最大速度vmax和最大加速度amax,具體約束條件見表3.
表3 關(guān)節(jié)運動約束條件Table 3 Joint motion constraints
求解關(guān)節(jié)運動最優(yōu)時間的步驟如下.
Step1針對關(guān)節(jié)j的3段運動,隨機產(chǎn)生N個粒子(t1、t2、t3),ti為[1,2]上的隨機數(shù),構(gòu)成初始種群,并初始化粒子的位置和速度.
Step2根據(jù)產(chǎn)生的N個插值時間組合代入式(7),可求解出系數(shù)矩陣a,進而得到關(guān)節(jié)j的3段運動學(xué)方程.
Step4經(jīng)n次迭代后,選出適應(yīng)度值最小的粒子,即為最優(yōu)粒子.
Step5完成所有關(guān)節(jié)的時間優(yōu)化后,每段時間取各關(guān)節(jié)在該段時間中的最大值t1=max(tj1)、t2=max(tj2)、t3=max(tj3),以確保所有關(guān)節(jié)都能滿足運動學(xué)約束.具體求解流程如圖4所示.
圖4 求解流程Fig.4 Solution flow
針對關(guān)節(jié)1,按Step1至Step4進行時間優(yōu)化:隨機產(chǎn)生N=20個初始粒子,總迭代次數(shù)n=50,達到最優(yōu)解的迭代次數(shù)記為m.在其他條件相同前提下,慣性權(quán)重ω分別采用式(11)和式(13)變化,分析其對算法的收斂速度和解的精度的影響.共進行8組試驗,每組試驗包含LPSO和NPSO優(yōu)化后的結(jié)果,數(shù)據(jù)記錄見表4.
表4 關(guān)節(jié)1的優(yōu)化數(shù)據(jù)Table 4 Optimization data of joint 1
關(guān)節(jié)1的第1組試驗迭代曲線如圖5所示.LPSO曲線在第22次迭代時就已經(jīng)達到收斂,收斂時粒子的適應(yīng)度為4.720 4,而NPSO曲線一直到第50次迭代結(jié)束才達到收斂,收斂時粒子的適應(yīng)度為4.601 3,比LPSO的收斂適應(yīng)度更小.因此可得到結(jié)論:盡管LPSO比NPSO的收斂速度快,但是解的精度不如NPSO算法.第2、3、4組曲線如圖6至圖8所示,也證實了該結(jié)論的正確性.
圖5 第1組迭代曲線Fig.5 Iterative curves of group 1
圖6 第2組迭代曲線Fig.6 Iterative curves of group 2
圖7 第3組迭代曲線Fig.7 Iterative curves of group 3
圖8 第4組迭代曲線Fig.8 Iterative curves of group 4
本文目的在于求解出最優(yōu)時間,因此選用NPSO算法進行關(guān)節(jié)運動時間優(yōu)化.關(guān)節(jié)1的第8組試驗為最優(yōu)組.同理,采用NPSO算法分別對關(guān)節(jié)2和關(guān)節(jié)3進行優(yōu)化,試驗數(shù)據(jù)記錄見表5和表6.關(guān)節(jié)2的第3組試驗為最優(yōu)組,關(guān)節(jié)3的第6組試驗為最優(yōu)組.
表5 關(guān)節(jié)2的優(yōu)化數(shù)據(jù)Table 5 Optimization data of joint 2
表6 關(guān)節(jié)3的優(yōu)化數(shù)據(jù)Table 6 Optimization data of joint 3
關(guān)節(jié)1,2,3的最優(yōu)試驗組對應(yīng)的各段時間分量見表7,t1時間段內(nèi)3個關(guān)節(jié)同時處于運動狀態(tài),t1越小關(guān)節(jié)速度和加速度越大,為保證各個關(guān)節(jié)都能滿足運動約束條件,t1=max(tj1),tj1為第j個關(guān)節(jié)在第1段的運動時間,同理取t2=max(tj2)、t3=max(tj3),因此得到最終的最優(yōu)時間組合為(1.466 7,1.129 1,1.844 4),總時間為4.440 2 s,與優(yōu)化前相比縮短了1.559 8 s,縮短約26%.
表7 最優(yōu)時間分量Table 7 Optimal time component
優(yōu)化前后的位置,速度,加速度曲線如圖9至圖11所示.未優(yōu)化前,關(guān)節(jié)j給定時間組合為t1=2、t2=2、t3=2,按3-5-3插值函數(shù)運動,關(guān)節(jié)j的運動曲線均連續(xù),圖10(a)所示速度的絕對值最大值約為0.3,遠小于vmax(vmax=2),圖11(a)所示加速度的絕對值最大值約為0.7 經(jīng)優(yōu)化后,各曲線段運動時間有所縮短,位置曲線較之前更平滑,如圖9(b)所示;速度的絕對值最大值約為0.41,較之前有所提高,如圖10(b)所示;加速度的絕對值最大值約為1.2,已非常趨近amax,如圖11(b)所示. 圖9 優(yōu)化前后的位置曲線Fig.9 Position curves before and after optimization 圖10 優(yōu)化前后的速度曲線Fig.10 Velocity curves before and after optimization 圖11 優(yōu)化前后的加速度曲線Fig.11 Accelerated velocity curves before and after optimization 本文針對機械臂關(guān)節(jié)空間軌跡規(guī)劃的時間最優(yōu)問題,提出NPSO算法,并對比分析LPSO算法和NPSO算法的性能.結(jié)果表明:在收斂速度方面,LPSO算法比NPSO算法快;而在解的精度方面,NPSO算法比LPSO算法更精確.最終選用NPSO算法進行關(guān)節(jié)運動時間優(yōu)化,優(yōu)化后運動時間由原來的6 s縮短為4.440 2 s,縮短約26%,達到了優(yōu)化目的.與遺傳算法等優(yōu)化方法相比,使用粒子群算法進行優(yōu)化不僅結(jié)構(gòu)簡單易于實現(xiàn),并且能在較短時間內(nèi)快速搜索到最優(yōu)值.通過提高解的精度,使得關(guān)節(jié)運動時間進一步縮短,證明了NPSO算法的可行性和有效性. 本文采用3-5-3多項式插值方法得到關(guān)節(jié)加速度曲線,存在局部過渡不均和插值節(jié)點有增減時計算需重新進行的問題,雖然NPSO算法實現(xiàn)了時間優(yōu)化,但該算法的收斂速度存在缺陷,后續(xù)將在這些方面展開進一步研究.4 結(jié) 語