PUMA机器人工作空间大作业

实用文档

把代换式 (6) 代入式 (5) 得 ??1:

??2??22

sin(??? ??1)=??; cos(??? ??1)=1?(??)

??2??22

??? ??1=atan2[,±√1?()]

??=atan2(??,??)?atan2[??2,±√1?(??2)2]

1???? ???? {

式中,正、负号对应于 ??1的两个可能解。 2) 求 ??3

矩阵方程两端的元素(1,4)和(2,4)分别对应相等

????

?c1px?s1py?a3c23?a2c2?d4s23???pz?d4c23?a3s23?a2s2

平方和为:

d4s3?a3c3?k

其中

k?222222px?py?pz2?d2?d4?a2?a32a2

解得:

2?3?atan2(a3,d4)?atan2(k,?d42?a3?k2)

3) 求 ??2 在矩阵方程

0T6?0T11T22T33T44T55T6

两边左乘逆变换

0T3?1。

0T3?10T6?3T44T55T6

axayaz0px?py???3T6pz??1?

?c1c23??cs?123??s1??0

s1c23?s1s23c10?s23?c2300?a2c3??nx?na2s3???y?d2??nz??1??0oxoyoz0实用文档

方程两边的元素(1,4)和(3,4)分别对应相等,得

?c1c23px?s1c23py?s23pz?a3?a2c3?0??c1s23px?s1s23py?c23pz?a2s3?d4?0联立,得

s23

c23

??a2s3?d4??c1px?s1py??pz?a2c3?a3??s23?22?pc?ps?p??x1y1z???a2c3?a3??c1px?s1py??pz?a2s3?d4??c??2322pc?ps?p???x1y1z?

s23和

c23表达式的分母相等,且为正,于是

??23??2??3?atan2???a2s3?d4??c1px?s1py??pz?a2c3?a3?,?a2c3?a3??c1px?s1py??pz?a2s3?d4?? 根据解

?1和?3的四种可能组合,??可以得到相应的四种可能值23,于是可得2

的四种可能解

?2??23??3

式中

?2取与?3相对应的值。

4) 求 ??4

令两边元素(1,3)和(2,3)分别对应相等,则可得

?c1c23ax?s1c23ay?s23az??c4s5??s1ax?c1ay?s4s5?

只要

s5?0,便可求出

?4

?4?atan2??s1ax?c1ay,c1c23ax?s1c23ay?s23az?当

s5?0时,机械手处于奇异形位。

5) 求 ??5

0T4?10T6?4T55T6

oxoyoz0axayaz0px?py???4T6pz??1??c1c4c23?s1s4??scc?sc?412314??c1s23?0?

s1c4c23?c1s4?s4s1c23?c1c4?s1s230?s23c4s23s4?c230?c3c4a2?d2s4?c4a3??nx?nc3s4a2?d2c4?s4a3???y??nzs3a2?d4??1??0实用文档

根据矩阵两边元素(1,3)和(2,3)分别对应相等,可得

??azs23c4?ax?c1c4c23?s1s4??ay?s1c4c23?c1s4??s5??axc1s23?ays23s1?azc23?c5??

?5?atan2?azs23c4?ax?c1c4c23?s1s4??ay?s1c4c23?c1s4?,?axc1s23?ays23s1?azc23?

6) 求 ??6

0T5?10T6?5T6

根据矩阵两边元素(2,1)和(1,1)分别对应相等,可得

?nx?c1s4c23?s1c4??ny?s4s1c23?c1c4??nzs23s4?s6?????nx?c1c4c5c23?s1c5s4?c1s5s23??ny?c4s1c5c23?s1s5s23?s4c1c5??nz?s5c23?c4s5s23??c6 从而求得

?6?atan2?s6,c6?④ 用Matlab编程得出工作空间

工作空间:机器人的手臂或手部安装点所能到达的所有空间区域,不包括手部本身所能到达的空间区域。

可将第5个坐标系的坐标原点看作手部安装点,计算工作空间时,将第5个坐标系的坐标原点当作动点,取

??6=0

将其带入步骤②计算出表达式 ????,????,????,即可求得动点的位置(工作空间)。相应的Matlab程序如下:

clc;clear format long

% 给出PUMA机器人的基本设计参数; a2 = 431.8; a3 = 20.32; d2 = 149.09; d4 = 433.07;

% 计算该机器人动点的位置,即 px,py,pz;

% 设置步长l,计数器初始值为1,并预先为px,py,pz分配内存空间; l = pi/180; k = 1;

px = linspace(0,1,100000); py = linspace(0,1,100000);

实用文档

pz = linspace(0,1,100000); for theta1 = -160*l:10*l:160*l for theta2 = -225*l:10*l:45*l for theta3 = -45*l:10*l:225*l

px(k) = a2*cos(theta1)*cos(theta2) - d2*sin(theta1) -

d4*(cos(theta1)*cos(theta2)*sin(theta3) + cos(theta1)*cos(theta3)*sin(theta2)) + a3*cos(theta1)*cos(theta2)*cos(theta3) - a3*cos(theta1)*sin(theta2)*sin(theta3);

py(k) = d2*cos(theta1) - d4*(cos(theta2)*sin(theta1)*sin(theta3)

+ cos(theta3)*sin(theta1)*sin(theta2)) + a2*cos(theta2)*sin(theta1) +

a3*cos(theta2)*cos(theta3)*sin(theta1) - a3*sin(theta1)*sin(theta2)*sin(theta3);

pz(k) = - d4*cos(theta2 + theta3) - a3*sin(theta2 + theta3) - a2*sin(theta2);

k = k+1; end end end

% 根据px,py,pz的值,绘制工作空间的示意图,并设置标题等图形属性; plot3(px,py,pz,'.');

title('PUMA机器人的工作空间'); xlabel('X/mm'); ylabel('Y/mm'); zlabel('Z/mm'); grid on

最后得到PUMA的机器人的工作空间如下图所示:

实用文档

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4