Está en la página 1de 5

UNIVERSIDAD CATOLICA DE SANTA MARIA Página 1 /5

FACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y FORMALES


ESCUELA PROFESIONAL DE
INGENIERIA MECÁNICA, MECÁNICA, MECÁNICA – ELECTRÍCA Y MECATRÓNICA Jefe de prácticas:
Ing. Juan Carlos Cuadros
ROBÓTICA I – AVANCE
Tema: MATRICES DE TRANSFORMACIÓN HOMOGENA Y OTRAS Código: E09081
Semestre: IX
HERRAMIENTAS APLICADAS A LA LOCALIZACIÓN ESPACIAL
Apellidos y Nombres: - Anahua Cayllahua Renzo Jesus Grupo: 2 Fecha:
- Hermoza Benavente, Renán Lab. N° 03 29/abril/2021

I. OBJETIVO

 Emplear las herramientas matemáticas de localización espacial en la solución de problemas que


impliquen determinar la orientación y la posición espacial de objetos y de robots articulados.
 Construir programas y/o funciones que permitan automatizar el uso de las herramientas de
localización espacial en la solución de problemas que impliquen la determinación de la orientación y
la posición espacial de objetos y de robots articulados.

I. PROCEDIMIENTO
IV.4. Aplique las funciones creadas en el laboratorio anterior respecto del algebra de cuaternios y de
solución al ítem 1) del problema II.2 del marco teórico. Crear un script y comprobar los resultados con los
obtenidos en la solución analítica.

Considere el objeto en forma de cuña en la Figura 1:


ROBÓTICA I Página 2 /5

TEMA:
MATRICES DE TRANSFORMACIÓN HOMOGENA Y OTRAS HERRAMIENTAS LAB N° 2 JP: Ing. JCC
APLICADAS A LA LOCALIZACIÓN ESPACIAL

1) Obtener la transformación que se debe aplicar para llevarlo desde el origen (figura 1-izquierda) hasta
su ubicación final (figura 1-derecha). Represente esta transformación como una traslación seguida de
una rotación y viceversa. Verifique que la solución sea la misma.
Codificación

% *-----------------------------------------------*
% | PRÁCTICA 3 |
% | PROBLEMA 4: CUATERNIOS |
% *-----------------------------------------------*
%% Limpiando datos anteriores
clear all; close all; clc;
%% Codificacion del programa
% Par de rotacion de los cuaternios
ang = 90;
k = [1 0 0];
Q = [cosd(ang/2) k(1)*sind(ang/2) k(2)*sind(ang/2)
k(3)*sind(ang/2)];
Qconj = [cosd(ang/2) -k(1)*sind(ang/2) -k(2)*sind(ang/2)
-k(3)*sind(ang/2)];
% Obtencion de Cuaternios
P1 = [0 0 0 0];
q1 = [Q(1)*P1(1)-Q(2)*P1(2)-Q(3)*P1(3)-Q(4)*P1(4)
Q(1)*P1(2)+Q(2)*P1(1)+Q(3)*P1(4)-Q(4)*P1(3)
Q(3)*P1(1)+Q(1)*P1(3)+Q(4)*P1(2)-Q(4)*P1(3)
Q(4)*P1(1)+Q(1)*P1(4)-Q(3)*P1(2)+Q(2)*P1(3)]
q1f = [q1(1)*Qconj(1)-q1(2)*Qconj(2)-q1(3)*Qconj(3)-
q1(4)*Qconj(4)
q1(1)*Qconj(2)+q1(2)*Qconj(1)+q1(3)*Qconj(4)-
q1(4)*Qconj(3)
q1(3)*Qconj(1)+q1(1)*Qconj(3)+q1(4)*Qconj(2)-
q1(4)*Qconj(3)
q1(4)*Qconj(1)+q1(1)*Qconj(4)-
q1(3)*Qconj(2)+q1(2)*Qconj(3)]

P2 = [0 2 0 0];
q2 = [Q(1)*P2(1)-Q(2)*P2(2)-Q(3)*P2(3)-Q(4)*P2(4)
Q(1)*P2(2)+Q(2)*P2(1)+Q(3)*P2(4)-Q(4)*P2(3)
Q(3)*P2(1)+Q(1)*P2(3)+Q(4)*P2(2)-Q(4)*P2(3)
Q(4)*P2(1)+Q(1)*P2(4)-Q(3)*P2(2)+Q(2)*P2(3)]
q2f = [q2(1)*Qconj(1)-q2(2)*Qconj(2)-q2(3)*Qconj(3)-
q2(4)*Qconj(4)
q2(1)*Qconj(2)+q2(2)*Qconj(1)+q2(3)*Qconj(4)-
q2(4)*Qconj(3)
q2(3)*Qconj(1)+q2(1)*Qconj(3)+q2(4)*Qconj(2)-
q2(4)*Qconj(3)
q2(4)*Qconj(1)+q2(1)*Qconj(4)-
q2(3)*Qconj(2)+q2(2)*Qconj(3)]
ROBÓTICA I Página 3 /5

TEMA:
MATRICES DE TRANSFORMACIÓN HOMOGENA Y OTRAS HERRAMIENTAS LAB N° 2 JP: Ing. JCC
APLICADAS A LA LOCALIZACIÓN ESPACIAL

P3=[0 1 1 2];
q3=[Q(1)*P3(1)-Q(2)*P3(2)-Q(3)*P3(3)-Q(4)*P3(4)
Q(1)*P3(2)+Q(2)*P3(1)+Q(3)*P3(4)-Q(4)*P3(3)
Q(3)*P3(1)+Q(1)*P3(3)+Q(4)*P3(2)-Q(4)*P3(3)
Q(4)*P3(1)+Q(1)*P3(4)-Q(3)*P3(2)+Q(2)*P3(3)]
q3f=[q3(1)*Qconj(1)-q3(2)*Qconj(2)-q3(3)*Qconj(3)-q3(4)*Qconj(4)
q3(1)*Qconj(2)+q3(2)*Qconj(1)+q3(3)*Qconj(4)-q3(4)*Qconj(3)
q3(3)*Qconj(1)+q3(1)*Qconj(3)+q3(4)*Qconj(2)-q3(4)*Qconj(3)
q3(4)*Qconj(1)+q3(1)*Qconj(4)-q3(3)*Qconj(2)+q3(2)*Qconj(3)]
% Visualizando respuestas
fprintf('\n El cuaternio usado es Q = [%1.2f %2.2f %2.2f
%2.2f]\n',Q(1),Q(2),Q(3),Q(4));
fprintf('\n Su conjugado es Qconj = [%1.2f %2.2f %2.2f
%2.2f]\n',Qconj(1),Qconj(2),Qconj(3),Qconj(4));
fprintf('\n La nueva ubicación de cada uno de los puntos usando
cuaternios es : \n\n');
fprintf('\n Punto 1 [0 0 0 0] : [%.0f%2.0f%2.0f
%2.0f]',q1f(1),q1f(2),q1f(3),q1f(4));
fprintf('\n Punto 2 [0 2 0 0] : [%.0f%2.0f%2.0f
%2.0f]',q2f(1),q2f(2),q2f(3),q2f(4));
fprintf('\n Punto 3 [0 1 1 2] : [%.0f%2.0f%2.0f
%2.0f]\n',q3f(1),q3f(2),q3f(3),q3f(4));

Respuestas
ROBÓTICA I Página 4 /5

TEMA:
MATRICES DE TRANSFORMACIÓN HOMOGENA Y OTRAS HERRAMIENTAS LAB N° 2 JP: Ing. JCC
APLICADAS A LA LOCALIZACIÓN ESPACIAL

IV.5. Obtener el cuaternio que representa una rotación de 90° sobre el eje k(3,-2,1). Rot(k,90°). Aplique sus
ROBÓTICA I Página 5 /5

TEMA:
MATRICES DE TRANSFORMACIÓN HOMOGENA Y OTRAS HERRAMIENTAS LAB N° 2 JP: Ing. JCC
APLICADAS A LA LOCALIZACIÓN ESPACIAL

funciones Matlab para las operaciones de la solución. Luego crear un script solución del problema.

Codificación

% *-----------------------------------------------*
% | PRÁCTICA 3 |
% | PROBLEMA 5: CUATERNIOS |
% *-----------------------------------------------*
%% Limpiando datos anteriores
clear all; close all; clc;
% Rotacion y eje
a = 90;
k = [3 -2 1];
% Determinando cuaternio
Q=[cosd(a/2) k(1)*sind(a/2) k(2)*sind(a/2) k(3)*sind(a/2)];
fprintf('\n El cuaternio que representa una rotación es :
\n\n');
disp(Q);

Respuesta

También podría gustarte