摘要:針對(duì)OUR-2機(jī)械臂的構(gòu)形特點(diǎn),對(duì)其進(jìn)行運(yùn)動(dòng)學(xué)及空間分析。采用D-H方法建立了OUR-2機(jī)械臂的連桿坐標(biāo)系,得到了以6個(gè)關(guān)節(jié)角度為變量的正運(yùn)動(dòng)學(xué)方程,并用MATLAB robotics toolbox對(duì)機(jī)械臂的正運(yùn)動(dòng)學(xué)進(jìn)行了仿真?;诿商乜宸ǚ治隽藱C(jī)械臂的工作空間,并利用MATLAB編程得到機(jī)械臂末端的工作空間點(diǎn)云圖。
關(guān)鍵詞:OUR-2機(jī)械臂;D-H方法;正運(yùn)動(dòng)學(xué);蒙特卡洛法
OUR機(jī)械臂有別于傳統(tǒng)工業(yè)機(jī)械臂,其特點(diǎn)是體積小、重量輕、有很快的運(yùn)動(dòng)速度和較大的活動(dòng)范圍,機(jī)械臂的最大運(yùn)動(dòng)速度可以達(dá)到180°/s,能夠處理更復(fù)雜、更危險(xiǎn)的工作,具有極強(qiáng)的靈活度、精確度和安全性。
對(duì)于機(jī)械臂運(yùn)動(dòng)學(xué)而言,正運(yùn)動(dòng)學(xué)相對(duì)簡(jiǎn)單,機(jī)械臂的工作空間求解方法主要有圖解法、解析法、數(shù)值法,以及由數(shù)值法衍生出來(lái)的蒙特卡洛法[1]。圖解法和解析法受到關(guān)節(jié)數(shù)目的限制,對(duì)于有些機(jī)械臂并不通用;數(shù)值法計(jì)算量太大,有些邊界曲面可靠性得不到保證[2]。蒙特卡洛法可以用數(shù)學(xué)圖形的形式直觀清晰地表示機(jī)械臂的工作空間。本文采用J.Craij改進(jìn)的D-H方法建立機(jī)械臂的連桿坐標(biāo)系,分析OUR-2機(jī)械臂的正運(yùn)動(dòng)學(xué)模型,得到機(jī)械臂正運(yùn)動(dòng)學(xué)的解析解,并利用MATLAB robotics toolbox進(jìn)行正運(yùn)動(dòng)學(xué)仿真分析,運(yùn)用蒙特卡洛法得到機(jī)械臂的工作空間。
1.1 機(jī)械臂模型
按照改進(jìn)的D-H方法建立OUR-2六自由度機(jī)械臂的連桿坐標(biāo)系。首先確定基坐標(biāo)系的位置以及末端的初始位置和姿態(tài),然后采用D-H法建立基坐標(biāo)系和各關(guān)節(jié)處的坐標(biāo)系,對(duì)于相同的基坐標(biāo)系,不同的D-H矩陣的末端位姿相同。建立的OUR-2機(jī)械臂連桿坐標(biāo)系如圖1所示。
利用SolidWorks建立了OUR-2六自由度機(jī)械臂三維模型,如圖2所示。機(jī)械臂共包括6個(gè)部分:基座、肩部、肘部、腕部1、腕部2以及腕部3。OUR-2有別于傳統(tǒng)的六自由度機(jī)械臂,6個(gè)關(guān)節(jié)均為模塊化旋轉(zhuǎn)關(guān)節(jié),每個(gè)模塊均由高性能的伺服電機(jī)、諧波減速器、機(jī)械剎車、驅(qū)動(dòng)器和通信總線組成,每個(gè)關(guān)節(jié)有一個(gè)自由度,機(jī)械臂的實(shí)驗(yàn)平臺(tái)如圖3所示。
1.2 機(jī)械臂正運(yùn)動(dòng)學(xué)分析
機(jī)械臂的工作空間是指機(jī)械臂末端所能到的范圍,是機(jī)械臂靈活性的重要指標(biāo),理論上機(jī)械臂的工作空間是一個(gè)可以覆蓋機(jī)械臂所在位置的球形區(qū)域[3],實(shí)際上由于奇點(diǎn)的存在,使得機(jī)械臂的靈活性和空間工作范圍受到限制,如何擴(kuò)大機(jī)械臂的工作空間以及增強(qiáng)它的靈活性是一個(gè)重要的研究方向。機(jī)械臂的運(yùn)動(dòng)學(xué)涉及末端位姿和關(guān)節(jié)變量,是空間分析的一個(gè)重要基礎(chǔ)[4]。
根據(jù)OUR-2機(jī)械臂的連桿坐標(biāo)系可以得到機(jī)械臂連桿參數(shù),如表1所示。
表1 機(jī)械臂的連桿參數(shù)
關(guān)節(jié)編號(hào)關(guān)節(jié)變量θi(°)連桿長(zhǎng)度ai-1mm扭角αi-1(°)連桿偏置dimm關(guān)節(jié)轉(zhuǎn)角極限(°)1θ10180d1(-98.5)±1752θ2090d2(-121.5)±1753θ3a2(408)1800±1754θ4a3(376)1800±1755θ50-90d5(-102.5)±1756θ60900±175
相鄰連桿坐標(biāo)系D-H變換矩陣為:
(1)
由表1以及D-H變換矩陣可以得到OUR-2機(jī)械臂的末端姿態(tài):
(2)
經(jīng)過(guò)計(jì)算得到的基座和末端位姿的變換矩陣元素如下:
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機(jī)械臂正運(yùn)動(dòng)學(xué)仿真
MATLAB robotics toolbox是一個(gè)功能強(qiáng)大的工具箱,可以對(duì)機(jī)械臂進(jìn)行運(yùn)動(dòng)學(xué)、軌跡規(guī)劃、動(dòng)力學(xué)等方面的仿真[5]。
MATLAB robotics toolbox的drivebot(r)命令可以生成OUR-2機(jī)械臂的三維模型,同時(shí)生成機(jī)械臂控制面板,控制面板可以調(diào)節(jié)機(jī)械臂的角度,從而使關(guān)節(jié)產(chǎn)生轉(zhuǎn)動(dòng)。
設(shè)置仿真的初始關(guān)節(jié)變量和終止關(guān)節(jié)變量以及仿真時(shí)間,此時(shí)可以得到機(jī)械臂的末端位姿以及末端姿態(tài)矩陣。當(dāng)初始角度θ初=(0,-π/3,π/6,π/2,0,0),終止角度θ終=(π/6,-π/6,π/3,-π/3,0,0)時(shí),可以得到機(jī)械臂的初始和終止三維模型,如圖4所示。
圖4 機(jī)械臂的初始和終止三維模型
由于5、6關(guān)節(jié)角位移并沒(méi)有變化,這里不再列出其角位移曲線,利用MATLAB編程可以得到前4個(gè)關(guān)節(jié)的角位移曲線,如圖5所示,末端執(zhí)行器的運(yùn)動(dòng)軌跡如圖6所示。
圖5 前4個(gè)關(guān)節(jié)的角位移曲線
圖6 末端執(zhí)行器的運(yùn)動(dòng)軌跡
圖5表明了機(jī)械臂各關(guān)節(jié)運(yùn)行正常,可以平穩(wěn)地從初始位置到達(dá)終止位置。圖6表明了OUR-2機(jī)械臂的參數(shù)設(shè)置合理,可以達(dá)到預(yù)期的目標(biāo)。
機(jī)械臂的工作空間是指機(jī)械臂正常運(yùn)行時(shí),末端執(zhí)行器坐標(biāo)系的原點(diǎn)能在空間活動(dòng)的最大范圍,或者說(shuō)該原點(diǎn)可達(dá)點(diǎn)占有的體積空間,這一空間又稱可達(dá)空間或總工作空間[6],記作W(p)。關(guān)節(jié)變量和工作空間的關(guān)系可表示為:
W(p)={P(θi,θi∈Q)}.
其中:θi為關(guān)節(jié)變量,θi=[θ1,θ2,θ3,θ4,θ5,θ6];Q為空間約束,Q={θ‖和分別為關(guān)節(jié)運(yùn)動(dòng)的下限和上限。因此,機(jī)械臂的工作區(qū)域可以表示為:
(3)
蒙特卡洛法是一種利用隨機(jī)抽樣解決數(shù)學(xué)問(wèn)題的方法,其計(jì)算速度快,工作量小,能夠精確地繪制出計(jì)算機(jī)圖形,利用蒙特卡洛法求取工作空間的具體步驟如下[7]:
(1) 對(duì)OUR-2機(jī)械臂進(jìn)行正向運(yùn)動(dòng)學(xué)分析,得到機(jī)械臂的末端姿態(tài)向量。
(2) 利用隨機(jī)函數(shù)Rand(j)產(chǎn)生N個(gè)隨機(jī)值(0~1之間),由此產(chǎn)生的隨機(jī)步長(zhǎng)為(θimax-θimin)·Rand(j)(θimax和θimin為關(guān)節(jié)變量的上限和下限),可以得到機(jī)械臂各個(gè)關(guān)節(jié)轉(zhuǎn)角的偽隨機(jī)值為θi=θimin+(θimax-θimin)Rand(j)。
(3) 將 6個(gè)關(guān)節(jié)轉(zhuǎn)角代入正運(yùn)動(dòng)學(xué)方程,得到機(jī)械臂末端的坐標(biāo)值,所求末端位置點(diǎn)數(shù)目越多,機(jī)器人的實(shí)際工作空間反映得越精確。
(4) 利用MATLAB強(qiáng)大的畫圖功能,將所得位置用點(diǎn)的形式表現(xiàn)出來(lái),便可得到工作空間的“云圖”。三維云圖代碼如下:
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為機(jī)械臂的空間位置向量。
本文取N=100 000,即隨機(jī)坐標(biāo)數(shù)目為100 000個(gè),應(yīng)用蒙特卡洛法可得機(jī)械臂的工作空間云圖,如圖7所示。
圖7 機(jī)械臂的工作空間云圖
由圖7可以看出,OUR-2機(jī)械臂幾乎可以達(dá)到最大區(qū)域的所有空間,利用蒙特卡洛法仿真模擬可以得到一系列的隨機(jī)點(diǎn),但與真實(shí)的工作區(qū)域還有一定差距,這是由于該方法本身的限制,利用蒙特卡洛法只能不斷地逼近真實(shí)工作區(qū)域,并且這種逼近程度隨著關(guān)節(jié)組合數(shù)量越多越接近真實(shí)工作區(qū)域[8]。
本文首先分析了OUR-2機(jī)械臂的正運(yùn)動(dòng)學(xué)方程,利用MATLAB robotics toolbox進(jìn)行了運(yùn)動(dòng)學(xué)仿真,驗(yàn)證了結(jié)構(gòu)的合理性。然后基于蒙特卡洛法進(jìn)行了空間分析,可以看到空間內(nèi)部點(diǎn)分布均勻,滿足機(jī)械臂的使用要求。蒙特卡洛法克服了幾何法受到自由度限制的缺陷,并且能夠精確反映機(jī)械臂的工作空間。