Vous êtes sur la page 1sur 63

DRA.

SHLOMI NEREIDA CALDERN VALDEZ

Nombre

Smbolo

Grados de Libertad

Superficie Comn

Rotacional

Cilindro

Prismtica

Prisma

Helicoidal

Tornillo

Cilndrica

Cilindro

Esfrica

Esfera

Planar

Plano

Las operaciones que podemos realizar con matrices y vectores son diversas . Las ms comunes son:

Producto de una matriz por un vector


>> y=A*x

Trasposicin de un vector o de una matriz


>> z=x'
>> B=B'

Producto escalar de vectores


>> z=x'*y

Producto elemento a elemento (Hadamar)


>> z=x.*y

Determinante de una matriz


>> det(A)

Inversa de una matriz


>> inv(A)

Estas matrices son utilizadas para describir la localizacin de


slidos en un espacio n-dimensional, expresando las relaciones
entre corderas cartesianas. La gran innovacin que introdujeron
estas matrices es que permiten representar en una nica matriz
la posicin y la orientacin del cuerpo

R3 x3
T
f1x3

P3 x1
R1x1

R- matriz de rotacin
p- matriz de traslacin
f- matriz de perspectiva
w- matriz de escaldo
Es importante notar que el producto de estas matrices en general no es
conmutativo

Mediante las coordenadas homogneas podemos representar


de manera conjunta la posicin y la orientacin (localizacin).
Partiendo de las coordenadas homogneas, ingresamos al
concepto de matriz de transformacin homognea.

TRASLACION: Se trata de representar la posicin y orientacin


de un sistema girado y trasladado O'UVW con respecto a un
sistema fijo de referencia OXYZ.

Un vector trasladado es de la forma = + + . La


matriz homognea de traslacin es:
T(p)= [1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1], la cual se
denomina matriz bsica de traslacin.

Un vector cualquiera r, representado en el sistema O'UVW,


tendr como componentes del vector con respecto al sistema
OXYZ:
[rx ry rz 1]'=[1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1]*[ru rv rw
1]'= [ru+px;rv+py;rw+pz+1] (1)
Y a su vez, un vector rx, y, z desplazado segn T tendr como
componentes r'x, y, z:
[r'x r'y r'z 1]'=[1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1]* [rx ry rz
1]=[rx+px;ry+py;rz+pz;1] (2)

1. Segn la figura, en el sistema O'UVW esta trasladado un


vector p(6, 3,8) con respecto al sistema OXYZ. Calcular las
coordenadas (rx, ry, rz) del vector r cuyas coordenadas con
respecto al sistema O'UVW son ruvw (2, 7,3).

SOLUCIN
>> Tp=[1 0 0 6;0 1 0 3; 0 0 1 8;0 0 0 1];
>> ruvw=[-2 7 3 1]';
>> rxyz=Tp*ruvw
rxyz =
4
10
11
1

Calcular el vector r'xyz resultante de trasladar al vector


rxyz(4,4,11)segn la transformacin T(p) con p(6,3,8)

>> Tp=[1 0 0 6;0 1 0 3; 0 0 1 8;0 0 0 1];


>> rxyz=[4 4 11 1]';
>> r1xyz=Tp*rxyz

r1xyz =
10
7
19
1

En esta situacin corresponde definir tres matrices homogneas


bsicas segn se realice sta de acuerdo a cada uno de los
tres ejes coordenados OX, OY y OZ del sistema de referencia
OXYZ:
% T(x,a)=[1 0 0 0;0 cosa -sena 0;0 sena cosa 0;0 0 0 1], (I)
% T(y,b)=[cosb 0 senb 0;0 1 0 0;-senb 0 cosb 0;0 0 0 1], (II)

% T(z,c)=[cosc -senc 0 0;senc cosc 0 0;0 0 1 0;0 0 0 1], (III)

Un vector cualquiera r, representado en el sistema girado


O'UVW por ruvw, tendr como componentes (rx, ry, rz) en el
sistema OXYZ las siguientes:
[rx ry rz 1]'=T[ru rv rw 1]' (IV)
Y a su vez un vector rxyz rotado segn T vendr expresado
por r'x,y,z segn:
[r'x r'y r'z 1]'=T[rx ry rz 1]' (V)

La traslacin y la rotacin son transformaciones que se realizan


en relacin a un sistema de referencia

Se trata de realizar primero una rotacin sobre uno de los ejes del
sistema OXYZ seguida de una traslacin, las matrices homogneas
sern las que a continuacin se expresan:
Rotacin de un ngulo a sobre el eje OX seguido de una traslacin
de vector pxyz
% T((x,a),p)= [1 0 0 px;0 cosa sena py;0 sena cosa pz;0 0 0 1] (VI)

% T((y,b),p)= [cosb 0 senb px;0 1 0 py;senb 0 cosb pz;0 0 0 1] (VII)


% T((z,c),p)= [cosc senc 0 px;senc cosc 0 py;0 0 1 pz;0 0 0 1] (VII)

Segn la figura adjunta, el sistema 0UVW se encuentra girado


-90 grados alrededor del eje OZ con respecto al sistema
OXYZ. Calcular las coordenadas del vector rxyz si
ruvw=[4,8,12]'

Procedemos a ingresar los valores inicialmente para construir la


matriz T(z,c), ecuacin (III).
Tzc=[0 1 0 0;1 0 0 0;0 0 1 0;0 0 0 1], y luego construimos la
matriz ruvw utilizando la informacin entregada [ru rv rw 1]'=
ruvw=[4,8,12,1]'.
Luego aplicamos [rx ry rz 1]'=T[ru rv rw 1]' , ecuacion (IV)

>> Tzc=[0 1 0 0;1 0 0 0;0 0 1 0;0 0 0 1]


Tzc =
0 1 0 0
1 0 0 0
0 0 1 0
0 0 0 1
>> ruvw=[4,8,12,1]'
ruvw =
4
8
12
1
>> rxyz=Tzc*ruvw
rxyz =
8
4
12
1

>> t1=rotz(-pi/2)
t1 =
0.0000 1.0000
0
0
-1.0000 0.0000
0
0
0
0 1.0000
0
0
0
0 1.0000
>> ruvw=[4 8 12 1]'
ruvw =
4
8
12
1
>> rxyz=t1*ruvw
rxyz =
8.0000
-4.0000
12.0000

Un sistema OUVW ha sido girado 90 grados alrededor del eje


OX y posteriormente trasladado un vector p(8,-4,12) con
respecto al sistema OXYZ (figura adjunta). Calcular las
coordenadas (rx,ry,rz) del vector r con coordenadas ruvw(-3,4,11).

Procedemos a ingresar los valores inicialmente para construir la


matriz T(z,c),ecuacin (III).
Procedemos a utilizar la ecuacin [rx ry rz 1]'=T[ru rv rw 1]'
ecuacin (IV).
En donde, la matriz de transformacin,
T((x,a),p)= [1 0 0 px;0 cosa sena py;0 sena cosa pz;0 0 0 1]
(VI)

Queda as:
Txa=[1 0 0 8;0 0 -1 -4;0 1 0 12;0 0 0 1]
Txa =
1008
0014
0 1 0 12
0001
[ru rv rw 1]'= ruvw=[-3,4, -11,1]'
% Ahora ya podemos aplicar [rx ry rz 1]'=T[ru rv rw 1]' ,
ecuacin (IV).

>> Txa=[1 0 0 8;0 0 -1 -4;0 1 0 12;0 0 0 1]


Txa =
1 0 0 8
0 0 -1 -4
0 1 0 12
0 0 0 1
>> ruvw=[-3,4, -11,1]'
ruvw =
-3
4
-11
1
>> rxyz=Txa*ruvw
rxyz =
5
7
16
1

Se trata de realizar primero una traslacin seguida de una rotacin sobre los
ejes coordenados del sistema OXYZ. Las matrices homogneas resultantes son
las siguientes:
Traslacin del vector px, y, z seguida de rotacin de un ngulo a sobre el eje
OX. T(p,(x,a))= [1 0 0 px; 0 cosa sena pycosa-pzsena; 0 sena cosa
pysena+pzcosa;0 0 0 1] (I)
Traslacin del vector px, y, z seguida de rotacin de un ngulo b sobre el eje
OY. T(p,(y,b))= [cosb 0 senb pxcosb+pzsenb;0 1 0 py; senb 0 cosb
pzcosb+pxsenb; 0 0 0 1] (II).

Traslacin del vector px, y, z seguida de rotacin de un ngulo c sobre el eje


OZ. T(p,(z,c))=[cosc senc 0 pxcosc-pysenc;senc cosc 0 pxsenc+pycosc;0 0 1 pz;0
0 0 1] (III).

Cuando en las componentes de un vector es posible la


realizacin de un escalado, podemos aplicar las matrices
homogneas. Para lograr esto, es suficiente emplear una matriz
del tipo: T=[a 0 0 0;0 b 0 0;0 0 c 0; 0 0 0 1].

El caso tpico es transformar el vector r(x, y, z) en el vector r


(ax, by, cz). Si se trata de hacer un escalado global de las tres
componentes, tenemos el recurso apropiado con la matriz T=[1
0 0 0;0 1 0 0;0 0 1 0;0 0 0 s].

Para crear una traslacin pura se utiliza la funcin transl


>> transl(0.5, 0.0, 0.0)
Para crear una matriz de rotacin se utiliza rote donde e es el
eje de rotacin, y el ngulo como siempre en mathlab, se indica en
radianes, pudindose utilizar la constante pi.
>> roty(pi/2)
Para crear una matriz de transformacin homognea de rotacin:
>> trotx(-pi/2)
Para crear una combinacin de ellos simplemente se multiplican las
matrices
t = transl(0.5, 0.0, 0.0) * trotx(-pi/2)

tr = trotx(.2)*troty(.3)*transl(1,2,3)
trplot(tr)
4
Z
3.5

3
X
2.5
2
2.5
2

3
2.5

1.5

1.5
0.5

1
X

Un sistema OUVW ha sido trasladado un vector p(8,-12,-4) con


respecto al sistema OXYZ y girado 90 grados alrededor del
eje OX (figura adjunta). Calcular las coordenadas (rx,ry,rz)del
vector r de coordenadas ruvw (-3,4,11).

Procedemos a ingresar los valores inicialmente para construir la


matriz T(p,(x,a)), ecuacin (I).
Tpxa=[1 0 0 8;0 0 -1 -12; 0 1 0 -4; 0 0 0 1]
Y luego construimos la matriz
[ru rv rw 1]'= ruvw=[3,4, 11,1]'
Ahora ya podemos aplicar
[rx ry rz 1]'=T[ru rv rw 1]'

>> Tpxa=[1 0 0 8;0 0 -1 -12; 0 1 0 -4; 0 0 0 1]


Tpxa =
1
0
0
0

0
0
1
0

0 8
-1 -12
0 -4
0 1

>> Tpxa*ruvw
ans =
11
-23
0
1

>> T=transl(8,-12,-4)*trotx (pi/2)*[3,4,11,1]'


T =

11.0000
-23.0000
0.0000
1.0000

Se quiere obtener la matriz de transformacin que representa


al sistema O'UVW obtenido a partir del sistema OXYZ
mediante un giro de ngulo de -90 grados alrededor del eje
OX, de una traslacin de vector p(x, y, z) , (5,5,10) y un giro de
90 grados sobre el eje OZ.

>> Tp=[1 0 0 5;0 1 0 5;0 0 1 10;0 0 0 1]


Tp =
1 0 0 5
0 1 0 5
0 0 1 10
0 0 0 1
>> rotz(pi/2),rotx(-pi/2)
ans =
0.0000 -1.0000
0
0
1.0000 0.0000
0
0
0
0 1.0000
0
0
0
0 1.0000
ans =
1.0000
0
0
0
0 0.0000 1.0000
0
0 -1.0000 0.0000
0
0
0
0 1.0000

>> T=rotz(pi/2)*Tp*rotx(pi/2)
T=
0.0000 -0.0000 1.0000 -5.0000
1.0000 0.0000 -0.0000 5.0000
0 1.0000 0.0000 10.0000
0
0
0 1.0000

T=r2t(rotz(pi/2))*transl(5,5,10)*r2t(rotx(-pi/2))
T=
0.0000 -0.0000 -1.0000 -5.0000
1.0000 0.0000 0.0000 5.0000
0
-1.0000 0.0000 10.0000
0
0
0
1.0000

Utilizando las funciones de la Toolbox de Matlab:


1. Dar la matriz de transformacin de una translacin de 6
unidades en el eje X, -3 unidades en el eje Y y 8 unidades en
el eje Z.
2. Dar la matriz de transformacin de una rotacin de 0 en X,
0 en Y y 90 en Z.

3. Dar la matriz de transformacin de un sistema que se ha


desplazado 6 unidades en X, ha rotado 45 en Y y -90 en Z

El espacio de trabajo del robot debe ser cuidadosamente


estudiado para definir el volumen justo de trabajo del robot
En un robot de seis grados de libertad rotacional, las primeras
tres barras son las que aportan la mayor dinmica debido a su
peso.
En un robot de seis grados de libertad, las tres primeras
articulaciones del robot deben dar las condiciones de posicin y
las tres ltimas articulaciones del extremo del robot deben
concentrar en un punto de la mano, los tres grados de libertad
de orientacin.

El problema cinemtico directo consiste en determinar la


posicin y orientacin del final del extremo del robot a partir
de las articulaciones y parmetros geomtricos del robot.

x l1 cos 1 l2 cos q1 q2
y l1sen1 l2 sen q1 q2

>> L1=1
>> L2=1
>> th1=0:(pi/2)/20:pi/2
>> th2=0:(pi/2)/20:pi/2
>> px=L1*cos(th1)+L2*cos(th1+th2)
>> py=L1*sin(th1)+L2*sin(th1+th2)
>> plot(px,py)

function valor_a_retornar=nombre_de_funcion(parametros,...)
function p=pcd(L1,L2,th1,th2)
px=L1*cos(th1)+L2*cos(th1+th2);
py=L1*sin(th1)+L2*sin(th1+th2);
p=[px; py]
donde p es la variable que se retorna, y pcd es el nombre de la
funcin seguido de los argumentos. La variable p contiene en la primera
fila la secuencia de coordenadas X, y en la segunda las Y. La funcin
debe escribirse en un fichero de texto separado cuyo nombre debe ser
el de la funcin seguido de la extensin .m (pcd.m).
>> p=pcd(L1,L2,th1,th2);
>> plot(p(1,:),p(2,:))

GRAFICA DE LA CONFIGURACIN ESPACIAL DEL ROBOT


Se ha dibujado exclusivamente la trayectoria descrita por el EF,
pero no el robot. Dada una configuracin espacial (por ejemplo,
1 = 30 , 2 = 60), puede obtenerse un grfico del robot
mediante:
>> th1=30*pi/180;
>> th2=60*pi/180;
>> p=pcd(L1,L2,th1,th2);
>> robotgraph(L1,th1,p);

robotgraph ser la funcin que dibuja el robot en pantalla. Para desarrollar


esta funcion, debe tenerse en cuenta que el robot se compone de dos segmentos
lineales: el primero entre los puntos (0;0) y (cos 1; sin 1), y el segundo entre este
ltimo punto y la posicin del EF p = (px; py).
Para trazar el robot, bastar con realizar un plot en el que las variables
independiente y dependiente son dos vectores conteniendo las coordenadas X e Y,
respectivamente, de los tres puntos mencionados.
Una posible implementacin de la funcin es la siguiente:
function robotgraph (L1,th1,p)
x=[0 L1*cos(th1) p(1)];
y=[0 L1*sin(th1) p(2)];
plot(x,y)
axis([-2 2 -2 2]);
El comando axis asegura que en sucesivos plots se conservan los rangos X e Y de la
grafica.

Eslabn 1:
a1 = 350 mm
d1= 460.5 mm
1 = 0
1 = 1 {variable, rotacin}
Eslabn 2:
a2 = 250 mm
d2= 85.5 mm
2= 0
2 = 2 {variable, rotacin}
Eslabn 3:
a3 = 0 mm
d3= d3 {variable, prismtica}
3 = 0
3 = 0

L1=link([0, 0.350, 0, 0.4605,0]);


L2=link([0, 0.250, 0, 0.0855,0]);
L3=link([0, 0, 0, 0,1]);
srx=robot({L1 L2 L3});
1
0.5
srx.name='SRX611';
0
srx.manuf='Sony';
-0.5
plot(srx,[0 0 0]);
Z

yz x

SRX 611

-1
1
0.5

1
0.5

-0.5
Y

-1

-0.5
-1
X

UNIN

ai

alfai

di

tetai

q1

q2

>> L{1}=link([0 1 0 0 0]);


>> L{2}=link([0 1 0 0 0]);
>> r=robot(L,'D2')
r=
D2 (2 axis, RR)
grav = [0.00 0.00 9.81]
alpha
A
theta
R/P
0.000000
1.000000
0.000000
(std)
0.000000
1.000000
0.000000
(std)
>> plot(r, [0 0])

standard D&H parameters


D
0.000000

0.000000

yz x
0
D2
-1

-2
2
1

2
1

-1
Y

-1
-2

-2

link especifica que la convencin estndar de D&H ser usada


(sta es por defecto)
Los parmetros de link deben suministrarse (el cual es diferente
al orden de las columnas de la tabla de arriba). El quinto
argumento, sigma, es una bandera que indica si la unin es
rotativa (sigma es cero) o prismtica (sigma diferente de cero).

Los objetos de link se pasan como un arreglo a la funcin


robot() la cual crea un objeto robot el cual se pasa a muchas
de las otras funciones de la caja de herramientas.

Cinemtica Directa

T = fkine(robot, q)
fkine calcula la cinemtica directa para un vector q que
representa las coordenadas de la articulacin. Devuelve una
matriz de transformacin homognea que describe el efector
final.

UNIN

Teta

alfa

q1

l1

90

d2

90

d3

q4

l4

4
3
2

rob =

1
x

>> L1 = link([0 0 0 1 0]);


D2 = link([pi/2 0 pi/2 1 1]);
D3 = link([0 0 0 1 1]);
L4 = link([0 0 0 1 0]);
rob = robot({L1 D2 D3 L4},'ROBCIL')
plot(rob, [0 0 0 0])

ROBCIL

-1
-2
-3
-4
4
2
0

ROBCIL (4 axis, RPPR)


grav = [0.00 0.00 9.81]
alpha
A
theta
0.000000 0.000000 0.000000 1.000000 R
1.570796 0.000000 1.570796 1.000000 P
0.000000 0.000000 0.000000 1.000000 P
0.000000 0.000000 0.000000 1.000000 R

-2
-4

-4

-2

standard D&H
parameters
X
D

(std)
(std)
(std)
(std)

R/P

Una vez creado el robot se realiza la solucin completa al


problema cinemtico directo con la funcin fkine: Para unas
coordenadas de las articulaciones de cero, tenemos:
q1=[0 0 0 0];
q2=[0 1 1 0];
T1f=fkine(rob,q1);
T2f=fkine(rob,q2);

La funcin DENAVIT realiza los clculos anteriores devolviendo la matriz de


transformacin homognea
% DENAVIT Matriz de transformacin homognea.
% DH = DENAVIT(TETA, D, A, ALFA) devuelve la matriz de transformacin
% homognea 4 x 4 a partir de los parmetros de Denavit-Hartenberg
% D, ALFA, A y TETA.
%
% See also DIRECTKINEMATIC.
function dh=denavit(teta, d, a, alfa)
dh=[cos(teta) -cos(alfa)*sin(teta) sin(alfa)*sin(teta) a*cos(teta);
sin(teta) cos(alfa)*cos(teta) -sin(alfa)*cos(teta) a*sin(teta);
0 sin(alfa) cos(alfa) d;
0 0 0 1];

PARMETROS D - H
UNIN

Teta

alfa

q1

l1

d2

-a2

-90

d3

q4

l4

Cdigo fuente de la funcin DIRECTKINEMATIC para el robot


cilndrico de 4 grados de libertad.
Debe notarse que el vector de coordenadas articulares Q
representa los 4 grados de libertad del robot, 2 rotacionales y
2 prismticas y se introduce en los parmetros D-H como
variables.

% DIRECTKINEMATIC4 Direct Kinematic.


% A04 = DIRECTKINEMATIC4(Q) devuelve la matriz de transformacin del
% primer sistema de coordenadas al ltimo en funcin del vector Q
% de variables articulares.
function A04 = directkinematic4(q)
% Parmetros Denavit-Hartenberg del robot
teta = [q(1) 0 0 q(4)];
d = [0.4 q(2) q(3) 0.2 ];
a = [0 -0.1 0 0 ];
alfa = [0 -pi/2 0 0 ];
% Matrices de transformacin homognea entre sistemas de coordenadas consecutivos
A01 = denavit(teta(1), d(1), a(1), alfa(1));
A12 = denavit(teta(2), d(2), a(2), alfa(2));
A23 = denavit(teta(3), d(3), a(3), alfa(3));
A34 = denavit(teta(4), d(4), a(4), alfa(4));
% Matriz de transformacin del primer al ltimo sistema de coordenadas
A04 = A01 * A12 * A23 * A34;

PARMETROS D - H
UNIN

Teta

alfa

q1+90

l1

-90

q2-90

a2

q3+180

90

q4

l4

-90

q5

90

q6

l6

% DIRECTKINEMATIC6 Direct Kinematic.


% A06 = DIRECTKINEMATIC6(Q) devuelve la matriz de transformacin del primer sistema de coordenadas al
ltimo en funcin del vector Q de variables articulares.
function A06 = directkinematic6(q)
% Parmetros Denavit-Hartenberg del robot
teta = q;
d = [0.315 0 0 0.5 0 0.08];
a = [0 0.45 0 0 0 0];
alfa = [-pi/2 0 pi/2 -pi/2 pi/2 0];
% Matrices de transformacin homognea entre sistemas de coordenadas consecutivos
A01 = denavit(teta(1), d(1), a(1), alfa(1));
A12 = denavit(teta(2), d(2), a(2), alfa(2));
A23 = denavit(teta(3), d(3), a(3), alfa(3));
A34 = denavit(teta(4), d(4), a(4), alfa(4));
A45 = denavit(teta(5), d(5), a(5), alfa(5));
A56 = denavit(teta(6), d(6), a(6), alfa(6));
% Matriz de transformacin del primer al ltimo sistema de coordenadas
A06 = A01 * A12 * A23 * A34 * A45 * A56;

Vous aimerez peut-être aussi