Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MARCO TERICO
Ollero [1] plantea que los robots manipuladores son esencialmente brazos articulados. Un
manipulador industrial convencional es una cadena cinemtica abierta formada por un conjunto de
eslabones o elementos de la cadena interrelacionados mediante articulaciones o pares cinemticos.
Las articulaciones permiten el movimiento relativo entre los sucesivos eslabones.
Tipos de articulaciones
La articulacin de rotacin suministra un grado de libertad consistente en una rotacin alrededor del
eje de la articulacin. La articulacin prismtica brinda un grado de libertad en una traslacin a lo
largo del eje de la articulacin. La articulacin cilndrica existen dos grados de libertad: una rotacin
y una traslacin. La articulacin planar est caracterizada por el movimiento de desplazamiento en
un plano con dos grados de libertad. Por ltimo, la articulacin esfrica combina tres giros en tres
direcciones perpendiculares en el espacio.
Guide de Matlab
En Matlab se pueden crear interfaces grficas con la herramienta Guide. Al usar Guide se obtienen
dos archivos:
- Archivo .fig que contiene la descripcin de los componentes que contiene la interfaz
- Un archivo .m que contiene las funciones y los controles de la interfaz as como el callback
Para crear una interfaz grfica se ejecuta el men principal File -> New -> GUI (Ver figura 1)
All seleccione Blank GUI(Default) y de clic en OK. Se crear el entorno de trabajo que se presenta
en la Figura 2.
Figura 2. Entorno de trabajo del GUIDE
Edit Text. Texto editable. Permite al usuario teclear una cadena de entrada.
Static Text. Crea un string de texto en una caja. Puede mostrar smbolos,
mensajes o incluso valores numricos.
Pop-up Menu. Muestra un men desplegable.
ActiveX Control. Permite crear un control tipo activex para objetos, grficos,
entre otros.
Cada uno de los elementos del GUI tiene un conjunto de opciones que podemos acceder con doble
clic sobre l. Las opciones se encuentran en el inspector:uicontrol de cada elemento. (Ver figura 3)
Al hacer clic derecho en el elemento ubicado en el rea de diseo, una de las opciones ms
importantes es View Callbacks, la cual, al ejecutarla, abre el archivo .m asociado a nuestro diseo y
nos posiciona en la parte del programa que corresponde a la subrutina que se ejecutar cuando se
realice una determinada accin sobre el elemento que estamos editando.
Por ejemplo, al ejecutar View Callbacks>>Callbacks en el Slider, nos ubicaremos en la parte del
programa:
Una vez creado el entorno de trabajo arrastre el smbolo y sitelo en la ubicacin deseada.
Para cambiar el texto de doble clic sobre l para que emerja el inspector de propiedades uicontrol.
En la tabla 2 se presentan las principales propiedades y la accin que permite realizar cada una.
Una vez creado el entorno de trabajo arrastre los smbolos y . Sitelos en la ubicacin
deseada. Vaya al inspector de propiedades uicontrol del Push Button y cambie el nombre del botn
por Botn prueba. Enseguida de clic derecho y seleccione View Callbacks y ah vaya al cdigo
Callbacks se abrir el archivo .m y lo ubicar en la funcin Callback del botn all digite el siguiente
texto:
En esta funcin al oprimir el botn asigna un texto con la funcin set en un texto esttico que este
caso corresponde al text2 porque ya se haba creado un primer texto esttico en el primer ejemplo.
El nombre puede cambiarse en la propiedad Tag del texto esttico. Los nombres que escriba en las
funciones siempre deben corresponder a los asignados en el Tag de cada elemento.
Al dar clic sobre el smbolo de la barra de herramientas superior, corre la interfaz grfica y
puede observar el resultado como se muestra en la figura 6.
h = plot3(0,0,0)
p = get(h,'Parent')
hold on
xlim(p,'manual');
xlim(p,[-1 1]) %Define el lmite del eje x que se observar en la grfica
ylim(p,'manual');
ylim(p,[-1 1])%Define el lmite del eje y que se observar en la grfica
zlim(p,'manual');
zlim(p,[-1 1])%Define el lmite del eje z que se observar en la grfica
axis vis3d
grid on
rotate3d
r=0.5
t=linspace(0,2*pi,50); %Crea un vector de tiempo
x=r*sin(t) %crea vector en x
y=r*cos(t) %crea vector en y
z=zeros(1,50) %crea vector en z
fill3(x,y,z,'r'); %Crea un crculo en el plano xy
xlabel('Eje x')
ylabel('Eje y')
zlabel('Eje z')
Superficies en el espacio
Para modificar el origen de ubicacin de los comandos se puede definir una matriz [x,y,z] que permite
definir el punto de origen (x0,y0,z0) , el radio r y la altura h (para el caso del cilindro). Para esto los
ejes se encuentran parametrizados de la siguiente manera:
x=x0+rx
y=y0+ry
z=z0+hz Este comando aplica para el cilindro
z=z0+rz Este comando aplica para la esfera
Grficas en Matlab
Tipos de lneas
line ([x0,x1],[y0,y1],[z0,z1],linestyle,S,color,S,LineWidth,#) define una lnea que va desde
el punto (x0,y0,z0) hasta el punto (x1,y1,z1) LineWidth permite definir el tamao de la lnea y se
debe colocar el tamao deseado reemplazado en donde est el smbolo de #. Con el comando
linestyle se puede seleccionar el estilo y con color el color de la lnea. Para esto se debe utilizar
los caracteres definidos a continuacin:
Carcter Color
y Amarillo
m Magenta
c Cyan
r Rojo
g Verde
b Azul
w Blanco
k Negro
none Transparente
Carcter Formato
. Punto
o Crculo
x Marca x
+ Ms
- Slido
* Estrella
: Puntos
-. Guin y punto
-- Guiones
Ejemplo para crear una cara rectangular sobre el plano xy con el comando Patch
h = plot3(0,0,0)
p = get(h,'Parent')
hold on
xlim(p,'manual');
xlim(p,[-2 2]) %Define el lmite del eje x que se observar en la grfica
ylim(p,'manual');
ylim(p,[-2 2])%Define el lmite del eje y que se observar en la grfica
zlim(p,'manual');
zlim(p,[-2 2])%Define el lmite del eje z que se observar en la grfica
axis vis3d
grid on
rotate3d
patch([0 0 1 1],[0 0.5 0.5 0],[1 1 1 1],'g')
xlabel('Eje x')
ylabel('Eje y')
zlabel('Eje z')
Suponiendo un sistema de coordenadas de referencia fijo al que se designar como sistema {A}. La
posicin con respecto a este sistema se representar mediante un vector de posicin AP (Ver figura
9), cuyas componentes se presentan en la ecuacin 1.
YA
(A)
Py
XA Px
=[ ] (1)
Considerando otro sistema de coordenadas con vectores unitarios , (ver figura 10). La direccin
del vector forma un ngulo con el vector .
(B)
YB
YA
(A)
XB
XA
Figura 10. Localizacin de un objeto en posicin y orientacin. Fuente propia
11 12
= [
]=[ ] = [ 22 ] = [ ] (2)
21
Suponiendo que el sistema {B} tiene sus vectores de direccin coincidentes con los del {A} (ver figura
11). Por lo tanto, las coordenadas de un punto cualquiera del plano en los dos sistemas estn
relacionados mediante la ecuacin 3. Estas componentes de los vectores pueden sumarse por estar
estos vectores en la misma direccin y corresponden a la transformacin de traslacin del sistema
de coordenadas.
(B)
YB
YA
(A)
XB
XA
Figura 11. Cambio de sistemas de referencia en el espacio. Fuente propia
= +
= +
= [
]
Suponiendo que el sistema {B} coincide con el origen de {A} pero la orientacin es diferente (ver
figura 12). En este caso las coordenadas expresadas en el sistema {A} en funcin de as de {B} estn
dadas por la ecuacin 4.
(A)
YA
XB
(B)
YB
XA
Figura 12. Rotacin del sistema de coordenadas. Fuente propia
=
=
el vector de posicin en un sistema {A} (Ver figura 13), el cual se describe por la ecuacin 6.
(A)
ZA
YA
XA
= [ ] (6)
11 12 13
{ } = [ ] = [ ] = [21 22 23 ] (7)
31 32 33
(B)
(A)
ZA
YA
XA
= 1 = = [ ] =
[ ] (8)
(B)
ZB
(A)
ZA YB
XB
YA
XA
Suponiendo que los orgenes de {A} y {B} son coincidentes, puede escribirse como aparece en la
ecuacin 9.
= (9)
Rotacin en el espacio
La matriz de rotacin define la orientacin de un sistema con respecto a otro sistema de referencia.
Esta matriz recibe el nombre de matriz de cosenos directores y es ortonormal, es decir que la inversa
es igual a la traspuesta.
= [ ] = + +
= [ ] = + +
[ ] = [ ]
= [ ] (10)
Rotacin en el eje x
Figura 16. Rotacin en el eje x. Fuente propia
1 0 0
(, ) = [0 ] (11)
0
Rotacin en el eje y
0
(, ) = [ 0 1 0 ] (12)
0
Rotacin en el eje z
Figura 18. Rotacin en el eje z. Fuente propia
0
(, ) = [ 0] (13)
0 0 1
Para representar varias rotaciones se premultiplican las matrices de derecha a izquierda en el orden
que se realicen las rotaciones. El producto de las matrices no es conmutativo
Ejemplo:
Representar una matriz de rotacin en donde se realice una rotacin con un ngulo en el eje x,
luego una rotacin con un ngulo sobre el eje z y finalmente una rotacin con un ngulo en el
eje y.
0 0 1 0 0
= (, )(, )(, ) = [ 0 1 0 ] [ 0] [0 ] (14)
0 0 0 1 0
+
= [ ] (15)
+
Donde n es no-nulo. Los vectores de la forma [1,b,c,0]T sirven para representar direcciones, pues
representan vectores de longitud infinita.
(33) (31)
= [ ]=[ ]
(13) (11)
Traslacin
En el sistema OUVW si el vector P=pxi+pyj+pzk con respecto al sistema OXYZ. La matriz T ser una
matriz homognea de traslacin
1 0 0
0
() = [0 1 ]
0 0 1
0 0 0 1
1 0 0 +
0 +
[ ] = [0 1 ][ ] = [ ]
0 0 1 +
1 0 0 0 1 1 1
Matrices en Matlab
En Matlab se pueden ingresar valores de manera simblica de tal manera que el cdigo se escriba
de manera general y luego puedan reemplazarse los valores simblicos por numricos. Para dejar
un valor como simblico se definen al inicio del cdigo con el comando syms y luego los nombres
de los valores que se dejarn simblicos.
Matrices especiales
Programacin:
Se pueden construir vectores matrices mediante programacin
Matlab dispone de las funciones set y get para consultar y cambiar el valor de las propiedades de un
objeto. Las propiedades de un objeto pueden ser cambiadas o modificadas (salvo que sean readonly)
con el comando set (id,propiedad,valor). Por ejemplo:
punto0.x = 0
punto0.y = 0
punto0.z = 0
punto1.x = 0
punto1.y = 0
punto1.z = 1
eslabon1=
line([punto0.x,punto1.x],[punto0.y,punto1.y],[punto0.z,punto1.z],'Color','b','LineWidth',
4); %Dibujar eslabn
pause(0.5);
for theta1 =0:1:valor %Cambio el ngulo theta desde 0 hasta el valor ingresado en el
Slider con un intervalo de 1
[punto0,punto1] = punto(theta1)
set(eslabon1,'ZData',[punto0.z,punto1.z],'YData',[punto0.y,punto1.y],'XData',[punto0.x,pu
nto1.x]) %Redibujar el eslabn
hold on;
plot3(punto1.x,punto1.y,punto1.z,'or'); %Dibujar la trayectoria color rojo formato o
pause(0.1);
end
hold off %apago hold on para que cuando ingrese un nuevo valor en el slider borre la
grfica y trace una nueva
Ejemplo para capturar un dato desde un edit, almacenarlo en una variable y crear una funcin
para pasar el valor del edit
Para crear una funcin dentro del programa vaya al final del cdigo y all coloque la palabra
reservada function y el nombre que usted desee. Si el objetivo de la funcin es recibir algn
parmetro capturado desde la interfaz (slider o edit), usted debe colocar dentro de un parntesis
handles que es el identificador de los datos recibidos. El cdigo debe quedar similar al siguiente:
function movimiento(handles)
Este ejemplo ilustra como recibir un dato desde un edit y enviarlo a la funcin movimiento creada
anteriormente para luego almacenarlo en una variable. En el entorno de trabajo arrastre el smbolo
En la funcin movimiento debe incluir el siguiente cdigo para recibir el dato enviado desde el
Callback del Edit1:
function movimiento(handles)
Valor1=str2double(get(handles.edit1,'String'))%Recibe el dato del edit1, lo
convierte de texto a nmero y lo almacena en una variable llamada Valor1.
De manera similar se colocara el dato recibido desde un slider. La nica diferencia es que no hay
que convertirlo a nmero. El cdigo podra ser el siguiente:
Procedimiento:
1. Con la herramienta Guide de Matlab cree una interfaz grfica que contenga lo siguiente:
a. Un texto esttico que tenga como ttulo Morfologa de un Robot Industrial.
b. Tres botones cada uno al ser oprimido mostrar un dibujo en un axes y su respectiva
definicin (en un texto esttico). Las grficas y las definiciones deben corresponder a:
Articulacin rotativa, Articulacin prismtica y Eslabn con efector. El resultado debe ser
similar al que se muestra en la figura 20. Las articulaciones debe dibujarlas con su respectiva
simbologa, es decir un cilindro para articulaciones rotativas y un cubo para articulaciones
prismticas. El efector similar al dibujo de la figura 9.
2. Cree una interfaz de usuario en donde se visualice en un plano x-y la rotacin y desplazamiento
de un sistema de referencia {B} respecto a otro sistema de referencia fijo {A}. El sistema {B}
tambin podr rotar y desplazarse simultneamente respecto a {A}. El usuario podr manipular
tales localizaciones de {B} mediante el uso de sliders.
3. Cree una interfaz grfica en donde ingrese tres datos de posiciones Px,Py,Pz (3 Edit Text) y 3
sliders para ingresar el ngulo de rotacin (Rotacin en x,y y z) y un axes para visualizar el
movimiento. Los datos ingresados de posiciones corresponden a una traslacin. El movimiento
que debe generarse es Rotacin en x, Traslacin, Rotacin en y, Rotacin en Z. Cada Slider debe
permitir ingresar un ngulo entre 0 y 360. El resultado esperado se presenta en la figura 1.
Entregables
1. Sustente al docente cada una de los simulaciones realizadas
2. Realice un informe en formato IEEE en donde se evidencie el desarrollo de la gua un tem
con las respuestas a las siguientes preguntas:
a. Qu es una articulacin, qu tipos de articulaciones existen y qu diferencia hay entre
ellas?
b. Qu es un eslabn y qu tipos de eslabones existen?
c. Qu es el efector final?
d. Una matriz de transformacin homognea est compuesta por cuatro matrices, cules
son estas matrices?
e. Calcule la matriz de transformacin homognea final en un sistema OUVW al que se le
realiza una rotacin de 13 en el eje z, luego se realice una traslacin de (3,6,-10) y
finalmente se realiza una rotacin de 46 en el eje x con respecto a un sistema OXYZ.
f. Qu diferentes hay entre posmultiplicar y premultiplicar matrices de transformacin
homognea?
Bibliografa recomendada
[1] Lung-Wen Tsai. Robot analysis: the mechanics of serial and parallel manipulators Wiley- IEEE,
1999
[2] Siciliano, Bruno; Sciavicco, Lorenzo ; Villani, Luigi ; Oriolo, Giuseppe. Robotics Editorial:
Springer Verlag - Estados Unidos. ISBN: 1846286417.
[3] Craig, J. Introduction to robotics. Adisson Wesley.
[4] Ollero, A. Robtica manipuladores y robots mviles. Alfaomega Marcombo.
[5] Spong, Mark W. y Vidyasagar, M. Robot Dynamics and Control. John Wiley & Sons, 1989.
[6] Fu, K.S.; Gonzlez, R.C. y Lee, C. S. G. Robtica: Control, Deteccin, Visin e Inteligencia.Ed.
Mc Graw Hill, 1988.