0% encontró este documento útil (0 votos)
102 vistas8 páginas

LAB4

El documento describe cómo calcular matrices de transformación homogénea para representar movimientos en el espacio tridimensional. Se presentan ejemplos de matrices para una rotación de 30° sobre el eje X y movimientos compuestos de rotación y traslación. También se propone desarrollar funciones en MATLAB para calcular matrices básicas de rotación y traslación a partir de parámetros de entrada.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
102 vistas8 páginas

LAB4

El documento describe cómo calcular matrices de transformación homogénea para representar movimientos en el espacio tridimensional. Se presentan ejemplos de matrices para una rotación de 30° sobre el eje X y movimientos compuestos de rotación y traslación. También se propone desarrollar funciones en MATLAB para calcular matrices básicas de rotación y traslación a partir de parámetros de entrada.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD CATOLICA DE SANTA MARIA ESCUELA PROFESIONAL DE INGENIERIA

MECANICA, MECANICA ELECTRICA Y MECATRONICA


CODIGO: GRIA DE LABORATORIO
2013600912-ARONI PAZ JIMENA Nº 04
2014701022-NUÑEZ GUTIERREZ DORIS
ASIGNATURA: ROBOTICA 1
MATRICES DE TRANSFORMACIÓN HOMOGENEA Y Docente:
OTRAS HERRAMIENTAS APLICADAS A LA JUAN CARLOS CUADROS
LOCALIZACIÓN ESPACIAL Fecha: 12/04/2018

I. OBJETIVOS
II. MARCO TEORICO

II.1. Determinar la matriz de transformación homogénea para los siguientes movimientos:

 Rotación en un ángulo de 30° respecto al eje OX, seguida de:


1 0 0 0
0 cos30 -sen30 0
𝑇1 = 0 sen30 cos30 0
0 0 0 1

 Rotación en un ángulo de 90° respecto al eje OW, seguida de:


 Rotación en un ángulo de 45° respecto al eje OY
 Dibujar cual es la posición y orientación de los sistemas intermedios y el sistema resultante,
respecto del sistema fijo OXYZ.
II.2.Determinar una matriz de transformación T que representa una rotación de un ángulo de 60° respecto al
eje OZ, seguida de una traslación en 8 unidades de distancia a lo largo del eje OZ, seguida de una rotación en
un ángulo de 30° respecto al eje OV. Dibujar cual es la posición y orientación de los sistemas intermedios y el
sistema resultante, respecto del sistema fijo OXYZ.
IV.1. Escriba programas (funciones) en MATLAB para calcular la matrices de transformación homogéneas
básicas de rotación y traslación, dados como parámetros el vector de traslación o el ángulo de rotación.
close all,
clear all,
clc,
fprintf('Ingrese el movimiento \n');
fprintf('Ingrese el tipo de movimiento');
MH=input('Ingres r si es rotacion y t si es traslacion \n','s');
switch(MH)
case('r')
fprintf ('Ingrese angulo de rotacion \n ');
teta=input ('Angulo= ');
Vec=input('Ingrese el eje= ','s');

switch (Vec) %DADA LA OPCION SE ESCOGERA UNA OPERACION DIFERENTE PARA CADA CASO
case ('x') %SI ME DAN A ESCOGER EL EJE X
T= eleccejeXMHR (teta); %TENGO UNA FUNCION QUE DESARROLLARA LA MATRIZ CON
EL ANGULO DADO
disp(T) %SE ME MOSTRARA DICHA MATRIZ
case ('y')
T= eleccejeYMHR (teta);
disp(T)
case ('z')
T=eleccejeZMHR (teta);
disp(T)
otherwise %EN EL CASO QUE NO SE COLOQUE LAS OPCIONES DADAS
disp('No has elegido bien')
end
Rpta=T;

case('t')
fprintf=('Ingrese el vector posicion, colocando cada unidad en el
eje');%Ingresado en vector
a=input('Movimiento en el eje x =');
b=input('Movimiento en el eje y =');
c=input('Movimiento en el eje z =');
Tras=[1 0 0 a; 0 1 0 b; 0 0 1 c; 0 0 0 1];
disp(Tras)
Rpta=Tras;

end
Mov=input('Ingrese 1 si quiere hacer otro movimiento de lo contrario 0 \n');
while (Mov==1) %ESTE CICLO SEGUIRA MIENTRAS SE SELECCIONE 1
if(Rpta==T)
MH=input('Ingrese r si es rotacion y t si es traslacion \n','s');
switch(MH)
case('r')
fprintf ('Ingrese angulo de rotacion \n ');
teta=input ('Angulo= ');
Vec1=input('Ingrese el eje= ','s');
switch (Vec1)
case ('x')
R= eleccejeXMHR (teta);
disp(R)
case ('y')
R= eleccejeYMHR (teta);
disp(R)
case ('z')
R=eleccejeZMHR (teta);
disp(R)
end
D= input('Ingrese 1 si es fijo, si es movil 0 \n');
if (D==1)
T=R*T; % T FUE LA PRIMERA MATRIZ ALMACENADA Y A ESA MATRIZ SE LE PREMULTIPLICARA
LA NUEVA MATRIZ QUE SERA R
%Y ESA MULTIPLICACION SERA LA NUEVA T ALMACENADA PARA CONTINUAR LAS PRE O
%POST MULTIPLICACIONES SEGUN SEA EL CASO
disp(T)
else
T=T*R;
disp(T)
end
case('t')
fprintf=('Ingrese el vector posicion, colocando cada unidad en el
eje');%Ingresado en vector
a=input('Movimiento en el eje x =');
b=input('Movimiento en el eje y =');
c=input('Movimiento en el eje z =');
Tras1=[1 0 0 a; 0 1 0 b; 0 0 1 c; 0 0 0 1];
disp(Tras1)
D= input('Ingrese 1 si es fijo, si es movil 0 \n');
if (D==1)
T=Tras*T; % T FUE LA PRIMERA MATRIZ ALMACENADA Y A ESA MATRIZ SE LE
PREMULTIPLICARA LA NUEVA MATRIZ QUE SERA R
%Y ESA MULTIPLICACION SERA LA NUEVA T ALMACENADA PARA CONTINUAR LAS PRE O
%POST MULTIPLICACIONES SEGUN SEA EL CASO
disp(T)
else
T=T*Tras;
disp(T)
end
end
elseif (Rpta==Tras)

end
Mov=input('Ingrese 1 si quiere hacer otro movimiento de lo contrario 0 \n');% ES
IMPORTANTE VOLVER A PREGUNTAR
%O MOV SEGUIRA SIENDO 1 SIEMPRE Y EL BUCLE SERA INFINITO
end

También podría gustarte