Está en la página 1de 10

VI Congreso Internacional de Ingeniería Mecánica

y IV de Ingeniería Mecatrónica
IV Congreso Internacional de Materiales, Energía y Medio Ambiente

Bogotá, Colombia.
2, 3 y 4 de mayo del 2013

SOFTWARE DE SIMULACIÓN PARA UN ROBOT MANIPULADOR


SERIAL KUKA KR6

Juan A. Ramírez-Macías*, Andrés F. Betancur-Rivera


*
Facultad de Ingeniería Mecánica; Universidad Pontificia Bolivariana;
Circular 1 No. 70–01, Medellín, Colombia.
juan.ramirez@upb.edu.co

RESUMEN

En este artículo se discute la metodología detrás del desarrollo de un software para la simulación
de la cinemática directa de un robot KUKA KR6. El software fue desarrollado en Matlab como
plataforma y está pensado para que sirva como herramienta didáctica para los cursos de pregrado
y posgrado en robótica de la Universidad Pontificia Bolivariana. El programa cuenta con una
interfaz amigable que permite que el usuario pueda interactuar fácilmente con el robot en un
entorno virtual. Para su desarrollo se usan conceptos básicos de cinemática tridimensional y las
herramientas para la graficación y manipulación de objetos tridimensionales incluidas en Matlab.
Como resultado se obtuvo un programa que emula las funcionalidades básicas del robot real y un
conjunto de soluciones de software que permiten futuras implementaciones.

This article addresses the development of simulation software for the direct kinematics of a
KUKA KR6 robot manipulator. The software uses Matlab as the programming language and is
intended to serve as a teaching tool for undergraduate and graduate courses in Robotics at the
University Pontificia Bolivariana. The program has a friendly interface that allows the user to easily
interact with the robot in a virtual environment. Its development involved using basic concepts of
space kinematics and Matlab tools for plotting and manipulation of three-dimensional objects. The
result was a program that emulates the basic functionality of the real robot and a set of software
solutions that enable future implementations.

Palabras Clave: Cinemática directa (Direct Kinematics); KUKA KR6; Robot manipulador (Robot
manipulator); Software de simulación (Simulation Software).
2

1 INTRODUCCIÓN

Los robots manipuladores son equipos ampliamente usados en el ámbito industrial


internacional y en el ámbito nacional ha empezado a incrementarse el interés por integrarlos en el
aparato productivo. Respondiendo a esta creciente necesidad, las instituciones de educación
superior han aumentado su interés en incluirlos en su currículo, especialmente en posgrado. La
Universidad Pontificia Bolivariana sede Medellín, con la intención de satisfacer esta necesidad, ha
venido implementando, desde el año 2008, un laboratorio de manipuladores robóticos que ha
incluido la adquisición de un robot manipulador serial industrial, Fig. 1, y el desarrollo de varios
prototipos de manipuladores, que apoyen experimentalmente los diferentes cursos y sirvan como
plataformas de investigación [1]. El manipulador industrial adquirido es un KUKA KR6, para el cual
se hicieron las adecuaciones de infraestructura y hoy, en la UPB, apoya programas de pregrado y
posgrado de la Escuela de Ingenierías y la labor investigativa de diferentes grupos de
investigación.

Un robot industrial es un equipo costoso, delicado y peligroso si no es operado


adecuadamente. Adicionalmente, dada su complejidad, familiarizarse con el equipo no es un
asunto trivial. Por esta razón se decidió desarrollar un software de simulación que imita el
comportamiento del robot. Este software sería útil como herramienta didáctica en el proceso de
aprendizaje de la cinemática. Si bien el fabricante provee un software de simulación, el desarrollo
de un software propio se convierte en una plataforma de simulación para implementaciones
avanzadas, por ejemplo estrategias de solución y selección de soluciones de la cinemática inversa.

Figura 1: Laboratorio de Manipuladores UPB Medellín

2 MARCO TEORICO

La tarea fundamental del software consiste en simular la cinemática directa del robot
KUKA KR6. Este robot está conformado por seis brazos, barras o eslabones móviles conectados
en serie uno con respecto al otro y una base fija. Luego, para cada una de las conexiones o pares
entre barras se cuenta con un actuador que regula el movimiento de la articulación. Como se debe
controlar el movimiento de seis cuerpos rígidos, el equipo cuenta con seis actuadores. En la Fig. 2
se muestra el modelo CAD del manipulador que se puede obtener en formato IGES o Parasolid [2]
con muchos de los detalles constructivos. De la información disponible en el modelo CAD es
posible conocer la ubicación de cada uno de los puntos que conforman las superficies de cada uno
de los brazos, para una posición fija de cada uno de los actuadores. El problema consiste en tomar
esta información para generar un modelo tridimensional en Matlab y poder mover cada uno de los
puntos de modo que sea consistente con la forma en que sucedería en la realidad.
3

a) Modelo CAD b) Marcos coordenados en el software de


simulación

Figura 2: Modelos virtuales del robot KUKA KR6

2.1 Fundamentos básicos y notación

Como se mencionó anteriormente, el sistema cuenta con seis barras rígidas independientes.
Para modelar la cinemática de este conjunto de cuerpos se usa la teoría y nomenclatura tradicional
de la cinemática aplicada en robótica [3]; la cual implica el uso de marcos coordenados para
estudiar la posición y orientación de cuerpos rígidos, matrices de rotación para la descripción de la
orientación de marcos coordenados, matrices de transformación para expresar la ubicación relativa
entre dos marcos coordenados diferentes y los parámetros de Denavit-Hartenberg para la
definición de las matrices de transformación.

En este orden de ideas, la posición de un punto en el espacio con respecto a un marco


arbitrario se representa con el vector . La orientación relativa entre dos marcos
coordenados y se representa con la matriz de rotación . Esta matriz tiene la estructura
, donde , y son los vectores (columna) unitarios de vistos
desde el marco . Esto implica que es una matriz . Si los orígenes de los marcos y
son coincidentes, a un vector (visto desde ) se le puede encontrar su representación en
a través de , es decir . De este modo, sirve para representar la orientación
relativa entre dos cuerpos, si el marco está fijo a uno de los cuerpos y está fijo al otro. En el
caso en que los marcos coordenados no sean coincidentes, se debe considerar un vector
que representa la posición del origen de con respecto al origen de . De este modo se puede
escribir a como . Esta operación se puede representar equivalentemente,
usando matrices y vectores aumentados, como

donde

se define como la matriz de transformación que pasa un vector visto en a su representación en


. De forma abreviada esta operación se escribe como
4

2.2 Parámetros de Denavit-Hartenberg

Como se mencionó, el robot contiene seis brazos móviles conectados en serie más una base
fija. Asimismo, en la sección anterior se mostró que se le puede asociar un marco coordenado a
cada elemento rígido independiente. De este modo se pueden definir siete marcos coordenados
para expresar el movimiento de todo el robot: el marco fijo corresponde a la base y los marcos
móviles , , , , , corresponden a cada una de las barras, en el orden en que se
conectan. La forma en la que se ubican estos marcos coordenados se muestra en la Fig. 2.

Los parámetros de Denavit-Hartenberg son una forma metódica para definir la matriz de
transformación entre dos marcos consecutivos. De forma genérica la ubicación entre dos marcos
coordenados consecutivos e se puede definir con cuatro parámetros geométricos. Estos
parámetros son , , y . Las condiciones para definir la dirección y ubicación de los marcos
se encuentran bien definidas en [3]. Una vez conocidos todos los parámetros, la matriz de
transformación entre dos marcos consecutivos e está dada por

Esta matriz permite tomar un vector visto en y hallar su representación en . Teniendo


la matriz de transformación entre todos los brazos consecutivos es posible encontrar una matriz de
transformación entre un marco fijo y el marco final . Esta relación adopta la forma
. Teniendo en cuenta estas consideraciones y las enunciadas en [3], los parámetros de
Denavit-Hartenberg del manipulador son los que se muestran en la Tabla 1.

Tabla 1: Parámetros de Denavit-Hartenberg del manipulador, con distancias en mm y ángulos


en radianes

1 0 0 669
2 260 83
3 0 680 83
4 35 670
5 0 0
6 0 118

Con esta información es posible definir todas las matrices de transformación requeridas. Estas
matrices quedan en función de los i.e. las variables de movimiento de cada una de las
articulaciones. Para fines de simulación es necesario encontrar las matrices de transformación que
pasan un vector desde cada uno de los marcos hasta el marco fijo i.e. , ,..., . Estas
matrices se encuentran a partir de las matrices de transformaciones individuales de la siguiente
forma , , etc. Esta información es fundamental porque el marco fijo es el
que se usa para graficar el manipulador en el entorno del software y a su vez el modelo CAD
permite conocer las coordenadas de los puntos de cada brazo con respecto a su propio marco v.g.,
para el brazo 2, de la información disponible en el modelo CAD, es posible conocer las
coordenadas de todos sus puntos con respecto al marco . Luego, las coordenadas de los puntos
del brazo 2 son fijas con respecto a , pero no con respecto a , en la medida en que
y cambian. De este modo, usando a , es posible encontrar las coordenadas del
brazo 2 con respecto al marco fijo.
5

3 CREACIÓN Y MODIFICACIÓN DE OBJETOS 3D

La cinemática tridimensional mostrada en la sección anterior es la herramienta base con la


que se puede calcular a voluntad la posición de cada uno de los puntos del modelo virtual del
manipulador. Esta información se usa en conjunción con las herramientas de graficación 3D de
Matlab para generar animaciones que reproduzcan el movimiento del manipulador.

3.1 Graficación de superficies

El modelo tridimensional de cada uno de los objetos que conforman los brazos del robot en
Matlab se elabora usando el comando surf [4]. En principio este comando crea un objeto tipo
superficie (surf) usando la sintaxis obj=surf(X,Y,Z,C). Allí obj representa el objeto surf
creado; X, Y y Z son matrices que definen las coordenadas de la malla de la superficie (de
dimensión cada una) y C es una matriz de dimensión con la información RGB de
los colores de cada porción de superficie. En esencia, un objeto tridimensional arbitrario puede ser
representado por planos triangulares, planos cuadrados, planos poligonales, cilindros de polígonos,
etc. A modo de ejemplo, y por motivos de espacio, se ilustra la metodología para graficar un plano
poligonal. El plano poligonal está definido por un conjunto de puntos , , con
. A éstos se les puede obtener su centroide

Luego, las matrices requeridas por el comando surf i.e. (X, Y y Z), se organizan de la siguiente
forma:

En el caso en que sea un punto arbitrario se obtiene un objeto piramidal, en el caso en que los
no sean coplanares se obtienen geometrías más complejas.

3.2 Estructura de objetos

Debido a que cada uno de los brazos está conformado por un conjunto de superficies
diferentes, el conjunto de objetos se ordena usando variables tipo struct. Cada articulación está
definida por un struct que contiene todos los objetos tipo superficie que la conforman. Por
ejemplo, el brazo 1 está definido por la variable art1, la cual a su vez está conformada por varios
objetos v.g. art1.obj1, art1.obj2, art1.obj2, etc; donde obj1, obj2 y obj3, son objetos surf.
La estructura general de objetos de todo el manipulador tiene la forma: kukaobj.baseobj,
kukaobj.art1, kukaobj.art2, kukaobj.art3, kukaobj.art4, kukaobj.art5, kukaobj.art6;
donde kukaobj es la variable struct principal de todo el árbol de objetos.

Luego, la animación del robot se hace a partir de la modificación secuencial de las


coordenadas de los puntos de la malla que definen cada superficie en cada brazo móvil, la cual se
define analíticamente usando las matrices de transformación que se mostraron en la sección
anterior. Para la animación no se vuelve a usar el comando surf porque éste volvería a crear los
objetos y haría menos eficiente al programa. Para poder usar una misma función que
recursivamente pueda crear los objetos y modificar sus coordenadas, se crean funciones que
tienen la siguiente sintaxis:

function obj = fn_objeto(T,mode,obj,var)


% Se debe definir apropiadamente cómo se modifican X, Y y Z usando a T
X = …;
6

Y = …;
Z = …;
switch mode
case ‘create’
obj = surf(X,Y,Z,C);
case ‘move’
set(obj,’xdata’,X,’ydata’,Y,’zdata’,Z)
end

En esta función los argumentos de entrada son: T, matriz de transformación; mode, ‘create’
cuando se crea por primera vez y ‘move’ cuando se cambia de posición; obj es el objeto, el cual
debe ser un objeto vacío en modo ‘create’ y debe contener el mismo objeto creado previamente
en modo ‘move’; y var representa argumentos adicionales que se quieran pasar a la función.

En la Fig. 3 se muestra el nivel de realismo logrado por el software, comparado con el robot
real y con el modelo CAD a partir del cual se obtuvo la información geométrica.

Figura 3: Grado de realismo del software, de izquierda a derecha: robot real, software de
simulación y Modelo CAD del robot KUKA KR6.

Otro aspecto tenido en cuenta dentro de la visualización de los objetos tridimensionales fue el
manejo de transparencias, las cuales fueron usadas para ocultar las barras y permitir la
visualización, por ejemplo, de los ejes que definen cada marco coordenado. La sintaxis simplificada
para la modificación de la transparencia es set(obj,`FaceAlpha',alph,`EdgeAlpha',alph);
donde alph es un valor entre 0 y 1 que define el nivel de transparencia, siendo 0 para totalmente
transparente y 1 totalmente opaco. Adicionalmente, la propiedad `FaceAlpha' modifica las caras
de la superficie y `EdgeAlpha' los bordes.

4 SOFTWARE DE SIMULACIÓN

El software de simulación cuenta con una interfaz amigable que le permite al usuario
interactuar fácilmente con el robot. Allí se permite manipular individualmente la posición de cada
una de las articulaciones y generar trayectorias mediante aprendizaje de puntos. En la Fig. 4 se
muestra la interfaz [5].
7

Figura 4: Interfaz gráfica

Algunas de las características del software son:

 Permite simular desde la ventana de comandos (Command Window).


 Cuenta con una barra de herramientas con botones y una barra de menú.
 Permite simular desde la interfaz gráfica.

4.1 Barra de menú

El software cuenta con las siguientes aplicaciones en la barra de menú:

4.1.1 Menú Archivo:

 NUEVO: se usa para empezar a trabajar desde cero.


 ABRIR: permite cargar las trayectorias creadas con anterioridad para el manipulador,
para que éste las realice.
 GUARDAR: almacena las trayectorias construidas en el entorno de trabajo en un
archivo de extensión .txt, para utilizarlo luego en éste u otro software.
 GUARDAR IMAGEN: toma una foto del manipulador en la posición actual y la
almacena en un archivo con extensión .jpg.
 SALIR: se encarga de cerrar el software.

4.1.2 Menú Ver:

 MARCOS: esta herramienta permite mostrar u ocultar los marcos coordenados de


cada brazo. En la Fig 5 se muestra una imagen en la que todos los marcos están
activados.
 VER TRAYECTORIA: permite visualizar la trayectoria que va a realizar el manipulador
de la posición en la que se encuentra a una posición nueva, la cual está dada por los
8

ángulos mostrados en los cuadros de texto. También funciona presionando ENTER en


los cuadros de texto mostrados en la parte derecha, referidos a los ángulos.
 REPRODUCIR: hace que el manipulador siga una trayectoria hecha por el usuario o
siga una que ya esté elaborada con anterioridad. Esta herramienta reproduce la
trayectoria indicada en el archivo trayectoria.txt. Por tanto, si se desea correr
simplemente otra trayectoria se debe modificar ese archivo, en el cual el orden de
columnas es , , , , , y velocidad.

4.1.3 Importar:

 DEMO: permite ver una demostración del manipulador siguiendo una trayectoria
predeterminada, en la cual cada una articulaciones se mueve por separado.
 AYUDA se encuentra un ACERCA en el que están los datos con los cuales se pueden
ubicar al desarrollador del software para solución de problemas.

Figura 5: Interfaz gráfica

4.2 Botones

Además de las herramientas mencionadas anteriormente, el software cuenta con las


siguientes aplicaciones:

 Un botón PLAY que recogiendo los valores de los ángulos en los que deben estar las
articulaciones, realiza una animación para llegar a éstos.
 Un botón PAUSE que se encarga de parar la simulación momentáneamente y
reanudarla cuando se presiona PLAY de nuevo.
 Un botón STOP que cancela la acción y vuelve los valores a como estaban antes de
la acción del botón PLAY.
 Un botón REC que se encarga de grabar las posiciones para que el usuario vaya
realizando su trayectoria.
 Un botón GIRAR que permite ver el manipulador desde distintos ángulos.
 Un botón MOVER que permite mover la imagen del manipulador.
 Dos botones ZOOM ON y ZOOM OFF, sirven para prender y apagar el ZOOM de la
cámara.
 Un botón AJUSTAR que permite ver en ángulo de cámara inicial.
 Un botón HOME que regresa el manipulador a la posición inicial.
 Doce BOTONES DE AUMENTO Y DISMINUCIÓN para cambiar el valor de los
ángulos de las articulaciones según la lista MAGNITUD DEL CAMBIO, en la que se
especifica el incremento en grados.
 Tres botones que permiten interactuar con la trayectoria que se está creando
(ELIMINAR, SUBIR y BORRAR), los cuales permiten eliminar una posición que se
9

haya creado y no sea requerida y además intercambiar posiciones dentro de la


trayectoria.

4.3 Simulación en la ventana de comandos

El programa cuenta con dos formas de simular en la ventana de comandos sin tener que abrir
la interfaz gráfica:

 La primera de ellas es muy básica y sirve para mostrar el manipulador en una posición
determinada. Esto se logra ejecutando el comando parametros(q1,q2,q3,q4,q5,
q6,mode,kukaobj), en donde q1, q2, q3, q4, q5, q6, son los ángulos de cada una de
las articulaciones; tal como se muestra en la Fig. 6.
 La segunda realiza una animación usando el comando animacion(q1,q2,q3,q4,
q5,q6), en la cual el manipulador KUKA se mueve desde la posición inicial
(0,0,0,0,0,0), hasta la posición que el usuario haya elegido en orden de articulaciones.
Es decir, primero se mueve la articulación 1, luego la articulación 2, y así hasta la
articulación 6.

Figura 6: Ejemplo del uso del comando parametros

4.4 Simulación en la interfaz gráfica

Dentro de la interfaz gráfica hay disponibles distintos modos para realizar una simulación:

 El primero consiste en cambiar el valor de cada uno de los ángulos manualmente, en


esta opción se pueden cambiar varios ángulos a la vez, luego de esto se puede
presionar ENTER para que el manipulador haga una simulación moviéndose desde la
posición actual hasta la indicada, a una velocidad determinada (Fig. 7).
 El segundo consiste en cargar trayectorias predeterminadas a través del menú
ABRIR. Las trayectorias se pueden grabar usando el botón REC y almacenarlas en un
archivo de texto llamado trayectoria2.txt y se pueden animar usando el botón
PLAY. Estas trayectorias se pueden modificar agregándole más posiciones,
cambiándole el orden en el que se encuentran o eliminándolas.
El tercero consiste en interactuar con el manipulador presionando los botones y ,
los cuales cambian el valor de los ángulos en 0.1º, 1º ó 10º, según esté indicado el
valor en la lista. Al realizar esta acción el manipulador cambiará inmediatamente de
posición.
 También se puede usar la herramienta del menú DEMO, para que se haga una
simulación predeterminada que demuestre al usuario las capacidades del software.
10

Figura 7: Animación del manipulador serial KUKA KR6, con acercamiento en la imagen

5 DISCUSIÓN

En este trabajo se mostraron algunos elementos tenidos en cuenta en el desarrollo de un


software de simulación cinemática para el robot manipulador serial industrial KUKA KR6. El
software se desarrolló como material didáctico de apoyo para los cursos de robótica a nivel de
pregrado y posgrado en la Universidad Pontificia Bolivariana. Esta herramienta, aunque no es un
desarrollo nuevo en el estado del arte, es un recurso pertinente debido a que es una plataforma de
software propio, que además de servir como apoyo didáctico, permite futuras implementaciones
más elaboradas. Debido a que la interfaz gráfica es amigable y las animaciones emulan un modelo
CAD realista del robot, el software sirve como plataforma de entrenamiento para usuarios del robot
real y para la prueba de situaciones de movimiento previo a la implementación. El programa
demuestra ser muy útil para la comprensión del fenómeno de movimiento inherente al equipo.

AGRADECIMIENTOS

Este trabajo se desarrolló en el marco del proyecto “Desarrollo de un manipulador serial de


seis grados de libertad”, rad. 901A-01/12-22, financiado por el Centro de Investigación para el
Desarrollo y la Innovación CIDI y por la Facultad de Ingeniería Mecánica de la Universidad
Pontificia Bolivariana.

REFERENCIAS

[1] J. Correa et al., Implementation of a laboratory for the study of robot manipulators, Proceedings
of the ASME 2010 International Mechanical Engineering Congress and Exposition, Vancouver, BC,
2010.

[2] KUKA Roboter. KUKA robots industriales—KR 6. [Online]. Available: http://www.kuka-


robotics.com/es/products/industrial robots/low/kr6 2/, 2011.

[3] J. Craig, Introduction to Robotics: Mechanics and Control. 3rd. ed. New Jersey: Pearson
Prentice Hall, 2005, p. 387.

[4] The Mathworks. Handle graphic properties. [Online]. Available: http://www.mathworks.com/help/


techdoc/infotool/hgprop/ ocframe.html, 2011.

[5] A. Betancur, Software de simulación para un robot manipulador serial, Trabajo de grado
(Ingeniero Mecánico), Universidad Pontificia Bolivariana, Medellín, 2011.

También podría gustarte