Matlab - Translaciones, Rotaciones en matrices

 
Vista:

Translaciones, Rotaciones en matrices

Publicado por Pedro (2 intervenciones) el 28/10/2009 13:17:23
Hola, buenos dias.

Tengo la siguiente funcion. Sirve para ver las modificaciones de un brazo de robot repecto a los ejes X, Y y Z
Uso las librerias Peter_corke_robot_toolbox y hemero_robot_toolbox (para las funciones de rotacion y translacion)

clf
TA=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];
frame(TA,'g',1);
TB1=trotz(pi/4)*TA
frame(TB1,'r',0.5);
TB2=TB1*transl(0,0,0.5)*trotx(pi/4)
frame(TB2,'y',0.5);
TB3=TB2*transl(0,0,1)*trotx(pi/2)
frame(TB3,'b',0.5);
TB4=TB3*transl(0,0,1)
frame(TB4,'m',0.5);
TB5=TB4*eul2tr([-pi/2 pi/4 pi/2])
frame(TB5,'r',0.5);
rotate3d
grid on


Con esto tendriamos 6 posiciones, TA, TB1, TB2, TB3, TB4 y TB5.

Se me pide lo siguiente:
Obten la POS de origen de cada sistema de referencia respecto al sistema T0

Parece ser que tengo que multiplicar la matriz por (0.0.0.1), pero no tengo nada claro.

Espero su respuesta,
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Translaciones, Rotaciones en matrices

Publicado por fismat (391 intervenciones) el 28/10/2009 13:28:07
Hola Pedro,

Es muy interesante este toolbox, me llama la atencion,

Respecto a tu consulta no esta claro que deseas especificamente, y a esto te sugiero que leas que leas la informacion relacionada a esta toolbox (http://petercorke.com/Robotics_Toolbox.html), al parecer esta bien documentada, hasta he visto que tiene una seccion de con un foro de discucion y una serie de publicaciones, estoy seguro que ahi encontraras muchas cosas interesantes y de mayor ayuda.

Saludos
Fismat
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Translaciones, Rotaciones en matrices

Publicado por Pedro (2 intervenciones) el 28/10/2009 13:36:18
Hola.

Bueno, ya esta todo resuelto, era una tonteria. Por curiosidad, era añadir una nueva matriz, T0=[0;0;0;1];

Y despues de definir nuestras nuevas matrices (TB1, TB2...TB5) multiplicarla por T0

Es decir, despues de definir TB2:
TB2POS=TB2*T0

El programa quedaria de esta manera:
clf
TA=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1];
T0=[0;0;0;1];
frame(TA,'g',1);
TB1=trotz(pi/4)*TA
frame(TB1,'r',0.5);
TB2=TB1*transl(0,0,0.5)*trotx(pi/4)
TB2POS=TB2*T0
frame(TB2,'y',0.5);
TB3=TB2*transl(0,0,1)*trotx(pi/2)
TB3POS=TB3*T0
frame(TB3,'b',0.5);
TB4=TB3*transl(0,0,1)
TB4POS=TB4*T0
frame(TB4,'m',0.5);
TB5=TB4*eul2tr([-pi/2 pi/4 pi/2])
TB5POS=TB5*T0
frame(TB5,'r',0.5);
rotate3d
grid on

Gracias a un asi.
Pedro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Translaciones, Rotaciones en matrices

Publicado por fismat (391 intervenciones) el 28/10/2009 13:41:37
Hola Pedro,

Me da mucho gusto que hayas solucionado tu problema y recuerda visitar frecuentemente el foro, para colaborar con algunas consultas.

Gracias por publicar la solucion, es lo que muchas veces falta.

Saludos
Fismat
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar