You are on page 1of 6

APLICACIONES EN MATLAB Y SIMULINK PARA EL

MODELADO Y CONTROL DEL MOVIMIENTO DE UNA


ESTACIÓN ABB IRB-120
Miguel Mato, Alberto Herreros
ITAP (Universidad de Valladolid), {ma mato@hotmail.com, albher@eii.uva.es}
Juan Carlos Fraile, José Luis González, Enrique Baeyens, Javier Peréz Turiel, Fernando Gayubo
ITAP (Univ. Valladolid)-CARTIF (Parque Boecillo), {jcfraile,jossan,enrbae,turiel,fergay@eii.uva.es}

Resumen La aplicación “ARTE” (“A Robotic Toolbox for


Education”) [10] añade a la anterior aplicación
La programación de robots hace uso de herra- el modelo en tres dimensiones (3D) de un gran
mientas de simulación que reproducen fielmente número de robot industriales, con funciones para
la dinámica del robot y permiten diseñar los pro- obtener sus cinemáticas inversas, de forma que los
gramas de forma sencilla y eliminar errores an- conceptos teóricos pueden ser aplicados a robots
tes de proceder a su verificación sobre el robot. industriales.
En el mundo académico MATLAB es un entorno
El Instituto de las Tecnologı́as Avanzadas de la
de cálculo y visualización cada vez más extendido,
Producción (ITAP) dispone desde el año pasado
por lo que es muy interesante poder disponer de
de un robot ABB IRB-120 [2], el menor de su serie,
una herramienta desarrollada sobre MATLAB que
para uso puramente educacional. El objetivo es en-
permita programar y controlar un robot. En este
señar al alumno la teorı́a de robótica y la progra-
artı́culo se presenta un conjunto de aplicaciones,
mación del robot en RAPID. Para integrar ambos
desarrolladas con fines didácticos sobre MATLAB
objetivos, se ha desarrollado una serie de aplica-
y SIMULINK, que permiten visualizar un robot
ciones, basadas en las aplicaciones de MATLAB
ABB IRB-120 en tres dimensiones y poder diseñar
antes citadas [10, 8]. Las aplicaciones realizadas
y controlar su trayectoria. Los movimientos del
conseguirán que el alumno pueda comprender la
robot se controlan directamente por medio de co-
teorı́a con la herramienta de trabajo que luego va
municaciones OPC entre el servidor de ABB y el
a emplear. Se han realizado pantallas para la vi-
cliente de MATLAB. La herramienta dispone de
sualización del robot en 3D, una aplicación gráfica
un entorno gráfico que facilita su utilización.
basada en GUIDE de MATLAB [13], y simula-
Palabras clave: Robótica, Docencia, Simulación ciones del robot en 3D basadas en SimMechanic
[14, 15, 16].
Un objetivo didáctico de gran interés es el control
del movimiento del robot desde las aplicaciones
desarrolladas en Matlab. Para ello, se ha estudia-
1. INTRODUCCIÓN do distintas formas de comunicación entre el PC
con las aplicaciones de Matlab y el robot ABB.
Las asignaturas relacionadas con robótica tienen La aplicación empleada está basada en el servi-
dos objetivos que no siempre son fáciles de com- dor OPC que dispone ABB [1] y el OPC cliente
binar. Por un lado, se pretende proporcionar al de Matlab [12]. Dicha aplicación permite, para un
alumno las bases teóricas de la robótica, entre periodo de muestreo dado, mostrar y modificar las
ellas se explica los sistemas de coordenadas, las variables de salida y permanentes del robot desde
trayectorias, la cinemática y dinámica del robot y una aplicación OPC cliente.
el control del mismo, [6, 17, 19, 18]. Por otro la- Se consideran seis variables de salida en la esta-
do, se desea que el alumno aprenda a programar ción robotizada, una para cada eje del robot. Estas
un robot real, con sus lenguajes particulares, por variables serán leı́das por el OPC servidor y mo-
ejemplo RAPID para robot ABB, [5, 4]. dificadas desde Matlab por una aplicación OPC
Una solución intermedia para combinar ambos ob- cliente. En la función de visualización en 3D del
jetivos es el uso de las aplicaciones de MATLAB robot se ha añadido la opción de modificar de for-
y SIMULINK para robótica, donde de una forma ma simultanea el valor de estas variables para de-
práctica se puede aplicar y visualizar la teorı́a en finir la posición de los ejes. El procedimiento que
robots simulados o reales. La aplicación “Robotic el robot ejecuta en su propio lenguaje RAPID lee
Toolbox” desarrolla algoritmos teóricos para mo- de forma ininterrumpida las seis variables de los
delado de robots, estudio de cinemática, dinámi- ejes, y se mueve a la posición correspondiente. De
ca y trayectorias sobre un robot genérico [7, 8]. esta forma se consigue que la trayectoria del ro-
Actas de las XXXV Jornadas de Automática, 3-5 de septiembre de 2014, Valencia
ISBN-13: 978-84-697-0589-6 © 2014 Comité Español de Automática de la IFAC (CEA-IFAC)
bot sea controlada por la aplicación de MATLAB, de los robot se representa mediante bloques con-
y que robot y su modelo en 3D sigan la misma vencionales de SIMULINK.
trayectoria de forma simúltanea.
La mayorı́a de los fabricantes de robot industria-
El alumno podrá aplicar esta herramienta tanto en les han desarrollado modelos gráficos en 3D uti-
la estación virtual representada con RobotStudio lizando programas de diseño asistido por ordena-
[4] como en la real, ya que el servidor OPC es dor (CAD), y estos modelos en muchos casos son
válido para ambas estaciones. El alumno puede libres y se pueden obtener de internet. Del archivo
analizar y validar su programa de control en la del robot en los principales formatos de CAD se
estación virtual, y cuando esté convencido de su puede pasar a una estructura compuesta por un
funcionamiento ejecutarla y verificarla en el robot fichero “*.xml” con los datos del robot y ficheros
real. En cualquier caso, la aplicación es válida para “*.stl” con la información gráfica de cada brazo
poder ser aplicada con el robot en modo manual del robot. Existen aplicaciones de MATLAB pa-
en condiciones de máxima seguridad, ya que si se ra leer la información de los ficheros “*.stl” y
suelta la tecla de hombre muerto, el robot se para obtener gráficas en 3D de los brazos del robot en
automáticamente. Las pequeñas dimensiones del MATLAB.
robot IRB-120 permiten este tipo de manipulación
La aplicación “ARTE” (“A Robotic Toolbox for
sin peligro para el alumno. Éste fue el principal
Education”) [10] aprovecha estos ficheros para ge-
argumento para adquirir el citado robot.
nerar modelos de los principales robot del merca-
El resto del artı́culo tiene la siguiente estructu- do. Esta aplicación dispone de la cinemática di-
ra, en la sección 2 se analiza las aplicaciones en recta, basada en Denavit-Hartenberg, e inversa de
Matlab y SIMULINK relacionadas con robótica. un conjunto de robots. También dispone de datos
En la sección 3, se analiza las posibles comunica- dinámicos de alguno de estos robots. Con ello se
ciones entre un robot ABB y un PC. En la sec- puede estudiar los movimientos y trayectorias de
ción 4, se detallan las aplicaciones realizadas en un robot industrial viendo su evolución sobre mo-
MATLAB y SIMULINK, y en la sección 5 se ci- delos gráficos de 3D. Además, esta aplicación dis-
tan las conclusiones del artı́culo. pone de algoritmos similares a las instrucciones de
movimiento del lenguaje RAPID, para compren-
der la forma en la que se diseñan estas funciones
2. SISTEMAS ROBOTIZADOS y su aplicación a robot industriales.
EN MATLAB Y SIMULINK
La aplicación gráfica ROKISIM (Robot Kinematic
Simulation) [9] muestra un modelo gráfico en 3D
MATLAB y SIMULINK son dos entornos de
de muchos robots industriales y simula sus movi-
cálculo numérico y visualización de datos de la
mientos básicos.
compañı́a Matworks ([11], [14]), con grandes posi-
bilidades para el diseño de sistemas dinámicos y su La aplicación comercial SimMechanic [15] para SI-
simulación. Dentro de las aplicaciones comerciales MULINK dispone de una herramienta especial,
de ambos entornos no existe uno especı́fico para el SimMechanic Link [16], que permite importar mo-
diseño y simulación de sistemas robotizados, pe- delos de robot realizados con programas de CAD
ro diversos autores han desarrollado aplicaciones donde la información de su estructura está en fi-
de software libre usando MATLAB y SIMULINK cheros “*.xml” y la información sobre sus bra-
para sistemas robotizados. zos en ficheros “*.stl”. A partir de esta infor-
mación, la aplicación desarrolla un modelo SIMU-
La aplicación de robótica más conocida para
LINK (SimMechanic) con la estructura en serie
MATLAB y SIMULINK es “Robotic Toolbox”
articulación-brazo del robot y un modelo gráfico
realizada por Peter Corke [8] y que desarrolla los
en 3D con la figura del robot. Sobre el diagrama
contenidos del libro del propio autor [7]. Dicha
de SIMULINK se pueden hacer cambios para si-
aplicación dispone de software para robótica fija
mular los lazos de control de cada brazo del robot
y móvil. En la parte de robótica fija propone algo-
y de esta forma, simular la dinámica del mismo.
ritmos para modelar un robot usando el método
de Denavit-Hartenberg, con los que se puede obte- Se concluye indicando que existen muchas aplica-
ner la cinemática directa del robot. La aplicación ciones para modelar y simular un robot fijo usando
propone un método general de cinemática inversa MATLAB y SIMULINK. Algunas son genéricas
para un robot con muñeca esférica, que puede ser para cualquier tipo de robot definido con el méto-
aplicada a robots PUMA. Los modelos gráficos de do de Denavit-Hartenberg y otras aprovechan los
los robots son muy simples, pero genéricos, ya que modelos de CAD de robot industriales para estu-
se representan únicamente los ejes y las uniones diar la cinemática y dinámica de robot concretos.
entre ellos. En la última versión se ha desarrollado
un modelo 3D para el robot PUMA. La dinámica
Actas de las XXXV Jornadas de Automática, 3-5 de septiembre de 2014, Valencia
ISBN-13: 978-84-697-0589-6 © 2014 Comité Español de Automática de la IFAC (CEA-IFAC)
3. COMUNICACIÓN DE LA La forma de comunicarse entre MATLAB y la es-
APLICACIÓN CON EL tación IRB-120 es la siguiente:
ROBOT
MATLAB: Cuando la aplicación de
El objetivo de este trabajo es el modelado y si- MATLAB quiera cambiar la posición del
mulación con MATLAB y SIMULINK del ro- robot debe modificar el valor de las variables
bot ABB IRB-120 para diseñar trayectorias desde del servidor OPC correspondientes a los ejes
MATLAB que serán seguidas por el robot real. del robot.

La comunicación entre la aplicación de MATLAB Estación IRB-120 (RAPID): El progra-


y el robot de ABB se podrı́a haber realizado usan- ma en RAPID consiste en un bucle infinito
do múltiples protocolos. La ventajas e inconve- que lee las salidas analógicas correspondien-
nientes de dos de ellos se resumen a continuación: tes a los ejes y desplaza al robot a la posición
definida por los valores de las variables.
Comunicación por socket: El lenguaje
RAPID dispone la posibilidad de comunicar- El protocolo que se han empleado proporciona in-
se a través de socket vı́a local o internet. Es- dependencia frente al tiempo de lectura y escri-
te método implica crear una subtarea o in- tura. Si se envı́a una trayectoria definida por mu-
terrupción en el programa de RAPID que en chas posiciones de ejes con un periodo de muestreo
cada periodo de muestreo se conecte con el muy bajo, puede que el programa RAPID no sea
socket y se comunique con el exterior. Es pre- capaz de leer algún punto pero llegará al destino
ciso sincronizar el proceso de lectura y escri- sin quedarse bloqueado. La sincronización entre
tura entre el robot y su entorno lo que hace MATLAB y RAPID depende de la velocidad con
que este protocolo sea poco robusto. que MATLAB envı́a los datos a las variables de
salida del robot.
Comunicación por OPC: ABB dispone de
un servidor OPC que puede ser ejecutado des-
de un PC. Esta aplicación detecta los robots 4. DESCRIPCIÓN DE LAS
de ABB conectados al PC, ya sean reales o APLICACIONES: EJEMPLOS
virtuales, y extrae de ellos, en cada periodo
de muestreo fijado, la información del siste- Se han desarrollado tres aplicaciones para mode-
ma, sus variables de entradas y salidas, y las lar y simular un robot IRB-120 con MATLAB y
variables persistentes del programa RAPID conseguir mover el robot real, o virtual si se pre-
del robot. Desde una aplicación OPC cliente fiere, con la misma trayectoria que el robot simu-
se puede leer y modificar dichas variables. No lado. Las dos primeras aplicaciones hacen uso de
es preciso que la lectura y escritura estén sin- las funciones de “Robotic Toolbox” [8] y “ARTE”
cronizadas, cuando se modifique una variable [10]. La tercera aplicación, sin embargo, hace uso
desde el exterior, dicha variable queda modi- de las herramientas de SimMechanic [15, 16].
ficada en la estación del robot.
4.1. Aplicación gráfica de simulación
La comunicación entre la aplicación de MATLAB
y el robot de ABB ha sido realizada haciendo uso El objetivo de esta aplicación es modelar un ro-
del servidor OPC proporcionado por ABB [1], y bot IRB-120, con su cinemática directa e inversa
del cliente OPC proporcionado por la aplicación y programar una función para visualizar las po-
“OPC Toolbox” de MATLAB [12]. La comuni- siciones del robot en 3D. La cinemática directa y
cación se ha realizado usando variables de salida las trayectorias del robot se han diseñado utilizan-
analógicas virtuales por una razón de seguridad. do la aplicación de [8], mientras que la cinemática
La escritura en variables de salida en RAPID es inversa ha sido obtenida de la aplicación de [10].
posible en estado manual y automático, mientras A partir de los ficheros “*.stl” del robot, se ha
que la escritura en variables persistente sólo es po- construido una función plot irb120() con las si-
sible en automático. Con fines educativos y por guientes objetivos:
seguridad, el robot IRB-120 se suele usar en modo
manual, ya que en este modo se puede parar el Dibujar el robot en 3D con la posición de ejes
robot ante cualquier eventualidad dejando de pul- deseada. Se puede dibujar una secuencia de
sar el botón de hombre muerto. Se han definido posiciones si la entrada es una matriz de po-
seis variables de salida virtuales normalizadas en- siciones de ejes. Se puede definir un tiempo
tre [−100, 100] para transmitir la información de de parada entre posiciones que va a ser útil
los seis ejes del robot. para sincronizar el movimiento de la gráfica y
Actas de las XXXV Jornadas de Automática, 3-5 de septiembre de 2014, Valencia
ISBN-13: 978-84-697-0589-6 © 2014 Comité Español de Automática de la IFAC (CEA-IFAC)
Figura 2: Posición inicial del robot q0

Figura 1: Robot IRB-120 en 3D

el del robot real. La figura 1 muestra el robot


simulado en la posición q0 = [0, 0, 0, 0, π/2, 0].

El usuario puede escribir dicha posición en


las variables de entrada de la estación corres-
pondiente, usando el servidor OPC de ABB,
.

Cuando el programa de RAPID se activa, el


robot irá moviéndose a las mismas posiciones Figura 3: Posición final del robot q1
que el robot simulado. El tiempo de espera
entre posiciones es un parámetro de sintoni- 4.2. Aplicación gráfica (GUIDE) para el
zación entre el robot y la simulación. movimiento de la estación

A partir de la función plot irb120() se ha


Un ejemplo sencillo de esta aplicación es el movi-
realizado una aplicación gráfica en GUIDE de
miento del robot de una posición de ejes q0 a q1,
MATLAB [13] que permite al usuario realizar de
iterando los puntos intermedios.
forma sencilla movimientos de ejes por ángulos y
% Se d e f i n e e l r o b o t posiciones cartesianas. Dichos movimientos se vi-
r o b o t= m d l i r b 1 2 0 ;
% Busca l o s v a r i a b l e s en e l OPC s e r v e r sualizan con la función plot irb120() y podrán
i t e m s= OPCJoint ;
% I n t e r p o l a l a s p o s i c i o n e s de e j e s ser enviadas a las variables de los ejes del robot
q0= [ 0 , 0 , 0 , 0 , 0 , 0 ] ; q1 = [ 1 0 , 2 0 , 3 0 , 4 0 , 5 0 ] ∗ p i / 1 8 0 ;
t= 0 : 0 . 1 : 1 ; q= j t r a j ( q0 , q1 , t ) ;
a través del servidor OPC. Con ello, el usuario
% Se mueve l a g r á f i c a y r o b o t r e a l podrá mover el robot con una aplicación gráfica
o p t . i t e m s= i t e m s
p l o t i r b 1 2 0 ( q , robot , opt ) ; de MATLAB, de forma similar a como se mueve
con la aplicación FlexPendant de ABB [3].
El programa de RAPID del robot sólo lee las va- Las principales caracterı́sticas de esta aplicación
riables de salida correspondiente a las posiciones son la siguientes:
de los ejes y mueve el robot adecuadamente.
PROC m o v o p c j o i n t ( )
Movimiento a una posición en coordenadas
VAR j o i n t t a r g e t j o i n t ; articulares. Se puede grabar dicha posición
TPwrite ” I n i c i o E s p e r a ” ;
WHILE t r u e DO para simular una trayectoria.
! L e e r v a r i a b l e y mover a donde
corresponda
j o i n t := R e a d J o i n t i b r 1 2 0 ( ) ; Movimiento a una posición del punto de tra-
MoveAbsJ j o i n t , v100 , f i n e ,
electroiman ; bajo. Se puede grabar dicha posición para si-
ENDWHILE
ENDPROC
mular una trayectoria.

Movimiento del robot entre las posiciones gra-


La figuras 2 y 3 muestran la posición inicial y final badas anteriormente, ya sean posiciones arti-
del movimiento. culares o del punto de trabajo.
Actas de las XXXV Jornadas de Automática, 3-5 de septiembre de 2014, Valencia
ISBN-13: 978-84-697-0589-6 © 2014 Comité Español de Automática de la IFAC (CEA-IFAC)
Movimientos de demostración del robot. Mover el punto de trabajo del robot para mi-
nimizar el error entre la posición de dicho
Conexión con OPC para comunicar datos. punto y una referencia dada, usando un al-
goritmo de optimización local. Usar para ello
La figura 4 muestra la pantalla inicial de la apli- incrementos en las coordenadas auriculares.
cación gráfica. Se aprecian los diferentes botones
Mover el punto de trabajo del robot en la di-
para mover el robot mediante coordenadas articu-
rección medida por un sensor de esfuerzos,
lares, coordenadas de punto de trabajo, y resto de
que el robot IRB-120 tiene en una de sus he-
elementos mencionados.
rramientas.

Mover el punto de trabajo del robot hacia una


posición móvil detectada por una cámara de
visión asociada a una aplicación de Matlab.

5. CONCLUSIONES

Se han presentado un conjunto de aplicaciones


didácticas desarrolladas sobre MATLAB y SI-
MULINK para controlar el movimiento de un
robot real ABB IRB120. El objetivo es que el
alumno pueda realizar sus propios programas des-
de MATLAB y pueda ver como con ellos se contro-
Figura 4: Aplicación gráfica para mover el robot la la trayectoria de un robot real. La herramienta
de comunicación entre el robot y las aplicaciones
de MATLAB es un simple intercambio de informa-
4.3. Simulación de la dinámica de la ción usando el servidor OPC de ABB y el cliente
estación OPC de MATLAB. Se consigue un movimiento
sincronizado entre el modelo gráfico 3D del robot
A partir del modelado del robot IRB-120 con un visualizado en MATLAB y el movimiento real del
programa de CAD se puede extraer la informa- robot. Con esta herramienta se pretende que el
ción de su estructura a un fichero “*.xml” y la alumno desarrolle funciones en MATLAB simila-
información de las gráficas de sus brazos a fiche- res a las instrucciones reales de RAPID del robot,
ros “*.stl”. para comparar los algoritmos desarrollados por el
alumno con los obtenidos con las funciones del len-
Se ha realizado un modelo con la herramienta Sim- guaje RAPID y ası́ fijar los conocimientos apren-
Mechanic [15] de SIMULINK [16] importado a didos en las clases de robótica.
partir del modelo de CAD. Con este modelo se
pueden diseñar los controladores del robot.
Referencias
4.4. Posibles aplicaciones didácticas [1] ABB robotic. Application manual: IRC5
OPC Server. Doc. ID: 3HAC023113-001.
El objetivo de las aplicaciones realizadas en este
artı́culo es servir de puente entre el estudio ma- [2] ABB robotic. Manual del producto: IRB
temático de los sistemas robotizados y el prácti- 120-3/0.6, IRB 120T-3/0.6. Doc. ID:
co de movimiento real de un robot comercial. Se 3HAC035728-005.
desea que el alumno pueda realizar algoritmos se-
mejantes a los implementados en lenguaje RAPID [3] ABB robotic. Manual del operador IRC5 con
y otros algoritmos nuevos que él desarrolle. FlexPendant. Doc. ID: 3HAC16590-5.

Como ejemplos de ejercicios realizables con estas [4] ABB robotic. Manual del operador: RobotS-
aplicaciones se pueden citar: tudio. Doc. ID: 3HAC032104-005.

[5] ABB robotic. Manual del operador: Intro-


Modelar trayectorias interpolando puntos en ducción a RAPID (RobotWare 5). Doc. ID:
el espacio de coordenadas auriculares. 3HAC029364-005

Modelar trayectorias interpolando puntos en [6] Barrientos A., Peñin L.F., Balaguer C. y Ara-
el espacio de coordenadas espaciales del punto cil P. (2007) Fundamentos de Robótica (2 edi-
de trabajo. ción), MacGraw-Hill.
Actas de las XXXV Jornadas de Automática, 3-5 de septiembre de 2014, Valencia
ISBN-13: 978-84-697-0589-6 © 2014 Comité Español de Automática de la IFAC (CEA-IFAC)
[7] Corke, P. (2013) Robotics, Vision & Control,
Springer.
[8] Peter Corke (2014) Robotics Toolbox.
http://petercorke.com/Robotics Toolbox.html.
[9] Bonev I. (2013) ROKISIM (Robot Ki-
nematic Simulation), Escuela de Su-
perior de Tecnologı́a(Quebec, Cadana)
http://www.parallemic.org/RoKiSim.html.
[10] Gil Aparicio A. (2014) ARTE (A Ro-
botics Toolbox for Education) Universi-
dad Miguel Hernandez (Elche, España),
http://arvc.umh.es/arte/index en.html.
[11] MathWorks (2014). MATLAB User’s Guide.
[12] MathWorks (2014). OPC Toolbox User’s
Guide.

[13] MathWorks (2014). GUIDE Toolbox User’s


Guide.
[14] MathWorks (2014). SIMULINK User’s Gui-
de.

[15] MathWorks (2014). SimMechanic User’s Gui-


de.
[16] MathWorks (2014). SimMechanic Link User’s
Guide (2014).
[17] Ollero A. (2001) Robótica, manipuladores y
robots móviles, Editorial Marcombo.
[18] Perez Cisneros M.A., Cuevas Jimenez E.V.,
Zaldivar Navarro D. (2014) Fundamentos de
Robótica y Mecatrónica con MATLAB y SI-
MULINK. Editorial RA-MA.

[19] Spong M., Hutchinson S y Vidyasagar (2006)


M., Robot, Modeling & Control, Wiley.

Actas de las XXXV Jornadas de Automática, 3-5 de septiembre de 2014, Valencia


ISBN-13: 978-84-697-0589-6 © 2014 Comité Español de Automática de la IFAC (CEA-IFAC)

You might also like