叢 明,宋宏祥,劉 冬,杜 宇,潘德華
(1.大連理工大學(xué)機械工程學(xué)院,大連 116024;2.大連交通大學(xué)機械工程學(xué)院,大連 116028)
冗余機械臂在逆運動學(xué)求解時其構(gòu)型可能會導(dǎo)致求解失敗,啟發(fā)式算法能很好的避免此問題,因此近年來被廣泛的應(yīng)用在逆運動學(xué)求解中。YUAN等[1]基于BP和RBF神經(jīng)網(wǎng)絡(luò)算法提出的并行神經(jīng)網(wǎng)絡(luò)逆運動學(xué)算法,將逆運動學(xué)求解問題轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練問題,為保證求解精度需進行大量訓(xùn)練。ANTONIO-GOPAR等[2]使用DE算法對逆運動學(xué)問題進行求解,并在一定程度上對最小位移解進行了篩選,而最小位移目標的引入會導(dǎo)致位姿求解精度的下降。REYES等[3]在傳統(tǒng)的PSO算法基礎(chǔ)上提出一種具有自適應(yīng)探索性的逆運動學(xué)求解算法,通過進化過程中不斷調(diào)整粒子的慣性權(quán)重和加速度系數(shù)來實現(xiàn)自適應(yīng)探索的目的。STARKE等[4]提出一種混合遺傳群算法(HGSA),將PSO算法加入遺傳算法的進化過程,使后代與種群最優(yōu)個體產(chǎn)生新的子代,提高了算法魯棒性,并設(shè)計了一種引入隨機權(quán)重的多目標適應(yīng)度函數(shù),使得子代個體更具適應(yīng)性,而隨機性的引入難以兼顧位置和姿態(tài)求解精度。謝習(xí)華等[5]結(jié)合DE/rand/1/bin和DE/best/1/bin兩種進化模式提出了改進自適應(yīng)變異差分進化(SAMDE)算法,并采用對稱映射法對超出關(guān)節(jié)限制范圍的個體進行處理,與基本DE算法對比,提高了算法的收斂精度和收斂速度。以上算法求解實時性差、收斂速度過慢,且由于迭代次數(shù)過多導(dǎo)致無法難以滿足實際應(yīng)用需求。由于珊瑚礁優(yōu)化(CRO)算法[6-9]全局搜索能力強的特點,應(yīng)用其進行逆運動學(xué)求解時可提高求解質(zhì)量。因此,本文提出一種基于改進CRO算法的機械臂快速逆解分析算法。
本文首先基于MDH法建立了機械臂的運動學(xué)模型及求解逆運動學(xué)問題的優(yōu)化模型,然后介紹了珊瑚礁優(yōu)化算法的改進方法,其次使用標準測試函數(shù)對改進算法進行了驗證,并與其他常見優(yōu)化算法形成對比,最后針對給定軌跡進行逆運動學(xué)求解實驗,驗證本文所提方法可以滿足機械臂逆運動學(xué)求解的實際需求。
如圖1所示,機械臂有7個自由度,包括3個俯仰關(guān)節(jié)和4個轉(zhuǎn)動關(guān)節(jié),采用典型的SRS構(gòu)型,由關(guān)節(jié)變量θ=[θ1,θ2,θ3,…,θ7]T描述其關(guān)節(jié)工作空間。本文基于MDH法建立機械臂的運動學(xué)模型,表1給出了所述機械臂模型的D-H參數(shù)。
圖1 機械臂DH模型
表1 機械臂D-H參數(shù)
已知各關(guān)節(jié)變量θ=[θ1,θ2,θ3,…,θ7]T,末端執(zhí)行器位姿在基坐標系{0}下的描述由0Tt描述:
(1)
式中,7Tt描述末端執(zhí)行器坐標系{t}與機械臂末端關(guān)節(jié)坐標系{7}之間的變換關(guān)系。
(2)
(3)
式中,Rt為給定目標姿態(tài)矩陣;Pt為給定目標位置坐標;Rr為隨機可行解θr所對應(yīng)的姿態(tài)矩陣;Pr為隨機可行解θr所對應(yīng)的位置坐標。
根據(jù)求解目標,建立優(yōu)化模型如下:
minf(θ)=ω1Pe+ω2Re
s.t.θ∈Rn|θk,min≤θk≤θk,max,k=1,2,…,7
(4)
式中,Pe、Re分別為位置誤差、姿態(tài)誤差。
位置誤差Pe可用給定目標位置和隨機可行解θr對應(yīng)位置之間的歐氏距離表示[13]:
(5)
姿態(tài)矩陣描述的是兩個坐標系之間的姿態(tài)變換關(guān)系,通過兩者間姿態(tài)逆變換運算[5]可定義Re為:
(6)
式中,l為當前姿態(tài)機械臂末端與基座之間的長度。
目標函數(shù)可表示為:
(7)
式中,ω1、ω2分別描述位置誤差、姿態(tài)誤差對目標函數(shù)值的貢獻度??紤]要同時保證位置與姿態(tài)的求解精度,本文取ω1=ω2=1。
應(yīng)用改進的CRO算法進行逆運動學(xué)求解時,解的質(zhì)量使用均方根誤差RMSE和平均絕對誤差MAE來評價:
(8)
(9)
傳統(tǒng)CRO算法在進化中后期由于親本多樣性的不足會導(dǎo)致算法停滯搜索。針對該問題,本文對珊瑚蟲種群的初始化方式、外部有性繁殖方式及毀滅機制進行了改進,并引進種群入侵策略,提出基于經(jīng)驗進化的珊瑚礁優(yōu)化(EECRO)算法。
為提高算法的收斂速度,將這種經(jīng)驗向?qū)Р呗砸隒RO算法,在珊瑚蟲個體原有基因?qū)傩缘幕A(chǔ)上增加個體進化速度屬性,種群初始化的具體操作如式(10)所示。
(10)
式中,Ξi為珊瑚礁位置為i上的珊瑚蟲個體;Ξmax為個體最大值;Ξmin為個體最小值;r為0和1之間的隨機數(shù);vi為珊瑚蟲個體初始進化速度;vmax為個體最大進化速度。
對于外部有性繁殖的改進,將原有的交叉變異進化改為基于經(jīng)驗學(xué)習(xí)的變異進化。珊瑚礁i位置上的所有歷代個體組成一個家族,家族中的最優(yōu)個體為Ξit,珊瑚礁上的所有家族構(gòu)成種群,種群中的最優(yōu)個體為Ξgt。
每個家族中個體子代的產(chǎn)生,通過Ξit和Ξgt已有的經(jīng)驗引導(dǎo)來完成。即個體以種群的最優(yōu)個體和家族最優(yōu)個體為學(xué)習(xí)目標,通過對兩者經(jīng)驗的加權(quán)以及原有進化經(jīng)驗得到新的進化經(jīng)驗,從而變異產(chǎn)生新子代。具體操作如下:
(11)
ω=ωstart-(ωstart-ωend)(k/Tmax)2
(12)
式中,Tmax為最大迭代次數(shù);ωstart、ωend分別表示進化開始與進化結(jié)束時的經(jīng)驗遺忘程度。
子代的安置與CRO算法相同,采用隨機安置的方式,被安置的個體與珊瑚礁上的個體進行位置競爭,每個子代具有一定的競爭機會,適者生存。
為保證進化后期的種群多樣性,引入種群入侵策略,參與種群入侵環(huán)節(jié)的群體cin由當前種群中比例為Fin的較優(yōu)群體進行變異操作產(chǎn)生,具體操作如式(13)所示,產(chǎn)生的變異群體與珊瑚種群個體進行位置競爭。
(13)
為適應(yīng)不同進化階段所需的搜索步長,采用高斯-柯西變異算子進行變異操作,如式(14)所示。
(14)
式中,h為高斯-柯西變異算子;rn、rc分別為高斯隨機數(shù)和柯西隨機數(shù)。
為保證進化過程中的種群多樣性不遭受破壞,使用條件毀滅機制代替原有的概率毀滅機制。
當?shù)竭_最大迭代次數(shù)時,若潛在解個體依然未到達要求精度ε,則保留種群中比例為Fd的最優(yōu)個體,對珊瑚礁剩余個體進行全面毀滅,并重置珊瑚礁體上被毀滅的珊瑚蟲個體,重置操作同式(10),算法流程如表2所示。
表2 EECRO算法偽代碼算法
續(xù)表
本文提出的EECRO算法與傳統(tǒng)CRO算法相比,有以下不同:(1)在原有種群初始化基礎(chǔ)上增加個體進化速度屬性,種群協(xié)同進化;(2)增加種群入侵策略保證進化后期種群多樣性;(3)原有概率毀滅機制改為條件毀滅機制,以保護種群多樣性,并可提高問題求解的成功率。
為驗證EECRO算法的有效性,使用GA、DE、HS、ABC、PSO、CRO等算法對表3中的基準測試函數(shù)進行測試,測試結(jié)果與EECRO算法求解結(jié)果進行對比。表3中f1~f5為具有多局部極值的多峰函數(shù),其中f4、f5為低維度測試函數(shù);f6、f7是具有唯一最值的低谷型單峰函數(shù)。
表3 基準測試函數(shù)
為公平起見,EECRO算法取消條件毀滅環(huán)節(jié),所有算法種群大小為100,最大迭代次數(shù)為100次,每種算法重復(fù)獨立運行200次,并記錄算法最佳適應(yīng)度的最差值(Worst)、平均值(Mean)和標準方差(SD)。
部分標準測試函數(shù)的收斂曲線如圖2所示,由此可知,在相同迭代次數(shù)下EECRO的收斂速度明顯快于其他算法。由表4數(shù)據(jù)可得,在給定迭代次數(shù)為100次時,EECRO算法收斂性能高于傳統(tǒng)CRO算法。在多峰函數(shù)上,由于種群入侵策略的作用使得算法進化過程中能夠保證充足的種群多樣性,EECRO具有良好的局部最優(yōu)逃逸能力,而其他算法更易陷入局部最優(yōu)值,由此可見EECRO的深度搜索能力更強;在單峰函數(shù)上,外部有性繁殖方式的改變,使得算法具有良好的局部探索能力,因此其收斂到真值的能力更強。無論是單峰函數(shù)還是多峰函數(shù),與其他算法相比EECRO在大部分測試函數(shù)中標準偏差明顯偏小,說明算法的魯棒性更好、收斂更穩(wěn)定。綜上所述,改進的EECRO算法具有較好的收斂精度和收斂速度。
(a) f1收斂曲線 (b) f2收斂曲線
表4 7種算法獨立計算200次后的測試結(jié)果
機械臂的桿長分別為l1=100 mm、l2=400 mm、l3=400 mm、l4=100 mm;各關(guān)節(jié)角范圍分別為(-3.14,3.14) rad、(-1.83,1.83) rad、(-3.14,3.14) rad、(-2.01,2.01) rad、(-3.14,3.14) rad、(-1.92,1.92) rad、(-3.14,3.14) rad;給定位置求解誤差精度為10-4mm;姿態(tài)求解誤差精度為10-6rad。
假設(shè)任務(wù)要求機械臂末端從初始位姿(P0,R0)運動到目標位姿(Pr,Rt),初始位姿所對應(yīng)關(guān)節(jié)角θ0=[0,π/3,0,π/3,0,π/3,0]T,目標位姿對應(yīng)關(guān)節(jié)角θt=[1.383 4,-0.468 2,0.341 6,-0.108 5,-1.021 0,-0.817 1,-1.383 4]T,由式(1)可得:
n0=[-1,0,0]T
o0=[0,1,0]T
a0=[0,0,-1]T
p0=[-692.8203,0.00,-100.00]T
同理可得目標位姿所對應(yīng)的位姿數(shù)據(jù)為:
nt=[0.7409,-0.6435,0.1922]T
ot=[0.3285,0.0977,-0.9395]T
at=[0.5858,0.7592,0.2837]T
pt=[118.1677,468.0655,721.7624]T
在初始位姿和目標位姿之間進行五次多項式插值,得到的20組軌跡點。接下來針對經(jīng)過插值得到的軌跡數(shù)據(jù)使用EECRO算法進行逆運動學(xué)求解,并同CRO、PSO算法的求解結(jié)果作對比。為保證求解結(jié)果為最小位移解,在進行逆運動學(xué)求解時,應(yīng)使用上一次求解結(jié)果進行種群初始化操作。
在對比實驗中,設(shè)置CRO算法參數(shù)為Fb=0.9,F(xiàn)a=0.01,F(xiàn)d=0.01,Pd=0.1,k=3;PSO算法參數(shù)為ωstart=0.9,ωend=0.4,μ1=1.494 5,μ2=1.494 5;EECRO算法參數(shù)設(shè)置為Fb=0.9,F(xiàn)a=0.1,F(xiàn)in=0.1,μ1=1.494 5,μ2=1.494 5,ωstart=0.9,ωend=0.4。其中種群規(guī)模為30,最大迭代次數(shù)為30。實驗平臺為MATLAB R2019b,DRAM為8 GB,英特爾酷睿i5處理器頻率為2.4 GHz。
EECRO算法所對應(yīng)的求解過程如圖3所示,求解的各軌跡點連線非常平滑。由此可見,使用上一次求解結(jié)果進行種群初始化的策略,能夠有效解決多解的篩選問題。
圖3 EECRO算法求解的軌跡
在軌跡求解過程中,3種算法各個關(guān)節(jié)所對應(yīng)的求解誤差曲線分別如圖4所示,20個軌跡點的逆運動學(xué)求解過程中,CRO算法求解結(jié)果的關(guān)節(jié)最大絕對誤差可達0.2 rad,且求解結(jié)果不穩(wěn)定,很難滿足實際應(yīng)用需求;PSO算法結(jié)果穩(wěn)定性好但精度比EECRO略遜一籌;EECRO算法的誤差曲線更加平穩(wěn),由圖4可知EECRO穩(wěn)定性和精度明顯優(yōu)于PSO和CRO算法。
將3種算法求解結(jié)果的關(guān)節(jié)角度誤差代入式(9)和式(10),得到的誤差評估結(jié)果如表5所示。
表5 算法誤差評估結(jié)果
由表5可知,應(yīng)用EECRO算法求解結(jié)果的均方根誤差和平均絕對誤差,與PSO和CRO兩種方法相比誤差更小,可達10-15rad。與CRO算法的求解結(jié)果相比,求解精度至少提高了10個數(shù)量級,由此可知求解精度完全可以滿足在機械臂逆運動學(xué)求解問題中的使用要求。
綜上所述,改進的EECRO算法在逆運動學(xué)求解方面具有實際應(yīng)用價值。算法曲線如圖4所示。
(a) CRO求解各軌跡點的誤差曲線 (b) PSO求解各軌跡點的誤差曲線
本文提出的一種基于經(jīng)驗進化的珊瑚礁優(yōu)化算法(EECRO),在保證全局搜索能力的前提下提高了算法的收斂精度和速度。實驗結(jié)果表明:在給定迭代次數(shù)較小情況下,EECRO算法能更快收斂到要求精度。應(yīng)用EECRO算法求解逆運動學(xué)的結(jié)果與對比算法相比,求解誤差明顯減小,且收斂速度快,因此滿足在逆運動學(xué)求解問題上的應(yīng)用。本文未對所提算法進行更高維度的測試,在未來工作中將通過對更高維度的測試以拓展EECRO算法在其他工程問題中的應(yīng)用。