Traslacin y Rotacin
Integrantes:
Corona Cern Edgar
Naranjo Rojas Sahid
UNIVERSIDAD POLITCNICA
DE QUERTARO
February 16, 2011
INTRODUCCIN
La manipulacin robtica implica que se desplazarn piezas y herramientas en el espacio
mediante algn tipo de mecanismo. Esto naturalmente conduce a una necesidad de
representar posiciones y orientaciones de piezas, herramientas y del mecanismo en si.
Marco Terico
Una traslacin desliza un punto en el espacio una distancia finita a lo largo de una
direccin vectorial dada. Con esta interpretacin de trasladar el punto en el espacio, solo
necesita estar involucrado un sistema de coordenadas. Resulta que el proceso de
trasladar el punto en el espacio se logra con las mismas matemticas utilizadas para
asignar el punto en una segunda trama. Casi siempre es muy importante comprender cul
interpretacin de las matemticas se est utilizando. La distincin es tan simple como
esto: cuando un vector se desplaza hacia adelante en forma relativa a una trama,
podemos considerar bien que el vector se desplaz hacia adelante o que la trama se
movi hacia atrs. La figura 1 siguiente, indica grficamente cmo se traslada un vector
A
P1 mediante un vector AQ
P2 = P1 + Q
Tambin se puede interpretar a una matriz de rotacin como un operador rotacional que
opera sobre un vector AP1 y convierte ese vector en uno nuevo, AP2, por medio de una
rotacin R. Generalmente cuando una matriz de rotacin se muestra como un operador,
no aparecen subndices ni superndices, ya que no se considera que este relacionando
dos tramas. Esto es:
(4)
A
A
P2 - R P1
La matriz de rotacin que gira vectores a travs de cierta rotacin R, es la misma que la
matriz de rotacin que describe a una trama girada por R en relacin con la trama de
referencia.
Aunque una matriz de rotacin puede verse fcilmente como un operador, tambin
definiremos otra notacin para un operador de rotacin que indica claramente sobre que
eje se est girando:
(5)
A
A
P2 = RK () P1
0
0
1 0
0
0
0 1
Claro que para girar un vector de posicin, podramos utilizar tambin la parte
correspondiente a la matriz de rotacin de orden 3 x 3 de la transformacin homognea.
Figura 1
En esta primera parte realizamos la traslacin de los ejes X, Y, Z, variando la matriz de
traslacin RBA, la cual explicaremos en el siguiente cdigo.
AQ=[8;10;1];
P1=arb*PB1+AQ;
P2=arb*PB2+AQ;
P3=arb*PB3+AQ;
P4=arb*PB4+AQ;
P5=arb*PB5+AQ;
P6=arb*PB6+AQ;
P7=arb*PB7+AQ;
P8=arb*PB8+AQ;
line([P1(1),P2(1)],
line([P1(1),P8(1)],
line([P8(1),P7(1)],
line([P7(1),P6(1)],
line([P6(1),P5(1)],
line([P5(1),P4(1)],
line([P4(1),P3(1)],
line([P3(1),P2(1)],
[P1(2),P2(2)],
[P1(2),P8(2)],
[P8(2),P7(2)],
[P7(2),P6(2)],
[P6(2),P5(2)],
[P5(2),P4(2)],
[P4(2),P3(2)],
[P3(2),P2(2)],
[P1(3),P2(3)]);
[P1(3),P8(3)]);
[P8(3),P7(3)]);
[P7(3),P6(3)]);
[P6(3),P5(3)]);
[P5(3),P4(3)]);
[P4(3),P3(3)]);
[P3(3),P2(3)]);
Rotacin alrededor de X de 45
a=pi/4; // En esta parte del cdigo realizamos la traslacin de los 45 sobre el eje X
que corresponde a pi/4
arb=[1,0,0; 0, cos(a),-sin(a); 0,sin(a),cos(a)];
text(5,0,0,'x');
text(0,5,0,'y');
text(0,0,5,'z');
origen=[0,0,0];
P1=[5,0,0];
P2=[0,5,0];
P3=[0,0,5];
line([origen(1),P1(1)], [origen(2),P1(2)], [origen(3),P1(3)]);
line([origen(1),P2(1)], [origen(2),P2(2)], [origen(3),P2(3)]);
line([origen(1),P3(1)], [origen(2),P3(2)], [origen(3),P3(3)]);
AQ=[8;10;1]; %realizando traslacion en los ejes X Y Z
P1=arb*PB1+AQ;
P2=arb*PB2+AQ;
P3=arb*PB3+AQ;
P4=arb*PB4+AQ;
P5=arb*PB5+AQ;
P6=arb*PB6+AQ;
P7=arb*PB7+AQ;
P8=arb*PB8+AQ;
line([P1(1),P2(1)], [P1(2),P2(2)], [P1(3),P2(3)]);
line([P1(1),P8(1)], [P1(2),P8(2)], [P1(3),P8(3)]);
line([P8(1),P7(1)], [P8(2),P7(2)], [P8(3),P7(3)]);
line([P7(1),P6(1)], [P7(2),P6(2)], [P7(3),P6(3)]);
line([P6(1),P5(1)], [P6(2),P5(2)], [P6(3),P5(3)]);
line([P5(1),P4(1)], [P5(2),P4(2)], [P5(3),P4(3)]);
line([P4(1),P3(1)], [P4(2),P3(2)], [P4(3),P3(3)]);
line([P3(1),P2(1)], [P3(2),P2(2)], [P3(3),P2(3)]);
axis([-20,20,-20,20,-20,20]);
grid on;
pause(.1);
Ver figura 2
Figura 2.
Rotacin de x de 90
Cdigo
a=pi/2;
arb=[1,0,0; 0, cos(a),-sin(a); 0,sin(a),cos(a)];
text(5,0,0,'x');
text(0,5,0,'y');
text(0,0,5,'z');
origen=[0,0,0];
P1=[5,0,0];
P2=[0,5,0];
P3=[0,0,5];
line([origen(1),P1(1)], [origen(2),P1(2)], [origen(3),P1(3)]);
line([origen(1),P2(1)], [origen(2),P2(2)], [origen(3),P2(3)]);
line([origen(1),P3(1)], [origen(2),P3(2)], [origen(3),P3(3)]);
AQ=[8;10;1]; %realizando traslacion en los ejes X Y Z
P1=arb*PB1+AQ;
P2=arb*PB2+AQ;
P3=arb*PB3+AQ;
P4=arb*PB4+AQ;
P5=arb*PB5+AQ;
P6=arb*PB6+AQ;
P7=arb*PB7+AQ;
P8=arb*PB8+AQ;
line([P1(1),P2(1)], [P1(2),P2(2)], [P1(3),P2(3)]);
line([P1(1),P8(1)], [P1(2),P8(2)], [P1(3),P8(3)]);
line([P8(1),P7(1)], [P8(2),P7(2)], [P8(3),P7(3)]);
line([P7(1),P6(1)], [P7(2),P6(2)], [P7(3),P6(3)]);
line([P6(1),P5(1)], [P6(2),P5(2)], [P6(3),P5(3)]);
line([P5(1),P4(1)], [P5(2),P4(2)], [P5(3),P4(3)]);
line([P4(1),P3(1)], [P4(2),P3(2)], [P4(3),P3(3)]);
line([P3(1),P2(1)], [P3(2),P2(2)], [P3(3),P2(3)]);
axis([-20,20,-20,20,-20,20]);
grid on;
pause(.1);
Ver figura 3
Figura 3
Ver figura 4
Figura. 4
Ver figura 5
Figura 5
Ver figura 6
Figura 6.
Ver figura 7
Figura 7.
line([P1(1),P2(1)], [P1(2),P2(2)],
line([P1(1),P8(1)], [P1(2),P8(2)],
line([P8(1),P7(1)], [P8(2),P7(2)],
line([P7(1),P6(1)], [P7(2),P6(2)],
line([P6(1),P5(1)], [P6(2),P5(2)],
line([P5(1),P4(1)], [P5(2),P4(2)],
line([P4(1),P3(1)], [P4(2),P3(2)],
line([P3(1),P2(1)], [P3(2),P2(2)],
axis([-20,20,-20,20,-20,20]);
grid on;
pause(.1);
[P1(3),P2(3)]);
[P1(3),P8(3)]);
[P8(3),P7(3)]);
[P7(3),P6(3)]);
[P6(3),P5(3)]);
[P5(3),P4(3)]);
[P4(3),P3(3)]);
[P3(3),P2(3)]);
Ver figura 8
Figura 8
Ver figura 9
Figura 9.
Aplicando rotacin en el eje X de 0 a 360
Para realizar esta rotacin aplicando los puntos anteriores se utiliz un una sentencia
for y una if esta para cuando cumpla mi primer sentencia pase a la segunda y de esta
forma recorrer los tres ejes de nuestro plano, X, Y, Z, aplicando las frmulas de rotacin
para dichos ejes.
Cdigo.
for m=0:1:2,
for a=0:0.0174:pi*2
if m==0 %x
arb=[1,0,0; 0, cos(a),-sin(a); 0,sin(a),cos(a)];
end
Figura 10.
Rotacin en el eje Y de 0 a 360
Cdigo.
for m=0:1:2,
for a=0:0.0174:pi*2
if m==1 %y
arb=[cos(a),0,sin(a); 0,1,0;-sin(a),0,cos(a)];
end
Ver figura 11
Figura 11
Rotacin en el eje Z de 0 a 360
Cdigo
for m=0:1:2,
for a=0:0.0174:pi*2
if m==1
arb=[cos(a),-sin(a),0;sin(a),cos(a),0;0,0,1];
end
Ver figura 12
Figura 12.
Cdigo completo.
% Practica 1 Robotica
% Edgar Corona Ceron
% Sahid Naranjo Rojas
clear all; clc; clf;
%cordenadas de la pinza
PB1= [0;3;9];
PB2= [0;3;4];
PB3= [0;13;4];
PB4= [0;13;9];
PB5= [0;11;9];
PB6= [0;11;7];
PB7= [0;5;7];
PB8= [0;5;9];
RBA= [1,0,0;0,1,0;0,0,1];%matriz de traslacin
line
line
line
line
line
line
line
line
([PB1(1),PB2(1)],[PB1(2),PB2(2)],[PB1(3),PB2(3)]);
([PB2(1),PB3(1)],[PB2(2),PB3(2)],[PB2(3),PB3(3)]);
([PB3(1),PB4(1)],[PB3(2),PB4(2)],[PB3(3),PB4(3)]);
([PB4(1),PB5(1)],[PB4(2),PB5(2)],[PB4(3),PB5(3)]);
([PB5(1),PB6(1)],[PB5(2),PB6(2)],[PB5(3),PB6(3)]);
([PB6(1),PB7(1)],[PB6(2),PB7(2)],[PB6(3),PB7(3)]);
([PB7(1),PB8(1)],[PB7(2),PB8(2)],[PB7(3),PB8(3)]);
([PB8(1),PB1(1)],[PB8(2),PB1(2)],[PB8(3),PB1(3)]);
P4=arb*PB4+AQ;
P5=arb*PB5+AQ;
P6=arb*PB6+AQ;
P7=arb*PB7+AQ;
P8=arb*PB8+AQ;
line([P1(1),P2(1)], [P1(2),P2(2)],
line([P1(1),P8(1)], [P1(2),P8(2)],
line([P8(1),P7(1)], [P8(2),P7(2)],
line([P7(1),P6(1)], [P7(2),P6(2)],
line([P6(1),P5(1)], [P6(2),P5(2)],
line([P5(1),P4(1)], [P5(2),P4(2)],
line([P4(1),P3(1)], [P4(2),P3(2)],
line([P3(1),P2(1)], [P3(2),P2(2)],
axis([-20,20,-20,20,-20,20]);
grid on;
pause(.1)
clf;
end
[P1(3),P2(3)]);
[P1(3),P8(3)]);
[P8(3),P7(3)]);
[P7(3),P6(3)]);
[P6(3),P5(3)]);
[P5(3),P4(3)]);
[P4(3),P3(3)]);
[P3(3),P2(3)]);
end
Conclusiones
Se aprendi a utilizar la herramienta de software Matlab, para poder trasladar, rotar y
simular un elemento en el espacio dentro de los tres ejes (x,y,z) correspondiente a una
pinza mecnica, utilizando las matrices de transformacin y traslacin.
Bibliografa
Introduccin a la Robtica 3ra Edicin. Craig John. Editorial Pearson Education, Mxico
2006.