Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
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.
donde
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
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
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.
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.
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
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.
4.2 Botones
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
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.
Dentro de la interfaz gráfica hay disponibles distintos modos para realizar una simulación:
Figura 7: Animación del manipulador serial KUKA KR6, con acercamiento en la imagen
5 DISCUSIÓN
AGRADECIMIENTOS
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.
[3] J. Craig, Introduction to Robotics: Mechanics and Control. 3rd. ed. New Jersey: Pearson
Prentice Hall, 2005, p. 387.
[5] A. Betancur, Software de simulación para un robot manipulador serial, Trabajo de grado
(Ingeniero Mecánico), Universidad Pontificia Bolivariana, Medellín, 2011.