馬宗家 石松泉
(1.紹興文理學(xué)院 土木工程學(xué)院,浙江 紹興 312000;2.紹興文理學(xué)院 機(jī)械與電氣工程學(xué)院,浙江 紹興 312000)
隨著機(jī)器人技術(shù)的發(fā)展,機(jī)器人在許多行業(yè)有著廣泛的應(yīng)用.砌墻機(jī)器人作為建筑行業(yè)的新型設(shè)備,受到許多的科研人員的探索和研究.而機(jī)械臂作為機(jī)器人的執(zhí)行部件,同樣也是機(jī)器人課題研究中重要部分[1].其中,串聯(lián)機(jī)械臂是應(yīng)用最為廣泛的機(jī)械臂,它是通過多個關(guān)節(jié)連接若干個連桿組成的一種具有多自由度的機(jī)制[2].為了了解機(jī)械臂關(guān)節(jié)和連桿之間的運動規(guī)律,探究機(jī)械臂各部位之間的位姿關(guān)系,需要對其進(jìn)行運動學(xué)分析.通過機(jī)械臂的運動狀態(tài)可以將其分為正運動和逆運動,正運動則是在確定機(jī)械臂的初始參數(shù)(連桿轉(zhuǎn)角、連桿偏距、連桿長度),通過關(guān)節(jié)角得到末端關(guān)節(jié)相對基坐標(biāo)系的位姿,逆運動則是通過末端執(zhí)行器的位姿來求得機(jī)械臂各關(guān)節(jié)角的參數(shù)信息[3].為了得到機(jī)械臂一般運動規(guī)律并減少設(shè)計周期,于是使用MATLAB對其進(jìn)行建模,快速完成運動學(xué)分析及路徑規(guī)劃,為建筑機(jī)器人在實際作業(yè)中提供了理論數(shù)據(jù)支撐[4].
本文研究的對象是擁有6個旋轉(zhuǎn)關(guān)節(jié)的機(jī)械臂[5-6],即6自由度機(jī)械臂.圖1為三菱六軸機(jī)械臂的實物結(jié)構(gòu)圖,根據(jù)此類機(jī)械臂的特性,采用D-H參數(shù)法在各關(guān)節(jié)上建立D-H坐標(biāo)系,得到機(jī)械臂D-H模型[7],完整的關(guān)節(jié)坐標(biāo)系模型如圖2所示,其中是基坐標(biāo)系的原點o0和第一關(guān)節(jié)坐標(biāo)系原點o1相重合.圖中D-H坐標(biāo)系建立的步驟如下:
(1)坐標(biāo)系zi-1的方向和機(jī)械臂關(guān)節(jié)i的軸向方向一致.
(2)坐標(biāo)系xi的方向則是由相鄰zi和zi-1的公垂線來確定.
(3)坐標(biāo)系yi-1的方向是由zi-1和xi-1的叉積所得.
圖1機(jī)械實物結(jié)構(gòu)圖圖2機(jī)械臂D-H坐標(biāo)系
根據(jù)圖2可以很直觀推算出D-H參數(shù)表1中各參數(shù)的值,其中的θ為關(guān)節(jié)角,α為機(jī)械臂的連桿轉(zhuǎn)角,a是相鄰關(guān)節(jié)間連桿的長度,d則是相鄰關(guān)節(jié)間連桿的偏移量[8].
表1 D-H參數(shù)表
連桿θn/(·)αn/(·)an/mmdn/mm關(guān)節(jié)范圍/(·)1θ19000-240~+2402θ20000~+1603θ39000-120~+1604θ4-900d4-200~+2005θ59000-120~+1206θ6000-360~+360
機(jī)械臂是由若干個關(guān)節(jié)通過剛體連接而成的開式運動鏈,因此要求得機(jī)械臂末端執(zhí)行器相對于基坐標(biāo)的位姿[9-10],需要求得各個關(guān)節(jié)之間的變換矩陣.因此將表1中的參數(shù)代入下列齊次變換矩陣[11]:
nTn+1=An+1=Rot(z,θn+1)×Trans(0,0,dn+1)×Trans(an+1,0,0)×Rot(x,αn+1)
將表中D-H參數(shù)代入到公式(1)中,可以得到相鄰關(guān)節(jié)間的齊次變換矩陣,得到矩陣如下所示[12]:
對得到的齊次方程依次進(jìn)行相乘,最終得到基坐標(biāo)相對于機(jī)械臂末端的變換矩陣:
T=T1T2T3T4T5T6=
式中:ci=cosθi,si=sinθi,cij=cos(θi+θj),sij=sin(θi+θj),其中變換矩陣T是求解機(jī)械臂六個關(guān)節(jié)的位姿的函數(shù),通過T可以得到機(jī)械臂各關(guān)節(jié)的運動情況和末端姿態(tài)的關(guān)系.
Robotics Toolbox是MATLAB專門用于機(jī)器人學(xué)的仿真工具包,為機(jī)器人的仿真提供了豐富的函數(shù)[13].其中Link函數(shù)和Serial Link是機(jī)械臂建模最重要的兩個函數(shù).在MATLAB的工作環(huán)境下,根據(jù)D-H參數(shù)表1,使用Link函數(shù)調(diào)用表中的參數(shù)就可以創(chuàng)建一個基于三菱機(jī)械臂仿真模型,具體指令如下所示.
L1=Link('alpha',pi/2,'d',0,'a',0);
L2=Link('alpha',0,'d',0,'a',0);
L3=Link('alpha',0,'d',0,'a',0);
L4=Link('alpha',pi/2,'d',0.2,'a',0);
L5=Link('alpha',-pi/2,'d',0,'a',0);
L6=Link('alpha',0,'d',0,'a',0);
robot=SerialLink([L1,L2,L3,L4,L5,L6]);
robotname='機(jī)械臂';
theta=[pi/2 0pi/2pi/2-pi/2 0];
robot.plot(theta);
teach(robot);
圖3示教控制模塊的六個滑塊分別對應(yīng)著機(jī)械臂六個關(guān)節(jié),通過移動滑塊可以改變關(guān)節(jié)角,從而可以很直觀地看到機(jī)械臂末端的位姿變化.
圖3 示教控制板和機(jī)械臂模型
關(guān)于機(jī)械臂正運動問題,可以調(diào)用Robotics工具箱中fkine函數(shù)進(jìn)行求解[14].函數(shù)調(diào)用的格式為:T=R.fkine(Q),其中R表示機(jī)械臂模型,T為前向運動的正解,Q為機(jī)械臂六個關(guān)接變量值.取向量Q1=[pi/5 -pi/3pi/2 0 -pi/4pi/8],代入fkine函數(shù)中進(jìn)行運算,最后得到一個齊次變換矩陣如下:
對于逆運動學(xué)問題,則需要調(diào)用Robotics工具包中的ikine函數(shù)對其求解[15].函數(shù)調(diào)用的格式為:Q=R.ikine(T,Q0,M),其中R同樣是機(jī)械臂模型,T則是要進(jìn)行逆解的齊次矩陣,Q0是為機(jī)械臂初始位置,M則是的逆解需要忽視的關(guān)節(jié),本次實驗使用的是六自由度機(jī)械臂,因此沒有需要忽略的關(guān)節(jié),只需要定義M=[1 1 1 1 1 1] .結(jié)合本次仿真模型,確定初始位置Q0=[0pi/2pi/2 0pi/2 0],并且確定機(jī)械臂末端Q2點的變換矩陣,矩陣如下所示:
隨后調(diào)用ikine函數(shù),最后可以得到相應(yīng)的關(guān)節(jié)位置向量Q2=[0 0 0 0 0 0 ],同時將相應(yīng)的齊次變換矩陣代入運動學(xué)逆解方程中,求得的關(guān)節(jié)角的大小與仿真解一致,確定了逆解方程的正確性.
在robotics工具箱中研究機(jī)械臂的軌跡規(guī)劃一般會使用jtraj或ctraj函數(shù)進(jìn)行規(guī)劃.這兩種函數(shù)分別對應(yīng)著兩種不同的方法,其中jtraj主要應(yīng)用于關(guān)節(jié)空間規(guī)劃,而ctraj則是對應(yīng)著笛卡爾空間規(guī)劃.這兩種方法都有各自的優(yōu)點:關(guān)節(jié)空間的軌跡規(guī)劃簡單,算法運算量小,不易出現(xiàn)奇異方程.而笛卡爾空間規(guī)劃的末端運動軌跡直觀,便于觀察機(jī)械臂運動狀態(tài)[16].為了得到較好的仿真效果,本文機(jī)械臂同時采用兩種方法進(jìn)行軌跡的規(guī)劃.
2.3.1 關(guān)節(jié)空間軌跡規(guī)劃
jtraj是用于規(guī)劃關(guān)節(jié)空間軌跡的常用函數(shù),其調(diào)用的格式為[17]:[Q,QD,QDD]=jtraj(Q0,QF,T),其中Q表示Q0點運行到QF點的運行軌跡,QD和QDD則是表達(dá)的軌跡規(guī)劃的速度和加速度.Q0和QF顯而易見的是機(jī)械臂運動的起始點和終點,T為給定的時間長度.假設(shè)本次仿真的時間為3秒,每次采集的時間間隔為50毫秒(即T=[0:0.05:2]).機(jī)械臂起點關(guān)節(jié)值Q1=[pi/5 -pi/3pi/2 0 -pi/4pi/8],終點關(guān)節(jié)值Q2=[0 0 0 0 0 0 ].在MATLAB環(huán)境下,將上面所得參數(shù)代入jtraj函數(shù)中運行,即可以求得各個關(guān)節(jié)的位置、速度、加速度的變化曲線[18].如圖4所示.
圖4關(guān)節(jié)空間關(guān)節(jié)角、速度、加速度圖
圖5 末端軌跡在三個面上
2.3.2 笛卡爾空間軌跡規(guī)劃
在實際控制機(jī)械臂的情況下,許多時候只需要機(jī)械示教到幾個比較重要的點上,根據(jù)軌跡特征算出中間點,然后通過插補的方法進(jìn)行精確的控制[20].對于笛卡爾空間可以使用TC= ctraj(T0,T1, N)函數(shù)進(jìn)行規(guī)劃,TC為函數(shù)返回的軌跡矩陣,T0和T1則分別為路徑的起始點,N則是路徑上的點數(shù).本次仿真取空間Q1和Q2為例,將其代入函數(shù)中,進(jìn)行笛卡爾路徑規(guī)劃,Q1,Q2的變換矩陣如圖6、圖7所示.
圖6笛卡爾空間軌跡圖圖7末端位置
通過結(jié)合兩種空間規(guī)劃路徑的優(yōu)點,在MATLAB中可以直觀地看到機(jī)械臂末端的運行軌跡,也可以清楚了解到各個關(guān)節(jié)的位置,速度、加速度隨時間變化的情況,通過上述數(shù)據(jù)可以為之后機(jī)械臂抓取磚塊和躲避障礙物的研究奠定基礎(chǔ).
本文研究的對象是一款來自于三菱公司的六軸機(jī)械臂,利用D-H法對機(jī)械臂各個關(guān)節(jié)坐標(biāo)系建模,并且得到相應(yīng)的齊次變換矩陣,并且通過理論推導(dǎo),得到運動學(xué)正逆解方程.使用MATLAB Robotics工具箱建立機(jī)械臂仿真模型,并通過正逆運動檢驗了模型的正確性以及公式推導(dǎo)的準(zhǔn)確性.機(jī)械臂在關(guān)節(jié)和笛卡爾空間下的軌跡規(guī)劃仿真,得到各關(guān)節(jié)的角位移、角速度和角加速度曲線和機(jī)械臂末端在笛卡爾空間中的運行路徑,為機(jī)械臂在建筑工業(yè)實際應(yīng)用提供了理論參考.