Matrices de Transformación Homogénea
Matrices de Transformación Homogénea
Matrices de Transformación Homogénea
Materia: Robtica
i
CONTENIDO
1 INTRODUCCIN ................................................................................................................................... 1
2 ANTECEDENTES ................................................................................................................................... 1
3 JUSTIFICACIN .................................................................................................................................... 2
7 CONCLUSIONES ................................................................................................................................. 12
8 ANEXOS ............................................................................................................................................. 13
UPB 2015 ii
1 INTRODUCCIN
El modelo geomtrico inverso(MGI) nos sirve para obtener los ngulos o distancias en
nuestro robot con introduciendo la matriz de transformacin 0
tal como si nosotros
introduzcamos tales valores para el modelo geomtrico directo(MGD).
Este modelo nos permite obtener las expresiones para hallar tales ngulos o distancias. Para
la obtencin de tales expresiones se requiere utilizar el mtodo de Paul.
Este mtodo trata de hacer igualaciones de matrices, y de esta forma despejar las
variables requeridas.
Las expresiones de las matrices no siempre son visiblemente solucionables, para eso se
requiere despejar las matrices y de esto se trata el mtodo como se ve en la Ilustracin N1.
Para verificar que est correcta las dimensiones obtenidas, se debe comprobar con el
MGD teniendo los ngulos o distancias ya que esto nos resultar una matriz de
transformacin, y es esta la matriz introducida para hallar los ngulos o distancias que
anteriormente fueron definidas.
2 ANTECEDENTES
UPB 2014 1
3 JUSTIFICACIN
Es importante contar con herramientas tales como la computadora para realizar el clculo
rpido de los ngulos, ya que el robot lee estos valores y lo traduce a movimiento de
motores o servomotores.
UPB 2014 2
4 TRABAJO REALIZADO
UPB 2014 3
Tabla 1. Parmetros geomtricos.
j d R
1 0 0 0 1 D1
2 0 /2 0 2 0
3 0 0 D2 3 0
4 0 0 D3 4 0
5 0 - /2 0 5 D4
Cos[1] Sin[1] 0 0
0 Sin[1] Cos[1] 0 0
1 = [ ]
0 0 1 1
0 0 0 1
Cos[2] Sin[2] 0 0
1 0 0 1 0
2 = [ ]
Sin[2] Cos[2] 0 0
0 0 0 1
Cos[3] Sin[3] 0 2
2 Sin[3] Cos[3] 0 0
3 = [ ]
0 0 1 0
0 0 0 1
Cos[4] Sin[4] 0 3
3 Sin[4] Cos[4] 0 0
4 = [ ]
0 0 1 0
0 0 0 1
Cos[5] Sin[5] 0 0
4 0 0 1 4
5 = [ ]
Sin[5] Cos[5] 0 0
0 0 0 1
Aplicando el mtodo de Paul se pudo hallar las expresiones de los ngulos, se debe tomar
en cuenta que se utiliza variables de la matriz a introducir como la siguiente:
sx
4
5 = [ ]
0 0 0 1
UPB 2014 4
Con la ayuda de Wolfram Mathematica 9.0 se pudo simplificar las expresiones para luego
con ayuda de lpiz y papel poder despejarla utilizando las ecuaciones caractersticas del
mtodo de Paul.
= ( )
Para 5:
= ( )
Para 3:
= ( , )
Donde:
( + + ( + + )) + ( ( + + ))
=
Para 2:
= ( ,
Donde:
sin 2
(2 + 3 cos 3)( 1 4 cos(2 + 3 + 4)) (3 sin 3)( cos 1 + sin 1 + 4 sin(2 + 3 + 4))
=
(2 + 3 + cos 3)2 + (3 sin 3)2
cos 2
(2)( cos 1 + sin 1 + 4 sin(2 + 3 + 4)) + (3 sin 3)( 1 4 cos(2 + 3 + 4))
=
(2 + 3 + cos 3)2 + (3 sin 3)2
Para 4:
4 = cos 1 2 3
UPB 2014 5
5 EJEMPLOS DE APLICACIN
Con el programa elaborado en Matlab, se verificar los valores dndonos los valores de la
matriz a la cual queremos llegar calculando los ngulos tomando en cuenta las
dimensiones del robot como se muestra en la Ilustracin N3.
As que para este caso las distancias que se tomar en cuenta son las siguientes:
Para la primera prueba se tomar los datos iniciales para que nuestro robot este
completamente erguido verticalmente, entonces tenemos:
UPB 2014 6
Cuando se elige 1 nos permitir introducir los ngulos:
Cuando se elige 2 nos permitir obtener los ngulos calculados en la opcin anterior que
sera la 1.
UPB 2014 7
Como se puede notar:
1 0.7854 /4
2 0.3927 /8
3 1.5708 /2
4 0.3927 /8
UPB 2014 8
5 0.7854 /4
Para la segunda prueba se tomar los datos iniciales para que nuestro robot este
completamente erguido verticalmente, entonces tenemos:
UPB 2014 9
Cuando se elige 2 nos permitir obtener los ngulos calculados en la opcin anterior que
sera la 1.
UPB 2014 10
1 1.5708 /2
2 0.7854 /4
3 0 0
4 0.3927 /8
5 0 0
6 ESPACIO DE TRABAJO
El espacio de trabajo puede ser determinado tomando en cuenta el caso en el que las
articulaciones llegan a su mxima distancia. En el caso del robot que se muestra en la
Ilustracin N2. para obtener el espacio de trabajo en el eje x-y se define los siguientes
ngulos:
D2+D3+D4
y
UPB 2014 11
z
D2+D3+D4
D1 x
Este espacio de trabajo es calculado tomando en cuenta que las articulaciones son
ideales y pueden llegar a rotar 2 radianes.
7 CONCLUSIONES
Las expresiones halladas pueden darnos dos soluciones y esto se puede explicar con el
siguiente ejemplo: cuando queremos hallar un punto en 2 dimensiones, y teniendo 2
articulaciones, habr 2 ngulos para cada articulacin posibles que obtienen el mismo
resultado. Por lo tanto, al calcular los ngulos debemos usar nuestro criterio para elegir el
ngulo posible fsicamente.
UPB 2014 12
8 ANEXOS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% MODELO GEOMTRICO INVERSO %%%
%%% TRABAJO PRCTICO 3 %%%
%%% ESTUDIANTE: JHONATAN OROZA %%%
%%% MATERIA: ROBTICA %%%
%%% UNIVERSIDAD: UPB %%%
%%% DOCENTE: PhD. CECILIA TAPIA %%%
%%% AO: 2017 %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%DEFINICIN DE VARIABLES
op=4;%Variable de opciones del men principal
UPB 2014 13
5 0 -pi/2 0 theta5in d4]
tamMdPG=size(matriz);
i=1;
matriztran=eye(4,4);
while i <= tamMdPG(1,1)
%Genera una matriz por cada j de la tabla de Parmetros
Geomtricos
fprintf('Para j = %d, la matriz de transformacin ser:
\n',i);
matrizgen=[
cos(matriz(i,5)) -
sin(matriz(i,5)) 0 matriz(i,4);
cos(matriz(i,3))*sin(matriz(i,5))
cos(matriz(i,3))*cos(matriz(i,5)) -sin(matriz(i,3)) -
matriz(i,6)*sin(matriz(i,3));
sin(matriz(i,3))*sin(matriz(i,5))
sin(matriz(i,3))*cos(matriz(i,5)) cos(matriz(i,3))
matriz(i,6)*cos(matriz(i,3));
0 0
0 1]
matriztran=matriztran*matrizgen;
i=i+1;
end
fprintf('La matriz de transformacin final es:\n');
%Esta es la matriz de transformacin que se utilizar cuando
op=2
%op es la variable de seleccin del men principal
matriztran
input('Pulse ENTER pa continuar...');
clc
case 2%Modelo Geomtrico Inverso
%El programa utilizar la matriz hallada en el Modelo Geomtrico Directo
%Calculado cuando op=1 del men principal
aux1=matriztran(1,4)*cos(th1o)+matriztran(2,4)*sin(th1o)+d4*((matriztran(
3,1))/(cos(th5o)));
aux2=matriztran(3,4)-d1-d4*matriztran(3,3);
aux3=(aux1^2+aux2^2-d2^2-d3^2)/(2*d2*d3);
th3o=atan2(sqrt(1-(aux3^2)),aux3);
%Clculo de theta2
aux21=d2+d3*cos(th3o);
aux22=d3*sin(th3o);
senth2=(aux21*aux2-aux22*aux1)/(aux21^2+aux22^2);
costh2=(aux21*aux1-aux22*aux2)/(aux21^2+aux22^2);
th2o=atan2(senth2,costh2);
%Clculo de theta4
th4o=acos(matriztran(3,3))-th3o-th2o;
fprintf('Theta 1 es:\n ');
UPB 2014 14
th1o
fprintf('Theta 2 es:\n ');
th2o
fprintf('Theta 3 es:\n ');
th3o
fprintf('Theta 4 es:\n ');
th4o
fprintf('Theta 5 es:\n ');
th5o
input('Pulse ENTER para continuar...');
clc
end
end
UPB 2014 15