摘要:針對(dui)OUR-2機(ji)械(xie)(xie)臂(bei)(bei)的構形(xing)特點,對(dui)其進行運(yun)動(dong)學及(ji)空(kong)間分析。采用(yong)D-H方(fang)法建立(li)了OUR-2機(ji)械(xie)(xie)臂(bei)(bei)的連桿坐標系,得(de)到了以6個關節角度為變量的正運(yun)動(dong)學方(fang)程(cheng),并用(yong)MATLAB robotics toolbox對(dui)機(ji)械(xie)(xie)臂(bei)(bei)的正運(yun)動(dong)學進行了仿真(zhen)。基于蒙特卡洛(luo)法分析了機(ji)械(xie)(xie)臂(bei)(bei)的工作(zuo)空(kong)間,并利用(yong)MATLAB編程(cheng)得(de)到機(ji)械(xie)(xie)臂(bei)(bei)末端的工作(zuo)空(kong)間點云圖。
關鍵詞:OUR-2機械(xie)臂;D-H方法;正運動學;蒙特卡洛法
OUR機(ji)械(xie)臂(bei)有(you)別于傳(chuan)統工(gong)業機(ji)械(xie)臂(bei),其(qi)特點是體(ti)積小、重量輕(qing)、有(you)很快的(de)(de)(de)運動速度(du)和較大的(de)(de)(de)活動范圍(wei),機(ji)械(xie)臂(bei)的(de)(de)(de)最大運動速度(du)可(ke)以達到180°/s,能夠處(chu)理更復(fu)雜(za)、更危險的(de)(de)(de)工(gong)作,具有(you)極(ji)強的(de)(de)(de)靈(ling)活度(du)、精確度(du)和安全性。
對于機械臂運動學而言,正運動學相對簡單,機械臂的工作空間求解方法主要有圖解法、解析法、數值法,以及由數值法衍生出來的蒙特卡洛法[1]。圖解法和解析法受到關節數目的限制,對于有些機械臂并不通用;數值法計算量太大,有些邊界曲面可靠性得不到保證[2]。蒙(meng)特卡洛(luo)法可以用(yong)(yong)(yong)數(shu)學(xue)圖形的(de)形式直觀清晰(xi)地表示(shi)機(ji)械(xie)臂的(de)工作空間(jian)。本文采用(yong)(yong)(yong)J.Craij改進(jin)(jin)的(de)D-H方法建立機(ji)械(xie)臂的(de)連桿坐標系,分析OUR-2機(ji)械(xie)臂的(de)正運(yun)(yun)動學(xue)模型,得(de)到機(ji)械(xie)臂正運(yun)(yun)動學(xue)的(de)解析解,并利用(yong)(yong)(yong)MATLAB robotics toolbox進(jin)(jin)行正運(yun)(yun)動學(xue)仿真分析,運(yun)(yun)用(yong)(yong)(yong)蒙(meng)特卡洛(luo)法得(de)到機(ji)械(xie)臂的(de)工作空間(jian)。
1.1 機械臂模型
按(an)照改進的(de)D-H方法建(jian)立(li)OUR-2六自由度機械(xie)臂的(de)連(lian)桿坐(zuo)(zuo)標系(xi)。首先確定基(ji)坐(zuo)(zuo)標系(xi)的(de)位置(zhi)以及末端的(de)初(chu)始位置(zhi)和姿態(tai),然(ran)后采用D-H法建(jian)立(li)基(ji)坐(zuo)(zuo)標系(xi)和各關節處的(de)坐(zuo)(zuo)標系(xi),對于相(xiang)(xiang)同的(de)基(ji)坐(zuo)(zuo)標系(xi),不同的(de)D-H矩陣的(de)末端位姿相(xiang)(xiang)同。建(jian)立(li)的(de)OUR-2機械(xie)臂連(lian)桿坐(zuo)(zuo)標系(xi)如(ru)圖1所示。
利用SolidWorks建立了OUR-2六(liu)自由(you)度機械(xie)(xie)(xie)臂(bei)(bei)三維模(mo)型,如(ru)圖(tu)2所(suo)示。機械(xie)(xie)(xie)臂(bei)(bei)共包括6個(ge)部(bu)(bu)分:基座、肩部(bu)(bu)、肘部(bu)(bu)、腕(wan)(wan)(wan)部(bu)(bu)1、腕(wan)(wan)(wan)部(bu)(bu)2以及腕(wan)(wan)(wan)部(bu)(bu)3。OUR-2有別(bie)于傳統的(de)(de)六(liu)自由(you)度機械(xie)(xie)(xie)臂(bei)(bei),6個(ge)關節(jie)均為模(mo)塊化旋轉關節(jie),每個(ge)模(mo)塊均由(you)高(gao)性能的(de)(de)伺(si)服電(dian)機、諧(xie)波減速器(qi)、機械(xie)(xie)(xie)剎車、驅動器(qi)和通信總線組成,每個(ge)關節(jie)有一個(ge)自由(you)度,機械(xie)(xie)(xie)臂(bei)(bei)的(de)(de)實(shi)驗平(ping)臺如(ru)圖(tu)3所(suo)示。

1.2 機(ji)械臂正(zheng)運(yun)動學分析
機械臂的工作空間是指機械臂末端所能到的范圍,是機械臂靈活性的重要指標,理論上機械臂的工作空間是一個可以覆蓋機械臂所在位置的球形區域[3],實際上由于奇點的存在,使得機械臂的靈活性和空間工作范圍受到限制,如何擴大機械臂的工作空間以及增強它的靈活性是一個重要的研究方向。機械臂的運動學涉及末端位姿和關節變量,是空間分析的一個重要基礎[4]。
根據OUR-2機(ji)械(xie)臂的連桿坐標系可(ke)以得到機(ji)械(xie)臂連桿參數,如表1所示。
表1 機械臂(bei)的(de)連桿參數

關節編號關節變量θi(°)連桿(gan)(gan)長度ai-1mm扭角αi-1(°)連桿(gan)(gan)偏(pian)置dimm關節轉(zhuan)角極限(°)1θ10180d1(-98.5)±1752θ2090d2(-121.5)±1753θ3a2(408)1800±1754θ4a3(376)1800±1755θ50-90d5(-102.5)±1756θ60900±175
相(xiang)鄰連桿坐標系D-H變換(huan)矩陣為:

(1)
由表(biao)1以(yi)及D-H變換矩陣可(ke)以(yi)得(de)到(dao)OUR-2機械臂的末端姿態:

(2)
經過(guo)計算得到的基座和末端(duan)位姿的變(bian)換矩(ju)陣元素如下:
nx=-s6c1s432-c6(s1s5-c5c1c432),
ny=s6s1s432-c6(c1s5+c5s1s432),nz=-c5c6s432-s6c432,
ox=s6(s1s5-c5c1c432)-c6c1s432,
oy=s6(c1s5-c5s1c432)+c6s1s432,
oz=c5s6s432-c6c1c432,
ax=c5s1+s5c1c432,
ay=c5c1-s5c1c432,
az=-s5s432,
px=d2s1+a3c1c32-d5c1s432+a2c1c2,
py=d2c1-a3s1c32+d5s1s432-a2s1c2,
pz=a3s32-d5c432-a2s2-d1.
其中:sinθi=si;sin(θ3-θ2)=s32;cosθi=ci;cos(θ3-θ2)=c32;cos(θ4-θ3+θ2)=c432;sin(θ4-θ3+θ2)=s432。
1.3 OUR-2機(ji)械臂正運動學(xue)仿(fang)真
MATLAB robotics toolbox是一個功能強大的工具箱,可以對機械臂進行運動學、軌跡規劃、動力學等方面的仿真[5]。
MATLAB robotics toolbox的drivebot(r)命令可以生成OUR-2機(ji)械(xie)臂的(de)三維(wei)模型,同時生成機(ji)械(xie)臂控(kong)制(zhi)面板,控(kong)制(zhi)面板可以調節(jie)機(ji)械(xie)臂的(de)角度,從而(er)使關節(jie)產生轉動(dong)。
設置仿真的初始關節變量和終止關節變量以及仿真時間,此時可以得到機械臂的末端位姿以及末端姿態矩陣。當初始角度θ初=(0,-π/3,π/6,π/2,0,0),終止角度θ終=(π/6,-π/6,π/3,-π/3,0,0)時,可以得到機械臂(bei)的初始和終(zhong)止三維(wei)模型,如(ru)圖4所(suo)示。

圖4 機械臂(bei)的(de)初(chu)始和終止三維模型
由于5、6關節角位移并沒有變化,這里不再列出其角位移曲線,利用MATLAB編程可以得到前(qian)4個關節的角位移曲線,如圖(tu)5所(suo)示(shi),末端執行器的運動軌(gui)跡如圖(tu)6所(suo)示(shi)。

圖5 前4個關節的角位(wei)移曲線

圖6 末端執行器的運動軌跡
圖5表明了機械臂各關節運行正常,可以平穩地從初始位置到達終止位置。圖6表明了OUR-2機械臂(bei)的參數設置合理,可(ke)以達到(dao)預期的目標。
機械臂的工作空間是指機械臂正常運行時,末端執行器坐標系的原點能在空間活動的最大范圍,或者說該原點可達點占有的體積空間,這一空間又稱可達空間或總工作空間[6],記作W(p)。關節(jie)變量和(he)工(gong)作空間的(de)關系可(ke)表示為:
W(p)={P(θi,θi∈Q)}.
其中:θi為關節變量,θi=[θ1,θ2,θ3,θ4,θ5,θ6];Q為空間約束,Q={θ‖ 和
和 分別為(wei)關(guan)節運動的(de)下(xia)限(xian)和上限(xian)。因(yin)此,機(ji)械(xie)臂(bei)的(de)工作區域可(ke)以表示為(wei):
分別為(wei)關(guan)節運動的(de)下(xia)限(xian)和上限(xian)。因(yin)此,機(ji)械(xie)臂(bei)的(de)工作區域可(ke)以表示為(wei):

(3)
蒙特卡洛法是一種利用隨機抽樣解決數學問題的方法,其計算速度快,工作量小,能夠精確地繪制出計算機圖形,利用蒙特卡洛法求取工作空間的具體步驟如下[7]:
(1) 對OUR-2機械(xie)臂進行正向運動學分析,得到(dao)機械(xie)臂的末端姿態向量(liang)。
(2) 利用隨機函數Rand(j)產生N個隨機值(0~1之間),由此產生的隨機步長為(θimax-θimin)·Rand(j)(θimax和θimin為關節變量的上限和下限),可以得到機械臂各個關節轉角的偽隨機值為θi=θimin+(θimax-θimin)Rand(j)。
(3) 將 6個關節(jie)轉角(jiao)代(dai)入正(zheng)運(yun)動學方程,得(de)到機(ji)械(xie)臂末端(duan)的(de)坐標值(zhi),所求末端(duan)位置點(dian)數(shu)目越(yue)(yue)多,機(ji)器人的(de)實際工作空間(jian)反映得(de)越(yue)(yue)精確。
(4) 利用MATLAB強大的畫圖(tu)功(gong)能,將所得位置用點的形式表現(xian)出來,便可得到工作空間(jian)的“云(yun)圖(tu)”。三維云(yun)圖(tu)代(dai)碼如下:
xx = ;
yy = ;
zz = ;
for N = 1:10000
N
a1=(175*(2*rand(1)-1))*pi/180;
a2=(175*(2*rand(1)-1))*pi/180;
a3=(175*(2*rand(1)-1))*pi/180;
a4=(175*(2*rand(1)-1))*pi/180;
xx=[xx,-121.5*sin(a1)+376*cos(a1)*cos(a3- a2)+102.5*cos(a1)*sin(a4-a3+a2)+408*cos(a1)*cos(a2)];
yy=[yy,-121.5*cos(a1)-376*sin(a1)*cos(a3-a2)-102.5*cos(a1)*sin(a4-a3+a2)-408*sin(a1)*cos(a2)];
zz=[zz,376*sin(a3-a2)+102.5*cos(a4-a3+a2)-408*sin(a2)+98.5];
end
figure(1);
plot3(xx,yy,zz,'g.');
其中:a1=θ1;a2=θ2;a3=θ3;a4=θ4;xx、yy、zz為機(ji)械臂的空間位置向量。
本文取(qu)N=100 000,即隨機坐(zuo)標數目為100 000個,應用蒙特卡洛法可得(de)機械臂的工作空(kong)間(jian)云圖,如圖7所示。

圖(tu)7 機械臂的工(gong)作空間云圖(tu)
由圖7可以看出,OUR-2機械臂幾乎可以達到最大區域的所有空間,利用蒙特卡洛法仿真模擬可以得到一系列的隨機點,但與真實的工作區域還有一定差距,這是由于該方法本身的限制,利用蒙特卡洛法只能不斷地逼近真實工作區域,并且這種逼近程度隨著關節組合數量越多越接近真實工作區域[8]。
本文首(shou)先分(fen)析了OUR-2機(ji)(ji)械臂(bei)的(de)正(zheng)運(yun)動(dong)學方程,利用MATLAB robotics toolbox進(jin)行了運(yun)動(dong)學仿真,驗證(zheng)了結構的(de)合理性。然(ran)后基于蒙(meng)特卡洛法進(jin)行了空(kong)間分(fen)析,可以看到(dao)空(kong)間內部點分(fen)布均(jun)勻,滿足(zu)機(ji)(ji)械臂(bei)的(de)使(shi)用要求。蒙(meng)特卡洛法克(ke)服(fu)了幾何法受(shou)到(dao)自由度限制的(de)缺(que)陷,并且能夠精(jing)確反映機(ji)(ji)械臂(bei)的(de)工作空(kong)間。