劉長柱,曹 巖,賈 峰,高 碩,韓 沖
機器人運動學分析是機器人研究和設計的基礎,是機器人研究中動力學分析、運動控制及機器視覺研究等內容的前提[1]。機器人技術日新月異,機器人運動學仿真和軌跡規(guī)劃在機器人設計、控制方面具有重要意義。對于機器人運動系統(tǒng)的研究和確立,很大程度上影響了機器人系統(tǒng)整體的基本性能[2]。SCARA機器人關節(jié)較少,運動靈活,精度較高,經常用來完成一些搬運、裝配任務。由于機器人價格昂貴,不便用實物進行試驗,因此在進行裝配任務之前需要規(guī)劃其運動軌跡,對機器人進行運動學仿真,研究機器人的動態(tài)性能。
關節(jié)式機器人由一系列關節(jié)和連桿按任意的順序連接而成,根據關節(jié)與連桿參數進行矩陣變換,利用高斯消去等方法求解變換矩陣的逆,推導出機器人運動學方程。本文以四自由度SCARA機器人為研究對象,利用D-H參數法建立SCARA機器人運動學模型,建立各關節(jié)坐標,求出正逆解表達式。然后借助MATLAB Robotics工具箱,驗證SCARA機器人運動學參數的正確性,研究運動學方程和進行軌跡規(guī)劃。求解各個機械臂運動參數變化,利用MATLAB工具箱,減少原本繁瑣的數學計算,具有一定的實際研究意義。
機器人運動學分析[3]是通過分析機器人各連桿參數進一步計算末端執(zhí)行器的位姿。接下來通過D-H參數法建立SCARA機器人每個連桿的笛卡爾坐標系和連桿參數,利用齊次矩陣和D-H參數法建立機器人運動學方程。在SolidWorks軟件下建立SCARA機器人的三維模型,如圖1所示。SCARA機器人具有四個自由度,大臂、小臂的回轉運動,執(zhí)行末端繞Z軸旋轉和沿Z軸上下移動。SCARA機器人主要完成搬運、裝配等工作,各關節(jié)的笛卡爾坐標系如圖2所示,D-H連桿參數表如表1所示。
圖1 SCARA機器人三維模型
表1中,桿件長度為:d1=370 mm,d3=320 mm,關節(jié)距離為:L1=300 mm,L2=250 mm。
圖2 SCARA機器人的D-H坐標系
表1 運動參數和關節(jié)變量
機器人的正運動學的前提是已知各桿件的D-H參數和關節(jié)變量,進一步計算機器人末端連桿的坐標系相對于基礎坐標系的位姿。通常i-1Ti表示連桿i-1在連桿i坐標系中的位姿(i=1,2,3,4)。
式 (1) 中, cθi=cosθi, sθi=sinθi, cαi=cosαi,sαi=sinαi, θi為SCARA機器人i關節(jié)轉角, αi為繞 xi軸從zi-1轉至zi扭角,di為沿zi-1軸從xi-1軸量至xi軸連桿距離,將各個連桿變換矩陣依次相乘,求解機器人末端執(zhí)行器正運動學方程:
式(2)為SCARA機器人手臂變換矩陣0T4,指的是末端坐標系相對基坐標系的位姿,也是研究機器人關節(jié)運動的重要環(huán)節(jié)。式(2)中:
其中θ1、θ2、θ3和θ4為已知SCARA機器人各關節(jié)轉角,nx、ny、 px、 py和 pz是待求解的機械臂末端執(zhí)行器位姿,并且 nx=oy, ny=-ox, az=1, si=sinθi,ci=cosθi, sij=sin(θi+θj), cij=cos(θi+θj)。
機器人的逆運動學分析是使驅動機器人達到期望位置,計算機器人各關節(jié)和連桿變量[3-5]。機器人逆運動學分析具有多解性,根據機器人的實際工作環(huán)境,得出唯一正確解。利用變量分離法,將單個矩陣的逆T-1n-1(n=1,2,3,4)左乘上面所列方程兩端,令對應元素對應相等,可求出各關節(jié)變量值。
(1)求關節(jié)變量1
(2)求關節(jié)變量2
(3)求關節(jié)變量d3
令左右矩陣中的第三行第四個元素(3.4)相等,可得:
式(5)中:d3為關節(jié)變量,即沿z2軸從x2軸量至x3軸連桿距離,pz是已知的機械臂末端執(zhí)行器位姿。
(4)求關節(jié)變量θ4
令左右矩陣中的第二行第一個元素(1.1,2.1)相等,即:
式(6)中:nx和ny是已知的機械臂末端執(zhí)行器位姿,θ1、θ2和θ4待求解的SCARA機器人關節(jié)1、2和4轉角。
軌跡規(guī)劃是根據機器人執(zhí)行的命令,滿足一定的束縛,分析機器人手臂關節(jié)在工程運動中各關節(jié)轉角的運動變化。機器人的軌跡規(guī)劃對機器人運動速度、精度、沖擊和振動有重要影響,一種好的軌跡規(guī)劃方法可以提高機器人的穩(wěn)定性、工作效率[6]。
(1)在進行運動學仿真前,根據表1的參數,調用MATLAB工具箱中Robotics Toolbox的Link和Robot函數創(chuàng)建機器人對象[7],將機器人命名為‘SCARA’,L=Link([al?phaA theta D sigma],CONVENTION),
>>L1=LINK([0 0 0 370 0],'mod');
>>L2=LINK([0 300 0 0 0],'mod');
>>L3=LINK([0 250 0 0 1],'mod');
>>L4=LINK([0 0 0-500 0],'mod');
>>S=robot({L1,L2,L3,L4},'SCARA');
參數CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用標準的D-H參數,‘modified’代表采用改進的D-H參數。參數‘alpha’代表扭轉角,參數‘A’代表桿件長度,參數‘theta’代表關節(jié)角,參數‘D’代表橫距,參數‘sigma’代表關節(jié)類型:0代表旋轉關節(jié),非0代表移動關節(jié)。
(2)假使初始狀態(tài)機器人各關節(jié)角度為零。通過如下程序,即可顯示θi=0時,SCARA機器人的三維圖,如圖3所示。
圖3 SCARA機器人三維模型圖
>>plot(S,[0 0 0 0])
(3)通過drivebot函數可以驅動機器人運動,如圖4所示,通過調節(jié)滑塊按鈕可以觀察機器人末端相對于基坐標系的空間位置變化情況。
>>drivebot(SCARA)
圖4 SCARA機器人關節(jié)驅動圖
假設該機器人的各關節(jié)的初始角度為Q0=[0 0 0 0],末關節(jié)角度為Q1=[pi/2 pi/4 0-pi/4]。利用工具箱中[Q QD QDD]=JTRAJ(Q0,Q1,T)命令來對多關節(jié)機器人進行仿真。仿真程序如下:
圖5 機器人末端在X、Y、Z方向上的位移
>>t=0∶0.056∶2;%時間向量
>>Q0=[0 0 0 0];%初始位姿
>>Q1=[pi/2 0 pi/4-pi/4];%末位姿
>>[Q QD QDD]=JTRAJ(Q0,Q1,t);%關節(jié)空間規(guī)劃
>>T=FKINE(SCARA,Q);%機器人運動學正問題求解
>> subplot(3,1,1);
>>plot(t,squeeze(T(1,4,∶)));
>>xlabel('Time(s)');
>>ylabel('X(m)');
…%機器人末端的運動軌跡曲線如圖5所示。
其中,參數Q為從初始狀態(tài)Q0到末狀態(tài)Q1的關節(jié)空間規(guī)劃軌跡,TR是Q定義的每個向前運動學的正解,QD和QDD為返回的規(guī)劃軌跡的速度和加速度。
用MATLAB Robotics中的plot函數對各關節(jié)運動軌跡進行仿真,編程得出SCARA機器人關節(jié)角位移、速度和加速度規(guī)劃軌跡曲線如圖6所示。部分程序如下:
>>subplot(2,2,1);
>>plot(t,Q(∶,1));
>>xlabel('Time(s)');
>>ylabel('joint1(rad)');
>>subplot(2,2,2);
>> plot(t,Q(∶,2));
>>xlabel('Time(s)');
圖6 關節(jié)空間軌跡規(guī)劃仿真結果
>>ylabel('joint2(rad)');
…
結合各關節(jié)的運動仿真及圖6可得出,關節(jié)機器人從初始狀態(tài)到末狀態(tài)過程中,運動平穩(wěn),速度和加速度變化平滑,無突變。表明機器人手臂在工作過程中沖擊較小,SCARA機器人連桿參數設計合理,可以達到期望的效果。
機器人運動學正問題給定關節(jié)角度變量Q,求末端執(zhí)行器相對基座的位姿矩陣0T4。運用MATLAB對0T4進行求解,取各連桿變量:Q=[pi/4 pi/2 0-pi/4],根據前面推導的方程可求得末端執(zhí)行器的位姿矩陣0T4,用fkine函數TR=FKINE(SCARA,Q),輸入上述關節(jié)變量值,直接得到機器人末端執(zhí)行器的位姿矩陣。兩者結果相等,表明運動學正問題求解無誤。
機器人的運動學的逆問題與正問題不同具有復雜性。通過ikine函數設定初始值,運用數值迭代法經過多次迭代來求解關節(jié)角,可得到逆運動學的唯一解[8-9]。調用Q=IKINE(SCARA,T,Q)函數,實現機器人運動學逆問題的求解。MATLAB軟件為機器人的研究提供了強大的分析和仿真能力,為之后的機器人動力學分析和軌跡規(guī)劃奠定了基礎。
本文以SCARA四自由度機器人為研究對象,借助MATLAB Robotics Toolbox工具箱,求解機器人的運動學方程和軌跡仿真。結果表明:(1)通過移動手柄位置,可以觀察機器人末端執(zhí)行器運動狀態(tài);(2)通過規(guī)劃機器人運動軌跡,得出末端執(zhí)行器軌跡曲線;(3)驗證了運動學正逆解的正確性,表明機器人結構參數設計合理。
參考文獻:
[1]劉鵬,宋濤,贠超,等.焊接機器人運動學分析及軌跡規(guī)劃研究[J].機電工程,2013(4):390-394.
[2]NIKU S B.孫富春,朱紀洪,劉國棟,等譯.機器人學導論:分析、控制及應用(第2版)[M].北京:電子工業(yè)出版社,2013.
[3]孫浩,趙玉剛,姜文革,等.碼垛機器人結構設計與運動分析[J].制造業(yè)自動化,2013(14):66-68.
[4]劉萍,陳瑩.五自由度關節(jié)式機械手運動學分析及仿真[J].制造業(yè)自動化,2011(19):9-11.
[5]張普行,嚴軍輝,賈秋玲.六自由度機械手的運動學分析[J].制造業(yè)自動化,2011(20):68-71.
[6]楊成文,張鐵.基于ADAMS的SCARA機器人運動學仿真研究 [J].機床與液壓,2011,39(21):118-121.
[7]謝斌,蔡自興.基于MATLAB Robotics Toolbox的機器人學仿真實驗教學[J].計算機教育,2010(19):140-143.
[8]劉輝,毛璐瑤,陳啟愉,等.基于數值模擬技術的SCARA機器人本體設計與優(yōu)化[J].機電工程技術,2017,46(6):1-6.
[9]陳桂,王建紅,湯玉東.KUKA機器人運動學仿真與實驗研究[J].組合機床與自動化加工技術,2014(8):94-97.