馬 龍,李長勇,司 慶
(新疆大學機械工程學院,烏魯木齊 830017)
隨著工業(yè)的發(fā)展,機械臂在工業(yè)領域應用的越來越廣泛[1]。機械臂的軌跡規(guī)劃是機械臂控制領域的研究重點,機械臂軌跡規(guī)劃分為笛卡爾空間軌跡規(guī)劃和關節(jié)空間規(guī)劃,笛卡爾空間軌跡規(guī)劃是對機械臂末端執(zhí)行器的軌跡規(guī)劃,而關節(jié)空間軌跡規(guī)劃是對各個關節(jié)角度進行規(guī)劃。目前進行軌跡優(yōu)化的主要是對關節(jié)空間進行軌跡規(guī)劃,目的包括以下4種:縮短運動時間,降低運動能量,減少關節(jié)的運動沖擊,以及綜合考慮多目的[2]。
當前諸多學者對機械臂的軌跡規(guī)劃進行了研究,劉貝貝等[3]為了減少沖擊和振動對機械臂造成的損害,采用一種5次多項式結(jié)合均勻5次B樣條的來進行軌跡規(guī)劃,得到了較為光滑的關節(jié)角度、角速度、角加速度關于時間的變化曲線,減少了運動的沖擊,但是對時間沒有優(yōu)化,無法提升機械臂工作效率;郝晗等[4]進行了遺傳算法的初始種群生成方式、變異算子和交叉算子的構(gòu)造優(yōu)化研究,使用3次B樣條曲線進行軌跡插值,將改善后的遺傳算法運用到軌跡優(yōu)化中,仿真結(jié)果證明該方法有效的縮短了機械臂運行時間,但未考慮機械臂運動中沖擊造成振動與磨損的問題;袁旭華等[5]通過增加控制點對三次B樣條曲線進行完善,并給出了優(yōu)化搜索策略蜂群算法的解決途徑,提高了曲線擬合準確性,并減少了規(guī)劃時間,但是機械臂在軌跡起點的初始加加速度不是零且曲線不平滑,會造成機械臂機運動沖擊過大;孫颙琰等[6]在傳統(tǒng)蝙蝠算法中的局部搜索中加入動態(tài)干擾系數(shù),并改進局部搜索和全局搜索策略,使用5次多項式進行軌跡插值,將時間、能耗和沖擊設為優(yōu)化目標,使用改進算法對機械臂運動進行軌跡優(yōu)化,有效的提高了機械臂的運行效率,但是求解過程復雜,計算耗時長。
目前,機械臂的軌跡優(yōu)化主要把時間最優(yōu)或沖擊最優(yōu)作為單一優(yōu)化目標,機械臂在工廠工作中,要長時間搬運重物,為了提高工作效率、減少關節(jié)磨損,綜合考慮機械臂運動時間和沖擊,進行六自由度機械臂軌跡優(yōu)化研究。利用5次B樣條在關節(jié)空間構(gòu)造插值曲線,并加入雞群優(yōu)化算法。將鯨魚算法與蜉蝣算法融入到雞群優(yōu)化算法中,提高算法收斂速度;引入萊維飛行策略,進而提升算法全局搜索能力;引入變異操作,防止陷入局部最優(yōu)。通過改進的雞群優(yōu)化算法對時間和沖擊進行優(yōu)化,規(guī)劃出關節(jié)軌跡,達到縮短時間減小沖擊的目標。
為了研究機械臂軌跡規(guī)劃,對機械臂進行運動學分析必不可少,本文中以埃夫特ER3A-C60型機械臂為研究對象,如圖1所示,其擁有6個關節(jié)并均為旋轉(zhuǎn)副,能承受較大載荷,可以搬運較重的零件。對機械臂關節(jié)建立連桿固連坐標系,如圖2所示。
用標準D-H參數(shù)法對該機械臂進行模型建立,該機械機器臂D-H參數(shù)如表1所示。
表1 D-H參數(shù)
使用MATLAB機器人工具箱建立模型,世界坐標系與機械臂的基坐標系相互重合,減少計算量,機械臂在零位時的模型如圖3所示,借助搭建的模型,可以驗證機械臂正、逆運動學正確性。
圖3 ER3A-C60型機器人模型
(1)
式中:c為cos,s為sin。
(2)
(3)
式中:[n,o,a]3×3表示機械臂末端相對于基坐標的姿態(tài)矩陣,[Px,Py,Pz]T表示機械臂末端相對于基坐標的位置矩陣。
機械臂在工作過程中執(zhí)行器末端在笛卡爾空間會通過一系列軌跡點,{oi},i=0,1,…,m,其中o0代表機械臂末端起始軌跡點,om代表機械臂末端終止軌跡點,通過機械臂逆運動學求解,可以推導出軌跡點對應的關節(jié)空間位置為{θij},j=1,2,…,n,其中n是機械臂關節(jié)的個數(shù)[5]。優(yōu)化目標定義為:
(4)
(5)
式中:F1代表機械臂運動總時間,ti代表從軌跡點oi到oi+1的時間,i=1,2,…,m-1,F2代表機械臂關節(jié)沖擊。
歸一化目標函數(shù)如下:
Ff=KtF1+KjF2+KpFp
(6)
式中:Kt為時間系數(shù),Kj為沖擊系數(shù),Kp為懲罰項系數(shù),設定Kt=0.4,Kj=0.6,Kp=5;Fp是懲罰項,初始值是0,當關節(jié)超過各約束都會使其值增加1。
機械臂運動過程中,需要滿足以下約束函數(shù):
(7)
B樣條曲線具有較高的靈活性,可以進行局部微小的修改操作,而且各個關節(jié)需要滿足關節(jié)角度、角速度、角加速度和角加加速度的約束,使用五次B樣條曲線對機械臂進行軌跡規(guī)劃插值擬合[7-8],得到角度、角速度、角加速度、角加加速度都平滑連續(xù)的函數(shù)曲線。B樣條曲線方程為:
(8)
(9)
式中:u是變量,di是控制頂點,規(guī)定0/0=0;Bi,k(t)是k次B樣條基函數(shù),區(qū)間u∈[ui,ui+k+1]定義節(jié)點矢量U=[u0,u1,u,…,u2k],對于一點ui最多有k+1個非0的k次B樣條Br,k(u),其中r∈[i-1,i],其他k次B樣條基函數(shù)都為0。因此B樣條曲線可另外表示為:
(10)
將插值曲線的定義域轉(zhuǎn)換成規(guī)范定義域,節(jié)點矢量為:
(11)
對時間節(jié)點歸一化,得到:
(12)
得到滿足插值條件的n+1個方程:
(13)
式中:ui+k∈[uk,un+k],i=0,1,…,n。
使用切矢邊條件約束可以得到k-1個條件,5次B樣條曲線可以得到:
(14)
式中:vs和ve是關節(jié)啟停速度,as和ae是關節(jié)啟停加速度。根據(jù)德布爾遞推公式求出各階矢導:
(15)
(16)
根據(jù)上述公式可得個n+5個方程,以矩陣形式表示:
Ajdj=pj
(17)
(18)
通過式(17)可反推求解出控制點:
(19)
根據(jù)式(12)、式(19)、式(9)求出的時間節(jié)點向量、控制頂點向量和B樣條基函數(shù);由式(10)得到關節(jié)在t∈[t0,tn]的軌跡曲線,由式(15)可以得出各階導曲線,可在求解最優(yōu)軌跡規(guī)劃時構(gòu)造約束函數(shù)。
常用的軌跡優(yōu)化算法有遺傳算法,粒子群算法等,但上述算法針對多目標優(yōu)化存在求解精度低,后期迭代速度慢等問題,而雞群優(yōu)化算法不需要對問題進行特殊處理,比如不需要引入特殊的編碼方式、特殊的交配和突變操作等,有著收斂速度快,收斂精度高的優(yōu)點,因此本文選用雞群優(yōu)化算法來進行機械臂的軌跡優(yōu)化。
雞群優(yōu)化算法中種群分為3類:公雞、母雞和小雞,將雞群按適應度值排序,靠前的NR個是公雞,最后的NC個是小雞,剩下的是母雞;將雞群分為NR個組,保證每個組中都有一個公雞,母雞隨機分配到各個組中,與公雞確立跟隨關系;隨機選取NH個母雞,小雞隨機分配到母雞身邊,與母雞確立母子關系。且不同的種群的位置更新方法不同。若第i只雞用i表示,d表示解的維度,表示解中的第j維,G表示當前迭代輪數(shù),則表示在第G輪迭代時,第i只雞在第j維上的位置[9]。公雞的位置更新方法如式(20)、式(21)所示。
(20)
(21)
式中:N(0,σ2)表示均值為0、方差為σ2的正態(tài)分布;k代表不同于公雞i的另一只公雞k,f為每只公雞的最優(yōu)適應度值,ε為計算機中最小的常數(shù),其作用是防止公式中的分母為0造成無法計算。
母雞跟隨自己組中的公雞尋找食物,母雞位置更新方法如式(22)~式(24)所示。
(22)
(23)
S2=exp(fr2-fi)
(24)
式中:R表示區(qū)間[0,1]上的隨機數(shù),abs()表示取絕對值運算,r1為母雞i所在組內(nèi)的公雞,r2為雞群優(yōu)化中除了母雞i和與其同組的公雞r1之外的另一只公雞或母雞。
小雞跟隨自己的母雞進行覓食,小雞的位置更新方法如式(25)所示。
(25)
式中:m表示小雞i的母親,F表示小雞跟隨母雞進行覓食的調(diào)節(jié)參數(shù),由于小雞群優(yōu)化體中的每個個體也存在差異性,因此F為區(qū)間[0,2]上的隨機數(shù)。
公雞的位置更新方式呈現(xiàn)正態(tài)分布,其隨意性造成公雞錯過全局最優(yōu)解,本文將鯨魚算法[10]的包圍機制和蜉蝣算法[11]的速度機制融入公雞的位置更新方式中,增強全局搜索能力,ICSO中的公雞的位置更新方法為:
(26)
(27)
S=2Ab2-A
(28)
(29)
(30)
基于萊維的運動方式是非破壞覓食環(huán)境中覓食者最佳搜索方法[12],為了使母雞和小雞可以更精準的模仿雞的覓食,引入萊維飛行策略,進而提升算法全局搜索能力。ICSO算法中的母雞的位置更新方法為:
(31)
(32)
(33)
式中:L(λ)表示萊維飛行產(chǎn)生的步長,β為常數(shù),取值1.5;μ、v為均值為0、方差為1的正態(tài)分布;Γ為Gamma函數(shù)[13]。
小雞跟隨母雞,為了增強其全局搜索能力,將小雞跟隨母雞進行覓食的調(diào)節(jié)參數(shù)替換成萊維飛行步長,ICSO算法中的小雞位置更新方法為:
(34)
雞群迭代前期,種群差異較大,但是在迭代后期,個體之間差異程度降低,導致種群多樣性降低,致使過早收斂,陷入局部最優(yōu)。為了優(yōu)化雞群優(yōu)化算法這個缺陷,本文引入隨機差分變異操作[14],其定義為:
X(G+1)=Q(pbest-X(G))+Q(X′(G)-X(G))
(35)
式中:Q為差分變異算子,pbest為當前最優(yōu)個體,X′(G)為群體中隨機選出的個體,X(G)為進行變異操作的個體,其作用是對差分值進行縮放。
Q取較大值時,可以讓算法搜索范圍變廣,但是會導致收斂速度減慢;Q取值較小的時候,雖然搜索速度加快,但是會導致陷入局部最優(yōu)。為了避免上述問題,對差分變異算子進行改進,使算法前期搜索大范圍,隨著迭代進行加快搜索速度,進后的定義如下:
(36)
式中:M為最大迭代次數(shù),G為當前迭代次數(shù),rand為[0,1]之間的隨機數(shù)。
雞群迭代前期,不需要對太多個體進行變異操作,因此,設定前期隨機選取變異個體少,隨著迭代進行,種群差異變多,增加變異個體,對變異數(shù)量的設定為:
(37)
式中:min()為取其中最小值,int表示取整操作,Hm為變異數(shù)量上限,定為種群規(guī)模的20%。
算法基本步驟為:
步驟1:對算法參數(shù)初始化,設定雞群大小N、最大迭代次數(shù)M、個體位置維度、公雞母雞小雞的比例;
步驟2:對雞群進行初始化,將雞群按適應度值排序,確定公雞、母雞與小雞,并進行分組,確定母雞與小雞之間的對應關系;
步驟3:開始迭代,判斷是否更新分組,是否跟新集群中的關系,需要則更新;否則公雞、母雞與小雞各自按照式(26)、式(31)、式(34)對自己的位置進行更新,同時計算更新后的適應度值;
步驟4:比較新舊位置適應度值,保留小適應度值的位置;
步驟5:根據(jù)式(35)對種群中隨機個體進行差分變異操作;
步驟6:判斷是否滿足迭代停止條件,若是滿足。那么算法結(jié)束,輸出最優(yōu)解;否則回到步驟3。
為了驗證ICSO的有效性,使用MATLAB R2018A平臺對ICSO進行性能測試仿真試驗,同時添加CSO、WOA兩種算法進行對比。設定群數(shù)量M為30,最大迭代次數(shù)為500次,所有測試函數(shù)如式(38)~(43)所示,實驗結(jié)果如圖4所示。
f1=max{|xi|,1≤i≤n},[-100,100]n
(38)
(39)
(40)
(41)
(42)
(43)
式中:f1為單峰測試函數(shù),用來衡量算法求解精度;f2、f3為多峰測試函數(shù),用來度量算法全局搜索能力;f4、f5、f6為固定維測試函數(shù),用來測試算法的求解復雜多維能力。
由圖4a可知,在求解f1時隨著迭代次數(shù)的增加,ICSO比WOA和CSO達到更低的函數(shù)值,說明ICSO具有更好的收斂精度。由圖4b和圖4c可知,在求解f2、f3時,起始階段ICSO就開始快速收斂,并能跳出局部最優(yōu),求解f2時ICSO盡管收斂速度比WOA慢,但是能在140次左右達到最優(yōu)值,且收斂值比WOA低,而CSO收斂速度慢而且收斂值差;求解f3時盡管3種算法收斂值一樣,但ICSO在前期能多次跳出局部最優(yōu)值,最快到達全局最優(yōu),體現(xiàn)了ICSO良好的全局尋優(yōu)能力。由圖4d~圖4f可知,在求解f4時,ICSO在10次就完成收斂;在求解f5和f6時,ICSO收斂值最低,且不斷跳出局部最優(yōu)解,驗證了ICSO的有效性。
圖4 測試函數(shù)仿真結(jié)果
為了驗證本文提出的ICSO在機械臂軌跡規(guī)劃中的有效性,以埃夫特ER3A-C60型機械臂為研究對象,使用MATLAB中機器人工具箱對其建模,如圖3所示,可通過其中Teach模塊控制機械臂運動。機械臂在笛卡爾空間內(nèi)經(jīng)過一條軌跡,其中包括起始點和終止點的8個軌跡點對應的各個關節(jié)的角度信息如表2所示,將這些關節(jié)角度信息記錄到電腦中。
表2 軌跡點關節(jié)角度
在MATLAB中采用五次B樣條,CSO優(yōu)化和ICSO優(yōu)化分別對起始點到目標點的共8個軌跡點的的運動軌跡規(guī)劃仿真對比實驗。智能算法迭代次數(shù)設置為200次,雞群數(shù)量設置為30,公雞、母雞、小雞的比例為1:2:2,以式(6)中F1、F2為優(yōu)化指標,得出不同方案下的各關節(jié)角度、角速度、角加速度和沖擊隨時間的變化曲線如圖5所示,CSO和ICSO算法軌跡規(guī)劃收斂曲線如圖6所示。
(a) 關節(jié)1
圖6 軌跡規(guī)劃收斂曲線
由圖5可知,ICSO收斂值小于CSO,且在迭代20次、40次時均可跳出局部最優(yōu)。由圖6可知,不同方法下規(guī)劃的曲線都是連續(xù)光滑,但能看出經(jīng)過CSO優(yōu)化和ICSO優(yōu)化,機械臂運動時間減少,沖擊曲線起伏變小。具體的,各段軌跡運行時間、總運行時間如表3所示,不同方案下關節(jié)最大沖擊如表4所示。
表3 不同方案機械臂運動時間 (s)
表4 不同方案下關節(jié)最大沖擊 ((°)·s-3)
由表3可知,CSO優(yōu)化后比B樣條軌跡規(guī)劃的曲線時間減少9%,而ICSO優(yōu)化后時間減少12%。由表4可知,在經(jīng)過CSO優(yōu)化后,比B樣條軌跡規(guī)劃,關節(jié)1沖擊減少42%,關節(jié)2沖擊減少66%,關節(jié)3沖擊減少12%,關節(jié)4沖擊減少65%,關節(jié)5沖擊減少67%;而在ICSO優(yōu)化后,比B樣條軌跡規(guī)劃,關節(jié)1沖擊減少63%,關節(jié)2沖擊減少78%,關節(jié)3沖擊減少25%,關節(jié)4沖擊減少73%,關節(jié)5沖擊減少74%。使用CSO和ICSO軌跡優(yōu)化后關節(jié)最大沖擊減小,但ICSO效果更優(yōu)。因此本文提出的ICSO算法不僅降低了機械臂運行時間,還降低了機械臂運動時的沖擊,延長了機械臂使用壽命。
基于改進雞群優(yōu)化算法的機械臂軌跡規(guī)劃,該算法參考鯨魚算法、蜉蝣算法來改良公雞位置更新方式,引入萊維飛行策略優(yōu)點來改良母雞和小雞的位置更新方式,提升全局搜索能力,并引入變異操作,提高了種群的復雜多樣性,得到收斂速率快,全局搜索能力強大的雞群優(yōu)化算法。
將ICSO應用于機械臂的軌跡優(yōu)化中,并與5次B樣條軌跡規(guī)劃、CSO軌跡優(yōu)化結(jié)果對比,實驗結(jié)果表明,基于ICSO的軌跡優(yōu)化,在機械臂運動中,減少了路徑運動時間,且各個關節(jié)最大沖擊,大大減少,為機械臂軌跡優(yōu)化領域的研究提供一定的借鑒。