Escolar Documentos
Profissional Documentos
Cultura Documentos
TRABALHO DE ROBTICA
CINEMTICA DIRETA DOS
MANIPULADORES
Introduo
O objetivo deste trabalho obter a matriz de transformao referente a cinemtica direta de cada
um dos 5 tipos de manipuladores estudados em classe: Manipulador Cartesiano, Esfrico, Cilndrico,
Scara e Antropomrfico.
O primeiro passo identificar as matrizes referentes rotao e translao nos eixos desejados.
Como discutido em classe as matrizes referentes a uma translao possuem a seguinte forma:
b
[ ]
10 0 lx
D= 0 10 ly
0 0 1 lz
0 0 01
a
Onde lx, ly, lz representam o comprimento da translao a ser realizada nos eixos x, y e z
respectivamente.
Para uma rotao a matriz transformada tem a seguinte forma:
cos
sin
R=
0
0
a
sin
cos
0
0
0
0
1
0
0
0
0
1
Rotao no eixo Z
cos
0
R=
sin
0
a
1
0
0
0 cos sin
R=
0 sin cos
0
0
0
a
0
0
0
1
0 sin
1
0
0 cos
0
0
0
0
0
1
Rotao no eixo Y
Rotao no eixo X
T 3= T 1 T 2 T 3
% RPY Matrix
Rz = [cos(a) -sin(a) 0 0; sin(a) cos(a) 0 0; 0 0 1 0; 0 0 0 1];
Ry = [cos(b) 0 sin(b) 0; 0 1 0 0; -sin(b) 0 cos(b) 0; 0 0 0 1];
Rx = [1 0 0 0; 0 cos(c) -sin(c) 0; 0 sin(c) cos(c) 0; 0 0 0 1];
Rrpy = Rz*Ry*Rx
y = aTd(2,4);
z = aTd(3,4);
lx = 0:0.1:3;
ly = 0:0.1:3;
lz = 0:0.1:3;
x = eval(x);
y = eval(y);
z = eval(z);
plot3(x,y,z)
title('Trajetria do Rob de Coordenadas Cartesianas')
xlabel('Coordenada X');
ylabel('Coordenada Y');
zlabel('Coordenada Z');
[ ]
1
0
I
T 3=
0
0
0 0 lx
1 0 ly
0 1 lz
0 0 1
Observao: Neste grfico os comprimentos de todos os elos foram variados ao mesmo tempo.
T 3= I T 1 1T 2 2T 3
T 1 Rotao no eixo Z
T 2 Translao no eixo Z
T 3 Translao no eixo X
lx = 0:1:200;
lz = 0:1:200;
a = 0:pi/100:2*pi;
x = eval(x);
y = eval(y);
z = eval(z);
plot3(x,y,z)
title('Trajetria do Rob de Coordenadas Cilndricas')
xlabel('Coordenada X');
ylabel('Coordenada Y');
zlabel('Coordenada Z');
cos
sin
T 3=
0
0
sin 0 lx cos
cos 0 lxsin
0
1 lz
0
0 1
Neste modelo de manipulador as seguintes transformaes foram aplicadas: Primeiro uma rotao
no eixo Z seguida de uma translao nesse mesmo eixo. Aps realizada uma rotao no eixo Y. Por
ltimo uma translao no eixo X realizada.
I
T 4= T 1 T 2 T 3 T 4
T 1 Rotao no eixo Z
T 2 Translao no eixo Z
3
T 3 Rotao no eixoY
T 4 Translao no eixo X
Cdigo do Matlab:
clear all
clc
syms la lb l a b d e f g;
% Declarao das matrizes de transformao
aTb = [cos(a) -sin(a) 0 0; sin(a) cos(a) 0 0; 0 0 1 la; 0 0 0 1];
bTc = [cos(b) 0 sin(b) 0; 0 1 0 0 ; -sin(b) 0 cos(b) 0; 0 0 0 1];
cTd = [1 0 0 lb; 0 1 0 0; 0 0 1 0; 0 0 0 1];
% RPY Matrix
Rz = [cos(d) -sin(d) 0 0; sin(d) cos(d) 0 0; 0 0 1 0; 0 0 0 1];
Ry = [cos(e) 0 sin(e) 0; 0 1 0 0; -sin(e) 0 cos(e) 0; 0 0 0 1];
Rx = [1 0 0 0; 0 cos(f) -sin(f) 0; 0 sin(f) cos(f) 0; 0 0 0 1];
Rrpy = Rz*Ry*Rx
la = 0:1:200;
lb = 0:1:200;
a = 0:pi/100:2*pi;
b = 0:pi/100:2*pi;
x = eval(x);
y = eval(y);
z = eval(z);
plot3(x,y,z)
title('Trajetria do Rob de Coordenadas Esfricas')
xlabel('Coordenada X');
ylabel('Coordenada Y');
zlabel('Coordenada Z');
cos cos
cos sin
I
T 4=
sin
0
Rob Scara
Para se calcular a cinemtica direta do rob Scara leva-se em conta as seguintes transformadas:
Primeiro uma translao no eixo Z, em seguida duas rotaes no eixo Z e duas translaes no eixo X. Por
ltimo h uma translao no eixo Z para se chegar a ponta do efetuador do manipulador.
( 1+ 2)
cos sin(1 +2 )
(1 + 2 )
sin(1 +2 )
I
T 4 =
Cdigo do Matlab:
clear all
clc
syms la lb lc ld a1 a2 b d e f g;
% Declarao das matrizes de transformao
aTb = [1 0 0 0; 0 1 0 0; 0 0 1 la; 0 0 0 1];
bTc = [cos(a1) -sin(a1) 0 0; sin(a1) cos(a1) 0 0; 0 0 1 0; 0 0 0 1];
cTd = [cos(a2) -sin(a2) 0 lb; sin(a2) cos(a2) 0 0; 0 0 1 0; 0 0 0 1];
dTe = [1 0 0 lc; 0 1 0 0; 0 0 1 0; 0 0 0 1];
eTf = [1 0 0 0; 0 1 0 0; 0 0 1 ld; 0 0 0 1];
% RPY Matrix
Rz = [cos(d) -sin(d) 0 0; sin(d) cos(d) 0 0; 0 0 1 0; 0 0 0 1];
Ry = [cos(e) 0 sin(e) 0; 0 1 0 0; -sin(e) 0 cos(e) 0; 0 0 0 1];
Rx = [1 0 0 0; 0 cos(f) -sin(f) 0; 0 sin(f) cos(f) 0; 0 0 0 1];
Rrpy = Rz*Ry*Rx
% Rotacao usando angulos RPY
Rz1 = [cos(g) -sin(g) 0 0; sin(g) cos(g) 0 0; 0 0 1 0; 0 0 0 1];
Reuler = Rz*Ry*Rz1
% Rotacao usando angulos de Euler
aTf = simplify(aTb * bTc * cTd * dTe * eTf)
aTfRPY = simplify(aTf*Rrpy)
aTfEULER = simplify(aTf*Reuler)
x = aTf(1,4);
y = aTf(2,4);
z = aTf(3,4);
la = 0:1:200;
lb = 0:1:200;
lc = 0:1:200;
ld = 0:1:200;
a1 = 0:pi/100:2*pi;
10
a2 = 0:pi/100:2*pi;
x = eval(x);
y = eval(y);
z = eval(z);
plot3(x,y,z)
title('Trajetria do Rob Scara')
xlabel('Coordenada X');
ylabel('Coordenada Y');
zlabel('Coordenada Z');
Rob Antropomrfico
11
sin( 1+ 2) sin
1
lb+lccos
cos
I
T 3=
Cdigo do Matlab:
clear all
clc
syms la lb lc a b1 b2 d e f g;
% Declarao das matrizes de transformao
aTb = [cos(a) -sin(a) 0 0; sin(a) cos(a) 0 0; 0 0 1 la; 0 0 0 1];
bTc = [cos(b1) 0 sin(b1) lb; 0 1 0 0 ; -sin(b1) 0 cos(b1) 0; 0 0 0 1];
cTd = [cos(b2) 0 sin(b2) lc; 0 1 0 0 ; -sin(b2) 0 cos(b2) 0; 0 0 0 1];
% RPY Matrix
Rz = [cos(d) -sin(d) 0 0; sin(d) cos(d) 0 0; 0 0 1 0; 0 0 0 1];
Ry = [cos(e) 0 sin(e) 0; 0 1 0 0; -sin(e) 0 cos(e) 0; 0 0 0 1];
Rx = [1 0 0 0; 0 cos(f) -sin(f) 0; 0 sin(f) cos(f) 0; 0 0 0 1];
Rrpy = Rz*Ry*Rx
12
x = aTd(1,4);
y = aTd(2,4);
z = aTd(3,4);
la = 200;
lb = 200;
lc = 200;
a = 0:pi/100:2*pi;
b1 = 0:pi/100:2*pi;
b2 = 0:pi/100:2*pi;
% Variao do ngulo
% Variao do ngulo
% Variao do ngulo
x = eval(x);
y = eval(y);
z = eval(z);
plot3(x,y,z)
title('Trajetria do Rob de Coordenadas Antropomrfico')
xlabel('Coordenada X');
ylabel('Coordenada Y');
zlabel('Coordenada Z');
13