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