徐 舟
(庫卡機器人制造(上海)有限公司,上海 201616)
要控制機器人進行精確的焊接仿真,實現(xiàn)自動化焊接的工業(yè)作業(yè),首先要解決機器人運動學建模和逆向運動學的求解問題。
目前主流的運動學建模分析方法有DH建模[1]和旋量理論[2]這兩種方法。前者較后者更為常用,更容易上手,后者對數(shù)學的理解和掌握更高。DH建模用4個參數(shù)表示一個坐標系偏移量,分別是繞z軸旋轉(zhuǎn)θ角,然后沿z軸平移d距離,再沿x軸平移a距離,最后繞x軸旋轉(zhuǎn)α角,雖然只用了4個參數(shù),但是可以看到該方法沒有考慮y軸的影響,也就是當相鄰的兩關(guān)節(jié)軸平行時,關(guān)節(jié)軸間的公法線隨著軸姿態(tài)微小的變化而引起大幅度變化[3],從而導致在機器人誤差辨識中不得不再新增一個繞y軸旋轉(zhuǎn)β角來解決該問題[4]。故本文采用基于坐標系偏移的建模方法實現(xiàn)庫卡KR10機器人正向運動學建模和逆向運動學求解。基于坐標系偏移的建模方法雖然需要7個參數(shù),但參數(shù)共分為兩大類,先是3個平移參數(shù),后是4個旋轉(zhuǎn)參數(shù),易理解、易記憶、易使用,建模效率反而比DH的高。為了直觀地進行三維仿真,本文采用C#的3D開源庫Helix構(gòu)建了庫卡KR10機器人、焊槍、焊板等三維模型,并將Helix控件嵌入基于WPF開發(fā)的仿真軟件中,實現(xiàn)了焊接運動仿真。
如圖1所示,根據(jù)齊次坐標變換理論[5],可得從坐標系i到坐標系i+1的坐標系偏移公式:
圖1 坐標系偏移原理
Ti=Trans(xi,yi,zi)Rot(z,Ai)Rot(y,Bi)×
Rot(x,Ci)Rot(?,θi).
(1)
其中:Trans(xi,yi,zi)表示依次平移xi,yi,zi距離;Rot(z,Ai)表示繞z軸旋轉(zhuǎn)Ai;Rot(y,Bi)表示繞y軸旋轉(zhuǎn)Bi;Rot(x,Ci)表示繞x軸旋轉(zhuǎn)Ci;Rot(?,θi)中的旋轉(zhuǎn)軸編號0表示坐標系可繞z軸旋轉(zhuǎn)θi角度,1表示繞y軸旋轉(zhuǎn)θi角度,2表示繞x軸旋轉(zhuǎn)θi角度。公式(1)中共計7個參數(shù),前3個為平移,后4個為旋轉(zhuǎn)。
式(1)中的各項展開如下:
參考文獻[1],標準DH建模公式如下:
Ti=Rot(zi-1,θi)Trans(zi-1,di)Trans(xi,ai)Rot(xi,αi).
(2)
其中:Rot表示繞某個軸旋轉(zhuǎn);Trans表示沿某個軸平移。
對比式(1)和式(2)可看出,基于坐標系偏移的建模方法更易記憶,更有規(guī)律,先是xyz,再是ABC,最后是繞某個軸的旋轉(zhuǎn)。
根據(jù)以上基于坐標系偏移的建模方法可得6軸機器人的建模公式如下:
(3)
結(jié)合庫卡KR10機器人的SolidWorks 3D圖可得如圖2(b)所示運動學建模。根據(jù)圖2可得如表1所示的機器人建模參數(shù),其中旋轉(zhuǎn)軸編號根據(jù)Rot(?,θi)得到。
表1 庫卡KR10機器人坐標系偏移參數(shù)
圖2中帶箭頭的3/4圓表示繞某個軸旋轉(zhuǎn),這表明該方法不再局限于DH建模中的不能繞y軸旋轉(zhuǎn)。后三個坐標系交匯于一點,滿足Pieper原則[6]。
圖2 6R機器人的SolidWorks圖和坐標系偏移建模
(4)
將表1中平移參數(shù)中的非0數(shù)值分別表示為x2,z1,z2,z3,z4,z5,z6,聯(lián)立式(3)和式(4)得:
(5)
并令:
(6)
展開可得:
其中:si和ci分別表示sinθi和cosθi,下文亦然。
(1) 求解θ1。觀察L、R矩陣的(2,4)元素,可得到:
pyc1-z6(ayc1-axs1)-pxs1=0.
(7)
推導可得到θ1的兩個解:
(8)
(2) 求解θ3、θ2。因矩陣L、R的(1,4)和(3,4)元素分別相等,通過推導首先可得到θ3的兩個解:
(9)
繼續(xù)推導可得θ2的兩個解:
θ2=atan2(±I,sqrt(E2+F2-I2))-atan2(F,E).
(10)
(3) 求解θ5、θ4、θ6。因矩陣L、R的(1,3)和(3,3)元素分別對應相等,經(jīng)推導可得θ5的兩個解:
(11)
其中:L1=Jc3-Ks3,J=axc1c2-azs2+ayc2s1,K=azc2+ays1s2+axc1s2。
因矩陣L、R的(2,3)元素對應相等,可得:
s5s4=ayc1-axs1.
(12)
根據(jù)式(12),當θ5=0時,有無窮θ4的解,為統(tǒng)一起見,默認當θ5=0時,θ4=0。故當θ5≠0時有:
(13)
因矩陣L、R的(2,2)元素對應相等,通過推導可得θ6的兩個解:
(14)
其中:N=oyc1-oxs1;O=nyc1-nxs1;P=c4。
到此已完成了所有旋轉(zhuǎn)軸θ的求解,并用C#代碼實現(xiàn)了以上數(shù)學公式的編程和單元測試。
WPF[7]是微軟推出以C#語言為基礎(chǔ)的基于Windows桌面系統(tǒng)開發(fā)的界面框架。Helix[8]是開源的可直接嵌入WPF界面中進行二次開發(fā)的3D控件。
仿真軟件的框架基于FluentRibbon、AvalonDock、Prism、MEF等開源庫進行二次開發(fā),支持插件化開發(fā),整體架構(gòu)如圖3所示。
圖3 仿真軟件架構(gòu)
基于上述框架開發(fā)的仿真軟件運行效果如圖4所示。
圖4 仿真軟件實際運行效果圖
表2 正運動學軸坐標輸入和位姿矩陣關(guān)系
在仿真軟件中,根據(jù)表2右側(cè)的位姿矩陣編寫單元測試,可獲得表3中的8組逆解數(shù)據(jù)。表3的灰色行表示的一組解與表2軸坐標一致,該計算表明了逆解的正確性。
表3 根據(jù)表2右側(cè)的位姿矩陣計算得到運動學逆解 (°)
圖5 最短行程法計算流程
為模擬焊槍在焊板上自動作業(yè)一條直線,先通過導入界面導入焊槍模型,并附加到機器人法蘭上,然后在導入界面導入焊板模型,最后在機器人屬性界面中輸入模型的焊縫起點(見圖6)和終點坐標(見圖7)。
圖6 示教焊縫起點 圖7 示教焊縫終點
每次輸入坐標后可在如圖8所示界面記錄示教坐標。
圖8 示教后在作業(yè)圖界面中記錄坐標
將焊縫直線細分100個點后,結(jié)合最短行程法,單擊仿真按鈕可得焊縫仿真效果,如圖9所示。
由圖9可看到機器人沿焊板邊緣直線走出了一條直線,再次表明了本文的正向和逆向運動學分析的正確性。
圖9 焊板的焊縫仿真效果
(1) 通過開發(fā)軟件的運動仿真表明:基于坐標系偏移的建模方法是正確的,每一個偏移矩陣雖有7個參數(shù),多于DH的4個參數(shù),但其實也就兩大類參數(shù),先平移后旋轉(zhuǎn),更易理解和使用。
(2) 基于Helix和WPF開發(fā)的運動仿真軟件,可直觀地可視化三維虛擬世界,實現(xiàn)了焊板的焊縫焊接仿真,所見即所得,為后續(xù)實現(xiàn)更復雜的自動化焊接等需求奠定了基礎(chǔ)。