寇 斌,郭士杰,任東城
(1.復旦大學 工程與應用技術研究院,上海 200433;2.智能機器人教育部工程研究中心(復旦大學),上海 200433)
隨著工作環境的日益復雜,對于工業機器人的定位性能提出了更高的要求。通常使用工業機器人的重復定位精度和絕對定位精度來評價它的定位性能[1]。在實際的工業環境中,由于工業機器人連桿變形等自身因素引起的幾何誤差占定位誤差的90%,所以將其作為機器人定位誤差研究的重點。常用的補償法為軟件法[2-3],補償通常分為誤差建模、數據測量、參數辨識、誤差補償4步。建立合適的誤差模型可以對工業機器人的幾何誤差進行分析,常用的誤差模型有D-H模型[4];誤差測量法可分為開環法、閉環法和軸線測量法,測量工具有三坐標測量儀和激光測距儀[5];誤差辨識法有最小二乘法,還有Levenberg-Marquardt算法[6-7]。隨著智能算法的高速發展,近年來許多學者對智能算法在機器人定位誤差的應用進行了探索。粒子群算法尤其受到學者青睞,Wang 等[8]將改進粒子群算法用于機器人運動標定中最佳位姿選擇,實驗證明了提出算法的有效性。房立金等[9]針對并聯機器人與串聯機器人,提出一種通用的運動學標定方法,通過量子粒子群算法進行了誤差求解,最后實驗驗證了所提算法的有效性。總結現有研究發現,工業機器人幾何誤差方程是一個高維的非線性方程,粒子群算法在求解過程中迭代所需要的粒子群數目較大,導致粒子群算法的迭代效率降低。但是工業機器人對速率的要求卻越來越高。
有學者指出,粒子群數目對于算法的迭代時間影響很大,受此啟發,本文首先對標準粒子群算法的數目進行線性遞減,同時由于粒子群算法迭代后期大多數粒子都聚集在最優解附近,所以按照算法的迭代規律對標準粒子群算法的速度更新公式進行了更改,并進行了仿真實驗,證明了所提算法在保證收斂精度同時大幅提高了運算效率[10]。
機器人常用的模型是DH模型,目前,DH模型已被廣泛應用于工業機器人中[11],由DH模型可得到工業機器人相鄰連桿的轉換公式:

(1)
式中:ai為工業機器人第i個關節的連桿長度;θi為關節角;di為連桿偏距;αi為關節扭角,i=1,2,…,n,n為關節數目。機器人名義位姿為
(2)
式中:Rn∈R3×3為名義姿態旋轉矩陣,Pn∈R3×1為位置平移矩陣。同理,當機器人的幾何參數存在誤差Δθi、Δdi、Δai、Δαi時,機器人的實際姿態可以表示為
(3)
令ΔP=Pr-Pn,ΔP=(δpx,δpy,δpz)T表示工業機器人實際位置與名義位置的誤差。
(4)
式中:N為機器人誤差標定點的數目,f是幾何參數誤差集(Δai,Δdi,Δαi,Δθi,)的函數,當工業機器人處于不同的關節角位置時刻,獲取實際位置與名義位置的誤差,然后通過優化算法求解(Δai,Δdi,Δαi,Δθi,)的真實值,進而減小實際誤差。由于在D-H模型中,需要求解的參數有24個,屬于高維非線性方程求解問題,可以用仿生算法求解。
將傳統的粒子群算法用于工業機器人的幾何誤差標定耗時較長,因為獲取工業機器人6個關節的幾何誤差參數多達24個,參數的求解屬于高維函數優化問題。粒子群迭代求解的粒子數目較大,迭代所需時間較長,所以提出改進算法。
粒子群的每個粒子代表問題的一個潛在解,標準的粒子群算法更新公式可表示為[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)
從時間復雜度的角度看,傳統PSO算法每一次迭代的粒子數目不變,假設每次迭代的粒子數目都是N,Max dt表示最大迭代次數,每一個粒子每次迭代需運行時間為T,則傳統PSO算法的每次迭代需要的總時間為N*Max dt*T。在求解工業機器人的幾何參數標定這種高維函數問題時,由于粒子群數目較大且持續不變,就會導致算法迭代時間較長,所以本文提出將粒子群的粒子數目進行線性遞減:
N=round(Nmax-(t-1)*(Nmax-Nmin)/
(Max dt-1))
(7)
式中:Nmax為粒子數目最大值,Nmin為粒子數目最小值,Max dt為粒子設定的迭代次數,t為當前的迭代次數。傳統粒子群算法中,隨著t的變化,粒子群中粒子的數目N=Nmax始終不變;而改進粒子群算法中,當t=1時,N=Nmax,當t>1以后,每次迭代的粒子數目N逐漸線性遞減,則改進粒子群算法迭代總時間為(Nmax+Nmin)/2*Max dt*T,由于(Nmax+Nmin)/2小于Nmax,所以改進粒子群算法的整體迭代時間減少。
2.2.1 DSPSO算法簡介
傳統粒子群算法早期收斂速度高,但是在算法后期,求解精度降低。李洪亮等[13]借鑒協同進化算法思想,提出了改進粒子群算法DSPSO。DSPSO算法將粒子群分為“開發者”與“探索者”,將標準的粒子群體更改為3個子群s1、s2和s3,采用不同的進化方程為
(8)
(9)
(10)
其中子群體s2是開采者,它的搜索區域主要在當前群體最優位置的小范圍內。
2.2.2 改進的粒子群速度更新公式
在求解機器人幾何參數標定的前期,粒子群速度迭代是采用標準粒子群算法進行迭代;而在改進粒子群算法的粒子數目線性遞減后期,粒子群的粒子數目變少,同時大多數粒子聚集在最優解附近。則受DSPSO算法中式(9)啟發,采用式(11)進行迭代,
(11)
同時按照Shi等[14]的研究,在算法后期對w取值為0.4,使得改進粒子群算法在迭代后期更集中于最優解附近的局部。
本文所提算法簡稱為基于兩段式的動態粒子群算法(LDPSO-BT算法),求解工業機器人幾何參數標定流程為:
1)在工業機器人幾何參數誤差范圍內對算法初始化。
2)按照式(4)求得粒子的個體適應度值與全局適應度值。
3)按照式(7)更新粒子群的數目,以便提高幾何參數標定的迭代效率。
4)判斷當前迭代次數t是否>K*Max dt,若否,則按照式(5)對粒子群速度進行更新;否則,按照式(11)對粒子群速度進行更新。
5)更新種群的個體與全局極值。
6)判斷是否滿足結束條件,若不滿足,則轉到第2步;若滿足,則結束,進而獲取幾何參數誤差。
采用庫卡(KUKA)機器人有限公司生產的KUKA KR5 arc機器人驗證所提算法的有效性。KUKA KR5 arc 機器人DH模型參數見表1[11]。幾何參數誤差如表2。

表2 KR5 arc 機器人幾何參數誤差Tab.2 Geometric parameters errors of KR5 arc robot
在[-0.25,0.25](mm)和[-0.05,0.05](rad)區間范圍內,隨機均勻產生30組理論關節角,將之前設定的幾何誤差加入到機器人的名義幾何參數中,代入式(3)中,同時通過式(2)求出理論關節角,再將30組關節誤差代入式(4),便可得到相應的適應度值公式。
設定改進的LDPSO-BT粒子群算法初始最大粒子數Nmax為240,最小粒子數Nmin為40,迭代次數Max dt為500,w1為0.8,w2為0.4,參數k為0.8,加速系數c1和c2都為1.49[15]。表3是傳統PSO和LDPSO-BT算法分別迭代10次的平均適應度、最佳適應度和平均耗時。圖1為兩種粒子群算法在Intel(R)Core(TM)i7-8550U主頻4.00 GHz計算機上采用Matlab9.1迭代500次的最佳收斂曲線圖。圖2是機器人標定前沿X、Y、Z軸方向的末端位置誤差,圖3和圖4分別是工業機器人經過傳統PSO算法和LDPSO-BT算法標定后的沿X、Y、Z軸方向的末端位置誤差。

表3 LDPSO-BT和PSO實驗結果Tab.3 LDPSO-BT and PSO experiment results

圖1 進化過程Fig.1 Evolution process

圖2 補償前位置誤差Fig.2 Errors before compensation

圖3 補償后位置誤差(PSO方法)Fig.3 Errors after compensation (PSO)

圖4 補償后位置誤差(LDPSO-BT方法)Fig.4 Errors after compensation (LDPSO-BT)
從表3中可以看出,與傳統PSO算法相比,LDPSO-BT算法平均適應度與最佳適應度都基本相差不大,但LDPSO-BT算法在確保收斂精度的同時,迭代時間減少了41.85%,可以有效地提高算法的迭代效率。
從圖1中可以看出,兩種粒子群算法的收斂趨勢相近,收斂精度也相當。
從圖2中可以看出,在標定前,X、Y、Z軸的最大誤差絕對值分別為47.1、51.8、52.8 mm。由圖3可知,經過傳統PSO算法標定后,X、Y、Z軸的最大誤差絕對值降低為0.14、0.13、0.10 mm。從圖4中可以看出,經過LDPSO-BT算法標定后,X、Y、Z軸的最大誤差絕對值降低為0.18、0.18、0.15 mm,可見經過標定后,傳統PSO算法和LDPSO-BT算法均可大幅減小沿X、Y、Z軸方向的末端位置誤差,同時LDPSO-BT擁有更高的收斂速度。
1)本文提出了一種新的LDPSO-BT算法,結合標準粒子群算法的迭代規律,對粒子群數目進行線性遞減,同時在算法后期,使用改進的速度迭代公式進行迭代,仿真實驗表明,所提算法可以大幅提升工業機器人的定位精度,同時具備高效、快速的優勢。
2)工業機器人末端定位誤差主要由于其幾何連桿參數誤差引起,通過辨識出實際的幾何連桿參數值,可以大幅提高工業機器人定位精度。
3)本文的研究為工業機器人動力學參數辨識提供了新的思路,適用于工業機器人離線或者在線動力學參數的辨識,但還需要進行相關實驗,以驗證本文所提算法在實際動力學參數辨識的效果。