寇 斌,郭士杰,任東城
(1.復(fù)旦大學(xué) 工程與應(yīng)用技術(shù)研究院,上海 200433;2.智能機(jī)器人教育部工程研究中心(復(fù)旦大學(xué)),上海 200433)
隨著工作環(huán)境的日益復(fù)雜,對于工業(yè)機(jī)器人的定位性能提出了更高的要求。通常使用工業(yè)機(jī)器人的重復(fù)定位精度和絕對定位精度來評價(jià)它的定位性能[1]。在實(shí)際的工業(yè)環(huán)境中,由于工業(yè)機(jī)器人連桿變形等自身因素引起的幾何誤差占定位誤差的90%,所以將其作為機(jī)器人定位誤差研究的重點(diǎn)。常用的補(bǔ)償法為軟件法[2-3],補(bǔ)償通常分為誤差建模、數(shù)據(jù)測量、參數(shù)辨識、誤差補(bǔ)償4步。建立合適的誤差模型可以對工業(yè)機(jī)器人的幾何誤差進(jìn)行分析,常用的誤差模型有D-H模型[4];誤差測量法可分為開環(huán)法、閉環(huán)法和軸線測量法,測量工具有三坐標(biāo)測量儀和激光測距儀[5];誤差辨識法有最小二乘法,還有Levenberg-Marquardt算法[6-7]。隨著智能算法的高速發(fā)展,近年來許多學(xué)者對智能算法在機(jī)器人定位誤差的應(yīng)用進(jìn)行了探索。粒子群算法尤其受到學(xué)者青睞,Wang 等[8]將改進(jìn)粒子群算法用于機(jī)器人運(yùn)動標(biāo)定中最佳位姿選擇,實(shí)驗(yàn)證明了提出算法的有效性。房立金等[9]針對并聯(lián)機(jī)器人與串聯(lián)機(jī)器人,提出一種通用的運(yùn)動學(xué)標(biāo)定方法,通過量子粒子群算法進(jìn)行了誤差求解,最后實(shí)驗(yàn)驗(yàn)證了所提算法的有效性??偨Y(jié)現(xiàn)有研究發(fā)現(xiàn),工業(yè)機(jī)器人幾何誤差方程是一個(gè)高維的非線性方程,粒子群算法在求解過程中迭代所需要的粒子群數(shù)目較大,導(dǎo)致粒子群算法的迭代效率降低。但是工業(yè)機(jī)器人對速率的要求卻越來越高。
有學(xué)者指出,粒子群數(shù)目對于算法的迭代時(shí)間影響很大,受此啟發(fā),本文首先對標(biāo)準(zhǔn)粒子群算法的數(shù)目進(jìn)行線性遞減,同時(shí)由于粒子群算法迭代后期大多數(shù)粒子都聚集在最優(yōu)解附近,所以按照算法的迭代規(guī)律對標(biāo)準(zhǔn)粒子群算法的速度更新公式進(jìn)行了更改,并進(jìn)行了仿真實(shí)驗(yàn),證明了所提算法在保證收斂精度同時(shí)大幅提高了運(yùn)算效率[10]。
機(jī)器人常用的模型是DH模型,目前,DH模型已被廣泛應(yīng)用于工業(yè)機(jī)器人中[11],由DH模型可得到工業(yè)機(jī)器人相鄰連桿的轉(zhuǎn)換公式:
(1)
式中:ai為工業(yè)機(jī)器人第i個(gè)關(guān)節(jié)的連桿長度;θi為關(guān)節(jié)角;di為連桿偏距;αi為關(guān)節(jié)扭角,i=1,2,…,n,n為關(guān)節(jié)數(shù)目。機(jī)器人名義位姿為
(2)
式中:Rn∈R3×3為名義姿態(tài)旋轉(zhuǎn)矩陣,Pn∈R3×1為位置平移矩陣。同理,當(dāng)機(jī)器人的幾何參數(shù)存在誤差Δθi、Δdi、Δai、Δαi時(shí),機(jī)器人的實(shí)際姿態(tài)可以表示為
(3)
令ΔP=Pr-Pn,ΔP=(δpx,δpy,δpz)T表示工業(yè)機(jī)器人實(shí)際位置與名義位置的誤差。
(4)
式中:N為機(jī)器人誤差標(biāo)定點(diǎn)的數(shù)目,f是幾何參數(shù)誤差集(Δai,Δdi,Δαi,Δθi,)的函數(shù),當(dāng)工業(yè)機(jī)器人處于不同的關(guān)節(jié)角位置時(shí)刻,獲取實(shí)際位置與名義位置的誤差,然后通過優(yōu)化算法求解(Δai,Δdi,Δαi,Δθi,)的真實(shí)值,進(jìn)而減小實(shí)際誤差。由于在D-H模型中,需要求解的參數(shù)有24個(gè),屬于高維非線性方程求解問題,可以用仿生算法求解。
將傳統(tǒng)的粒子群算法用于工業(yè)機(jī)器人的幾何誤差標(biāo)定耗時(shí)較長,因?yàn)楂@取工業(yè)機(jī)器人6個(gè)關(guān)節(jié)的幾何誤差參數(shù)多達(dá)24個(gè),參數(shù)的求解屬于高維函數(shù)優(yōu)化問題。粒子群迭代求解的粒子數(shù)目較大,迭代所需時(shí)間較長,所以提出改進(jìn)算法。
粒子群的每個(gè)粒子代表問題的一個(gè)潛在解,標(biāo)準(zhǔn)的粒子群算法更新公式可表示為[12].
vij(t+1)=wvij(t)+c1r1(pij(t)-xij(t))+
c2r2(gij(t)-xij(t))
(5)
xij(t+1)=xij(t)+vij(t+1)
(6)
從時(shí)間復(fù)雜度的角度看,傳統(tǒng)PSO算法每一次迭代的粒子數(shù)目不變,假設(shè)每次迭代的粒子數(shù)目都是N,Max dt表示最大迭代次數(shù),每一個(gè)粒子每次迭代需運(yùn)行時(shí)間為T,則傳統(tǒng)PSO算法的每次迭代需要的總時(shí)間為N*Max dt*T。在求解工業(yè)機(jī)器人的幾何參數(shù)標(biāo)定這種高維函數(shù)問題時(shí),由于粒子群數(shù)目較大且持續(xù)不變,就會導(dǎo)致算法迭代時(shí)間較長,所以本文提出將粒子群的粒子數(shù)目進(jìn)行線性遞減:
N=round(Nmax-(t-1)*(Nmax-Nmin)/
(Max dt-1))
(7)
式中:Nmax為粒子數(shù)目最大值,Nmin為粒子數(shù)目最小值,Max dt為粒子設(shè)定的迭代次數(shù),t為當(dāng)前的迭代次數(shù)。傳統(tǒng)粒子群算法中,隨著t的變化,粒子群中粒子的數(shù)目N=Nmax始終不變;而改進(jìn)粒子群算法中,當(dāng)t=1時(shí),N=Nmax,當(dāng)t>1以后,每次迭代的粒子數(shù)目N逐漸線性遞減,則改進(jìn)粒子群算法迭代總時(shí)間為(Nmax+Nmin)/2*Max dt*T,由于(Nmax+Nmin)/2小于Nmax,所以改進(jìn)粒子群算法的整體迭代時(shí)間減少。
2.2.1 DSPSO算法簡介
傳統(tǒng)粒子群算法早期收斂速度高,但是在算法后期,求解精度降低。李洪亮等[13]借鑒協(xié)同進(jìn)化算法思想,提出了改進(jìn)粒子群算法DSPSO。DSPSO算法將粒子群分為“開發(fā)者”與“探索者”,將標(biāo)準(zhǔn)的粒子群體更改為3個(gè)子群s1、s2和s3,采用不同的進(jìn)化方程為
(8)
(9)
(10)
其中子群體s2是開采者,它的搜索區(qū)域主要在當(dāng)前群體最優(yōu)位置的小范圍內(nèi)。
2.2.2 改進(jìn)的粒子群速度更新公式
在求解機(jī)器人幾何參數(shù)標(biāo)定的前期,粒子群速度迭代是采用標(biāo)準(zhǔn)粒子群算法進(jìn)行迭代;而在改進(jìn)粒子群算法的粒子數(shù)目線性遞減后期,粒子群的粒子數(shù)目變少,同時(shí)大多數(shù)粒子聚集在最優(yōu)解附近。則受DSPSO算法中式(9)啟發(fā),采用式(11)進(jìn)行迭代,
(11)
同時(shí)按照Shi等[14]的研究,在算法后期對w取值為0.4,使得改進(jìn)粒子群算法在迭代后期更集中于最優(yōu)解附近的局部。
本文所提算法簡稱為基于兩段式的動態(tài)粒子群算法(LDPSO-BT算法),求解工業(yè)機(jī)器人幾何參數(shù)標(biāo)定流程為:
1)在工業(yè)機(jī)器人幾何參數(shù)誤差范圍內(nèi)對算法初始化。
2)按照式(4)求得粒子的個(gè)體適應(yīng)度值與全局適應(yīng)度值。
3)按照式(7)更新粒子群的數(shù)目,以便提高幾何參數(shù)標(biāo)定的迭代效率。
4)判斷當(dāng)前迭代次數(shù)t是否>K*Max dt,若否,則按照式(5)對粒子群速度進(jìn)行更新;否則,按照式(11)對粒子群速度進(jìn)行更新。
5)更新種群的個(gè)體與全局極值。
6)判斷是否滿足結(jié)束條件,若不滿足,則轉(zhuǎn)到第2步;若滿足,則結(jié)束,進(jìn)而獲取幾何參數(shù)誤差。
采用庫卡(KUKA)機(jī)器人有限公司生產(chǎn)的KUKA KR5 arc機(jī)器人驗(yàn)證所提算法的有效性。KUKA KR5 arc 機(jī)器人DH模型參數(shù)見表1[11]。幾何參數(shù)誤差如表2。
表2 KR5 arc 機(jī)器人幾何參數(shù)誤差Tab.2 Geometric parameters errors of KR5 arc robot
在[-0.25,0.25](mm)和[-0.05,0.05](rad)區(qū)間范圍內(nèi),隨機(jī)均勻產(chǎn)生30組理論關(guān)節(jié)角,將之前設(shè)定的幾何誤差加入到機(jī)器人的名義幾何參數(shù)中,代入式(3)中,同時(shí)通過式(2)求出理論關(guān)節(jié)角,再將30組關(guān)節(jié)誤差代入式(4),便可得到相應(yīng)的適應(yīng)度值公式。
設(shè)定改進(jìn)的LDPSO-BT粒子群算法初始最大粒子數(shù)Nmax為240,最小粒子數(shù)Nmin為40,迭代次數(shù)Max dt為500,w1為0.8,w2為0.4,參數(shù)k為0.8,加速系數(shù)c1和c2都為1.49[15]。表3是傳統(tǒng)PSO和LDPSO-BT算法分別迭代10次的平均適應(yīng)度、最佳適應(yīng)度和平均耗時(shí)。圖1為兩種粒子群算法在Intel(R)Core(TM)i7-8550U主頻4.00 GHz計(jì)算機(jī)上采用Matlab9.1迭代500次的最佳收斂曲線圖。圖2是機(jī)器人標(biāo)定前沿X、Y、Z軸方向的末端位置誤差,圖3和圖4分別是工業(yè)機(jī)器人經(jīng)過傳統(tǒng)PSO算法和LDPSO-BT算法標(biāo)定后的沿X、Y、Z軸方向的末端位置誤差。
表3 LDPSO-BT和PSO實(shí)驗(yàn)結(jié)果Tab.3 LDPSO-BT and PSO experiment results
圖1 進(jìn)化過程Fig.1 Evolution process
圖2 補(bǔ)償前位置誤差Fig.2 Errors before compensation
圖3 補(bǔ)償后位置誤差(PSO方法)Fig.3 Errors after compensation (PSO)
圖4 補(bǔ)償后位置誤差(LDPSO-BT方法)Fig.4 Errors after compensation (LDPSO-BT)
從表3中可以看出,與傳統(tǒng)PSO算法相比,LDPSO-BT算法平均適應(yīng)度與最佳適應(yīng)度都基本相差不大,但LDPSO-BT算法在確保收斂精度的同時(shí),迭代時(shí)間減少了41.85%,可以有效地提高算法的迭代效率。
從圖1中可以看出,兩種粒子群算法的收斂趨勢相近,收斂精度也相當(dāng)。
從圖2中可以看出,在標(biāo)定前,X、Y、Z軸的最大誤差絕對值分別為47.1、51.8、52.8 mm。由圖3可知,經(jīng)過傳統(tǒng)PSO算法標(biāo)定后,X、Y、Z軸的最大誤差絕對值降低為0.14、0.13、0.10 mm。從圖4中可以看出,經(jīng)過LDPSO-BT算法標(biāo)定后,X、Y、Z軸的最大誤差絕對值降低為0.18、0.18、0.15 mm,可見經(jīng)過標(biāo)定后,傳統(tǒng)PSO算法和LDPSO-BT算法均可大幅減小沿X、Y、Z軸方向的末端位置誤差,同時(shí)LDPSO-BT擁有更高的收斂速度。
1)本文提出了一種新的LDPSO-BT算法,結(jié)合標(biāo)準(zhǔn)粒子群算法的迭代規(guī)律,對粒子群數(shù)目進(jìn)行線性遞減,同時(shí)在算法后期,使用改進(jìn)的速度迭代公式進(jìn)行迭代,仿真實(shí)驗(yàn)表明,所提算法可以大幅提升工業(yè)機(jī)器人的定位精度,同時(shí)具備高效、快速的優(yōu)勢。
2)工業(yè)機(jī)器人末端定位誤差主要由于其幾何連桿參數(shù)誤差引起,通過辨識出實(shí)際的幾何連桿參數(shù)值,可以大幅提高工業(yè)機(jī)器人定位精度。
3)本文的研究為工業(yè)機(jī)器人動力學(xué)參數(shù)辨識提供了新的思路,適用于工業(yè)機(jī)器人離線或者在線動力學(xué)參數(shù)的辨識,但還需要進(jìn)行相關(guān)實(shí)驗(yàn),以驗(yàn)證本文所提算法在實(shí)際動力學(xué)參數(shù)辨識的效果。