LABORATORIO DE ROBOTICA DESPLAZAMIENTO DESPLAZAMIENTO DE 90 ALREDEDOR ALREDEDOR DEL EJE Z El programa contiene el código para realizar la rotación de la imagen de prueba. El vector p0 = [px0, py0, pz0 ]T tiene las coordenadas de la imagen de prueba definidas en el sistema de referencia Σ0(x0, Σ0(x0, y0, z0). El ´ángulo de rotación θ es de 90 grados con respecto al eje z0. z0. El sistema Σ1 Σ1 (x1, y1, z1) tiene la imagen rotada con respecto al sistema Σ0(x0, Σ0(x0, y0, z0). La matriz de rotación Rz0( π/2 π/2 ) relaciona la orientación que tiene tie ne la imagen rotada definida en Σ1(x1, Σ 1(x1, y1, z1) z1) en relación al sistema fijo Σ0(x0, Σ 0(x0, y0, z0). En la figura muestra el resultado del programa en ambos sistemas de referencia Σ0(x0, y0, z0) z0) y el sistema de referencia rotado Σ1(x1, Σ 1(x1, y1, z1). clc; clear all all;; close all all;; %coordenadas del vector p_0=[px0; py0; pz0] pxo=[0,0,0,0,0,6,7,7, pxo=[0,0,0,0,0,6,7,7, 8, 8, 9,9, 10,10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 14,14, 14, 14, 14, 14, 14, 14, 14,14, 14, 15, 15, 16,16, 17,17,18,19,20,21]; 17,17,18,19,20,21]; pyo=[0,0,0,0,0,9,9,10,9, pyo=[0,0,0,0,0,9,9,10 ,9, 11, 9,12, 1, 2, 3, 4, 5, 6,7, 8, 9, 12, 12, 12, 12,1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 9, 12, 9, 11, 9, 10, 9,0,0,0 ]; pzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 pzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, ,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
theta=90*3.1416/180.0; %matriz de rotación Rot{z}{theta} R_ztheta=[ cos(theta), -sin(theta), 0; sin(theta), cos(theta), 0; 0, 0,1]; %conversión de coordenadas del sistema sis{0} al sistema sis{1} % p_1=Rot{z}{the p_1=Rot{z}{theta}p_0 ta}p_0 Sigma1=R_ztheta*[pxo; Sigma1=R_ztheta*[pxo; pyo; pzo]; %p_1=[px1; py1; pz1] px1=Sigma1(1,:); py1=Sigma1(2,:); pz1=Sigma1(3,:); %puntos graficados graficados en los sistemas sistemas p_0 in sis{0} y p_1 in sis{1} plot3(pxo,pyo,pzo,'.' plot3(pxo,pyo,pzo,'.',px1,py1,pz1, ,px1,py1,pz1,'x' 'x'))
Estudie el programa anterior haciendo las pruebas correspondientes por partes y luego desarrollar el algoritmo para obtener el mismo desplazamiento con 90 grados de la flecha azul (tomando como referencia)
CODIGO PARA GIRAR 180° alrededor del eje z
%coordenadas del vector p_0=[px0; py0; pz0] pxo=[0,0,0,0,0,6,7,7, 8, 8, 9,9, 10,10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 14,14, 14, 14, 14, 14, 14, 14,14, 14, 15, 15, 16,16, 17,17,18,19,20,21]; pyo=[0,0,0,0,0,9,9,10,9, 11, 9,12, 1, 2, 3, 4, 5, 6,7, 8, 9, 12, 12, 12, 12,1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 9, 12, 9, 11, 9, 10, 9,0,0,0 ]; pzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
theta=180*3.1416/180.0; %matriz de rotación Rot{z}{theta} R_ztheta=[ cos(theta), -sin(theta), 0; sin(theta), cos(theta), 0; 0, 0,1];
%conversión de coordenadas del sistema sis{0} al sistema sis{1} Sigma1=R_ztheta*[pxo; pyo; pzo]; %p_1=[px1; py1; pz1] px1=Sigma1(1,:); py1=Sigma1(2,:); pz1=Sigma1(3,:); %puntos graficados en los sistemas p_0 in sis{0} y p_1 in sis{1} plot3(pxo,pyo,pzo,'.',px1,py1,pz1,'x') IMAGEN ROTADA 180°
Como podemos ver en el codigo , se modifico el 90 por 180 para que el angulo de giro sea 180 . El orden de la grafica es : primero la flecha azul , posteriormente la de x, que es quien varia los 180 grados. Como podemos apreciar theta es el angulo de giro . R_ztheta es la matriz de rotación. Sigma1 es la multiplicación de la matriz rotacional con las coordenadas originales. pxo,pyo,pzo, son las coordenadas de origen y ,px1,py1,pz1 las nuevas coordenadas a las que se le aplico la rotación.
PARA GIRAR 90° alrededor del eje y
PARA GIRAR 90° alrededor del eje x