Matrices de Rotacion

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 15

UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

"Ao del buen servicio al ciudadano"


UNIVERSIDAD CATLICA DE SANTA MARA

Facultad de Ciencias e Ingenieras Fsicas y Formales

Escuela Profesional de Ingeniera Mecnica, Mecnica Elctrica y


Mecatrnica.

ROBTICA I
Jefe de Practicas: Ing. CUADROS MACHUCA, Juan Carlos
Informe Nro. 02
Alumnos:

Semestre: IX
Grupo: 01
2017

ROBOTICA I Pgina 1
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Informe Nro. 02: MATRICES DE ROTACION


I. OBJETIVOS:

Aplicar programacin en MATLAB en el clculo y manipulacin de matrices de rotacin,


grficos de funciones y tendencias, y en la implementacin de programas sencillos de
posicin y orientacin de robots.

Analizar, navegar y manipular el programa MATLAB para incentivar en el alumno el


inters por esta herramienta y pueda reconocer su importancia en el contexto de la
robtica y la ingeniera.

II. MATERIAL Y EQUIPO:

Una PC con SO Windows XP y MATLAB.

III. PROCEDIMIENTO:

1. Tome como valores D0= [0, 0.5] (en metros) y D1= [1, 0] (en metros y expresado en su
sistema de referencia OUV). Tenga en cuenta que hay que cambiar las coordenadas
del punto D1 desde el sistema de referencia OXY al OUV. Tenga en cuenta que, para
no dificultar la interpretacin de la figura, no se ha indicado el origen O, que coincide
en el espacio con D0.

CODIGO MATLAB

% PROCEDIMIENTO NUMERO 1
clear all
clc
teta = input('Angulo de rotacin = ');
disp(' ')
D0 = [0 ; 0.5]
D1 = [1 ; 0]
R = [ cosd(teta) -sind(teta) ; sind(teta) cosd(teta) ];
disp('R')
disp(R)
Pxy = D0 + R*D1;
disp('Pxy')
disp(Pxy)

ROBOTICA I Pgina 2
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

2. Defina dos vectores en el plano p, q y una variable escalar alfa con el valor 45. Defina
la matriz de rotacin R para el ngulo alfa. Realice los productos q=R*p, con diversos
alfa y compruebe que la rotacin funciona correctamente. Recuerde que MATLAB
trabaja por defecto con radianes.

CODIGO MATLAB

% PROCEDIMIENTO NUMERO 2
clear all
clc
teta=input('Angulo de Rotacion:')
p=[0;1];
R=[cosd(teta) -sind(teta);sind(teta) cosd(teta)];
disp('R');
disp(R);
q=R*p
disp(q)
plot(p,q)

ROBOTICA I Pgina 3
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Figure 1

ROBOTICA I Pgina 4
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

3. Defina los vectores VD0, VD1 (que contienen las coordenadas de los puntos D0 y D1
segn sus respectivos ejes) y calcule la posicin del punto D1, segn el sistema de
referencia OXY, probando con los ngulos =0, 45, 90.

CODIGO MATLAB

% PROCEDIMIENTO NUMERO 3
clear all
clc
disp('Ingrese Valores al vector VD1')
a=input('valor de VD1:');
b=input('valor de VD1:');
disp('Ingrese Valores al vector VD0')
c=input('valor de VD0:');
d=input('valor de VD0:');
VD1=[a;b];
VD0=[c;d];
disp(' ')
disp('CON ANGULO = 0')
teta1=0;
R1=[cosd(teta1),-sind(teta1);sind(teta1),cosd(teta1)];
pxy1=VD0+(R1*VD1)

ROBOTICA I Pgina 5
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

disp(' ')
disp('CON ANGULO = 45')
teta2=45;
R2=[cosd(teta2),-sind(teta2);sind(teta2),cosd(teta2)];
pxy2=VD0+(R2*VD1)
disp(' ')
disp('CON ANGULO = 90')
teta3=90;
R3=[cosd(teta3),-sind(teta3);sind(teta3),cosd(teta3)];
pxy3=VD0+(R3*VD1)

4. Movimiento uniforme. Suponga que el eje que mueve el nico segmento articulado
del robot tiene una velocidad angular constante de 1 por segundo. Genere una
variable llamada vel_ang con tal valor. Cree un vector fila llamado tiempo, que
contenga el valor de tiempo para un periodo de 45 segundos, tomadas cada 0,5
segundos (su contenido ser [0 0.5 1 1.5 2 .... 44.5 45]). Genere otro vector ang que
contenga los ngulos en el mismo intervalo, multiplicando vel_ang por el vector
tiempo. Utilice ahora un bucle for para calcular todos los puntos de la trayectoria del

ROBOTICA I Pgina 6
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

actuador final del robot en los 45 segundos. Dicho bucle realizar la siguiente
multiplicacin:

posiciones=VD0 + Rang(i)*VD1

Donde Rang(i) es la matriz de rotacin calculada para el ngulo dado por ang(i). Todos
los puntos se almacenarn en una matriz de dimensin 2n llamada posiciones,
donde n es la dimensin del vector tiempo. Genere la grfica (usando plot) de todas
las coordenadas x frente a las y, que sera el movimiento del actuador del robot.

5. Movimiento uniforme integrando con MATLAB. Averige ahora el ngulo de rotacin


para cada instante integrando la velocidad para obtener los ngulos, utilizando la
funcin de MATLAB:

vector_integral = cumtrapz (vector_x, vector_y)

Que calcula la integral acumulativa por el mtodo del trapecio, de vector_y respecto
de vector_x.(es decir, se pueden usar los vectores del apartado anterior tiempo, y un
vector con todos sus elementos iguales a vel_ang). Tenga en cuenta que ambos
vectores han de tener el mismo nmero de componentes. Suponga que el ngulo
inicial es cero. Genere una grfica del ngulo de la articulacin respecto del tiempo.

6. Partiendo del vector de ngulos generado en el paso anterior, y del mtodo de


transformacin de coordenadas, mencionado anteriormente, calcule la posicin
respecto del sistema OXY del extremo final del segmento del robot para cada uno de
los valores angulares previamente calculados. Genere una grfica (plot) en la que se
muestre la trayectoria del extremo final del robot. La grfica debe ser igual a la del
paso.

7. Vare la velocidad angular y experimente con los resultados obtenidos.

CODIGO MATLAB

% PROCEDIMIENTO NUMERO 4 5 6
clear all
close all
clc

format compact

for i=1:2
VD0(i,1) = input('Ingrese VD0 = ');
end

for i=1:2

ROBOTICA I Pgina 7
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

VD1(i,1) = input('Ingrese VD1 = ');


end

VD0
VD1

v = input('VELOCIDAD ANGULAR (/seg) = ');


vel_ang = v*pi/180;

for i=1:91
tiempo(i) = (i-1)/2;
end

for i=1:91
ang(i) = vel_ang * tiempo(i);
end

for i=1:91
R = [ cos(ang(i)) -sin(ang(i)) ; sin(ang(i)) cos(ang(i))
];
pos = VD0 + R*VD1;
x(i)=pos(1,1);
y(i)=pos(2,1);
end

vec_int = cumtrapz(x,y);

figure(1)
plot(x,y);
figure(2)
plot(tiempo,vec_int);

ROBOTICA I Pgina 8
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Figure 1

ROBOTICA I Pgina 9
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Figure 2

CODIGO MATLAB

% PROCEDIMIENTO NUMERO 4 5 7
clear all
close all
clc

format compact

for i=1:2
VD0(i,1) = input('Ingrese VD0 = ');
end

for i=1:2
VD1(i,1) = input('Ingrese VD1 = ');
end

VD0

ROBOTICA I Pgina 10
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

VD1
v = input('VELOCIDAD ANGULAR (/seg) = ');
vel_ang = v*pi/180;

for i=1:91
tiempo(i) = (i-1)/2;
end

for i=1:91
ang(i) = vel_ang * tiempo(i);
end

for i=1:91
R = [ cos(ang(i)) -sin(ang(i)) ; sin(ang(i)) cos(ang(i))
];
pos = VD0 + R*VD1;
x(i)=pos(1,1);
y(i)=pos(2,1);
end

vec_int = cumtrapz(x,y);

figure(1)
plot(x,y);
figure(2)
plot(tiempo,vec_int);

ROBOTICA I Pgina 11
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Figure 1

Figure 2

8. EJERCICIOS ADICIONALES: Cree una funcin que calcule el movimiento del robot,
de forma que reciba como parmetros un vector columna de ngulos y devuelva una
matriz con las posiciones x,y correspondientes a tales ngulos. La matriz tendr 2

ROBOTICA I Pgina 12
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

filas y tantas columnas como ngulos componentes del vector ang hayan. El prototipo
(declaracin) de la funcin ser:
function pxy = robot1 (ang). (Recuerde el operador size)

CODIGO MATLAB

% PROCEDIMIENTO NUMERO 8
function pxy = robot1(ang)

xx=length(ang);
ang=ang*pi/180;

for i=1:2
VD0(i,1) = input('Vector VD0= ');
end
for i=1:2
VD1(i,1) = input('Vector VD1= ');
end

for i=1:xx
R = [ cos(ang(i)) -sin(ang(i)) ; sin(ang(i))
cos(ang(i)) ];
pxy = VD0 + R*VD1;
x(i)=pxy(1,1);
y(i)=pxy(2,1);
end
plot(x,y);
grid on
xlabel('Eje X');
ylabel('Eje Y');
end

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

%angulos dentro de un vector


clc
clear all
ang=0:1:91;
robot1(ang)

ROBOTICA I Pgina 13
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

Figure 1

IV. CUESTIONARIO FINAL:

ROBOTICA I Pgina 14
UNIVERSIDAD CATOLICA DE SANTA MARIA GRUPO: 01

1. Realice todo el procedimiento anteriormente descrito y presente en un informe


detallado el desarrollo de todos los pasos indicados. (/ARRIBA/)

V. CONCLUSIONES:

MATLAB es una herramienta que nos sirvi mucho para el clculo y manipulacin de
matrices de rotacin, as como tambin poder graficar y observar.
MATLAB tambin usa toolbox para la robtica que hacen ms sencilla la tarea de programar.
En robtica es comn el uso de matrices de rotacin, debido a la comodidad que proporciona
el uso del lgebra matricial.
La matriz de rotacin es una matriz 3x3 ortogonal de cosenos directores que define la
orientacin del sistema OUVW mvil respecto al sistema OXYZ fijo.
Mediante las matrices de rotacin se define los movimientos de objetos rgidos, por lo que
es ideal para su uso en la robtica. Dentro de la robtica podemos pensar que un objeto
puede girar sobre diferentes ejes, por lo que podemos introducir dos nuevos conceptos el
de marco global y el de marco de referencia.
Para conocer la localizacin de un determinado objeto es necesario su orientacin y posicin
de acuerdo al eje de referencia para ello se recurre la matriz rotacional, pero se debe tener
definido en forma de vectores y de esta manera sacar la determinante la cual da dicho valor
del eje de traslado.

VI. OBSERVACIONES:

Hasta el momento MATLAB es la herramienta de programacin ms til para observar y


analizar herramientas de la robtica.
Durante el procedimiento se evidencia que se puede multiplicar las matrices de rotacin
bsicas entre s para representar una secuencia de rotacin finita respecto del eje principal
del eje de coordenadas OXYZ.

ROBOTICA I Pgina 15

También podría gustarte