Beruflich Dokumente
Kultur Dokumente
Resumen
En este trabajo se presenta una nueva interfaz de aplicacin desarrollada en Python, que permite controlar en tiempo real cada una de las articulaciones que componen un brazo robot cualquiera construido mediante el programa de diseo 3D Blender. Se explican en detalle las caractersticas de la interfaz propuesta, incidiendo en las diferencias con otros proyectos similares, mostrando adems las herramientas utilizadas para realizar la interfaz. Palabras Clave: modelado 3D, simulacin, robtica, interfaz, Blender, Python.
la construccin de sistemas cada vez ms complejos, organizados en capas o subsistemas interrelacionados entre s. Es de esperar que, en el futuro, los sistemas robticos actuales sean subsistemas de otros sistemas ms grandes, costosos y complejos [3]. En este contexto, los simuladores proporcionan los medios adecuados para el estudio y modelado de estos sistemas, tanto reales como abstractos, ya que se encargan de replicar el comportamiento de tales sistemas mediante hardware y software [1]. Una definicin formal de simulacin es la del proceso de disear un modelo de un sistema real y llevar a cabo experimentos con dicho modelo con el propsito de comprender el comportamiento del sistema o de evaluar diversas estrategias (dentro de los lmites impuestos por un criterio o conjunto de criterios) para la operacin del sistema [4]. Nacidos con esta motivacin, existen en la actualidad varios proyectos en desarrollo que permiten modelar y simular todo tipo de robots, si bien la mayora de ellos no permiten realizar ambos procedimientos (modelado y simulacin) en el mismo software [5], y/o estn definidos para robots de un fabricante concreto [6].
INTRODUCCIN
Debido a los avances en la generacin de grficos por ordenador y a la aparicin de nuevos programas que permiten crear y visualizar dichos grficos de forma cada vez ms sencilla, junto al abaratamiento del hardware necesario, en especial microprocesadores y GPUs, la simulacin por ordenador es una disciplina en auge en el mbito de la ingeniera, gracias a las importantes ventajas que presenta. Entre estas, cabe destacar el ahorro de material, que abarata los costes de las pruebas realizadas, la capacidad de alterar la velocidad del proceso que se desea investigar, as como la de modificar los parmetros de la simulacin fcilmente, obteniendo as los datos requeridos de una forma mucho ms rpida y eficiente que mediante la realizacin de pruebas reales. Por otra parte, la simulacin por ordenador permite probar situaciones y entornos que pudieran suponer un riesgo para el personal encargado de realizar y supervisar las pruebas [1]. El modelado y simulacin de mquinas reales es un rea de enorme importancia prctica en Robtica [2]. Invariablemente, los avances tecnolgicos conllevan
HERRAMIENTAS UTILIZADAS
Teniendo en cuenta las ventajas inherentes a la simulacin descritas en el apartado anterior, se presenta en este trabajo una interfaz programada en lenguaje Python, que permite manejar por separado cada una de las articulaciones de las que se componga un brazo robot cualquiera diseado en el conocido software de diseo grfico 3D de cdigo abierto con licencia GNU Blender [7]. La interfaz objeto del presente trabajo ha sido diseada y probada sobre Blender sobre el sistema operativo Linux, tambin libre, Ubuntu 12.04 Precise Pangolin [8], considerando una serie de aspectos que se detallan en los siguientes apartados.
805
Figura 1: Diseo en Blender del brazo robot articulado SCARA usado en las simulaciones.
Para el modelado de los brazos robticos se ha utilizado el programa de diseo 3D de cdigo abierto Blender v.2.62. Dicha eleccin viene motivada, adems de por el hecho de ser el software libre de mayor xito en su rea, por la simplicidad que ofrece a la hora de modelar objetos, as como por su potencia, ya que aparte de las herramientas de diseo presentes en otros programas de diseo 3D, posee 2 tipos de renderizador: Blender internal, presente desde las primeras versiones del programa, y Cycles, presente desde la versin 2.6, que permite obtener resultados mucho ms realistas en el renderizado y con mayor facilidad que con el otro renderizador [7]. Adems de las caractersticas anteriores, Blender tambin posee un motor de juegos (Blender Game Engine o BGE), que permite interactuar con los diseos realizados usando perifricos como el teclado o el ratn, as como a travs de la programacin de scripts que gobiernan el comportamiento de los objetos presentes en el entorno de simulacin. Esta ultima caracterstica ser la que permita modificar la posicin de cada uno de los eslabones del robot al introducir en la parte grfica de la interfaz los parmetros pertinentes, como se ver en la Seccin 3. 2.4 SISTEMA OPERATIVO
Figura 2: Diseo en Blender del robot articulado KUKA usado en las simulaciones. 2.1 MODELOS DE SIMULACIN
Las simulaciones realizadas a lo largo del presente trabajo hacen uso de dos robots articulados: el robot tipo SCARA (Selective Compliant Articulated Robot Arm) mostrado en la Fig. 1, y el robot articulado KUKA, representado en la Fig. 2 [2]. 2.2 LENGUAJE DE PROGRAMACIN
El sistema operativo utilizado a la hora de programar la interfaz y en las pruebas realizadas es Ubuntu 12.04 Precise Pangolin. Esta versin presenta la ventaja de tener preinstaladas las versiones 2.7 y 3.2 de Python, siendo necesaria esta ltima para poder trabajar con la interfaz diseada, mientras que Blender se puede instalar fcilmente desde el Centro de Software de Ubuntu [8].
DISEO DE LA INTERFAZ
A continuacin se describen los distintos elementos de los que se compone la interfaz diseada. 3.1 ARCHIVO DE DISEO DEL ROBOT
Para la realizacin de la interfaz se ha elegido el lenguaje de programacin Python v.3.2. Esta eleccin se justifica, en primer lugar, por la facilidad que presenta el lenguaje a la hora de programar, lo que hace de Python un lenguaje entre 5 y 10 veces ms productivo respecto a otros como Java [9].
Se trata de un archivo que contiene el diseo 3D modelado en Blender del brazo robot que se quiere simular. Los nicos aspectos que se deben tener en cuenta a la hora de modelar un brazo robot para ser
806
(a)
Este script, programado en Python, tiene como propsito comprobar qu objetos forman parte del robot, con ayuda de la nomenclatura establecida en el apartado anterior. Asimismo, el script se encargar de guardar en un fichero de datos los nombres de los eslabones que componen el robot. Este fichero har de nexo entre el diseo de Blender y la parte grfica de la interfaz. El script se ejecuta automticamente una vez se inicia Blender, para disponer de forma rpida de los datos necesarios para iniciar la parte grfica de la interfaz.
Es la parte ms importante de la interfaz, ya que se encarga de generar los controladores que permiten manejar cada eslabn del brazo robot de forma independiente, as como de habilitar la edicin de los parmetros que regulan el comportamiento de los eslabones del robot, definiendo unas caractersticas que se describirn ms adelante. Esta parte de la interfaz ha sido diseada mediante Tkinter, una adaptacin de la biblioteca grfica Tcl/Tk [10] para Python que, al venir incluida en sus bibliotecas, permite programar interfaces grficas Python para plataformas Linux, Windows y Mac.
807
Figura 4: Configuracin de la interfaz para el robot SCARA. 3.3.1 Ventana Principal Dado que no todos los brazos robot presentan necesariamente el mismo nmero de eslabones, la ventana principal de la interfaz grfica es diferente para cada tipo de robot que se pretenda simular, mostrando por pantalla un nmero de controladores proporcional al nmero de eslabones mviles del robot a simular, como puede apreciarse en la Fig. 4 (robot SCARA) y la Fig. 5 (robot KUKA). Este mismo script que crea la interfaz grfica es el que se encarga, en primer lugar, de iniciar Blender, para que el script de adquisicin de datos anterior recoja la informacin necesaria de la escena diseada y cargue posteriormente dichos datos en memoria, para as poder construir la interfaz grfica. Una vez cargados los datos necesarios, se genera la ventana de la interfaz grfica, dotada, como se ha dicho, de un nmero de controladores determinado por el nmero de eslabones del robot simulado. Por cada eslabn, se crean dos controladores deslizantes: uno para el control de la posicin y otro para el de la velocidad del eslabn. Aparte de los controladores mencionados, se genera al lado de cada uno de ellos una caja de entrada de texto, donde se puede introducir por teclado la cifra exacta de posicin y velocidad que se desee, siempre que estas se encuentren en el rango de posiciones permitidas para cada articulacin.
Figura 5: Configuracin de la interfaz para el robot KUKA. Asimismo, se crean las funciones que se encargan de leer los controles deslizantes y las cajas de texto, guardando posteriormente los valores modificados en el mismo archivo en el que se cargaron los datos para crear el script, aadiendo los valores modificados de posicin y velocidad, con cada modificacin de los controles. Adems, en la esquina inferior derecha de la interfaz se crea un botn que, al pulsarlo, abre la ventana de edicin de parmetros, que se describir ms adelante. Tras abrir la ventana, el botn se deshabilita, impidiendo as que se abran mltiples instancias de la ventana. Finalmente, debajo de los controladores de posicin y velocidad de los eslabones y a la izquierda del botn de edicin de parmetros, se incluye un botn de activacin que permite dos tipos de control de la posicin, que se describen a continuacin:
808
Figura 7: Ventana de edicin de parmetros. Dado que todos los eslabones requieren de los mismos tipos de parmetros para funcionar correctamente, la apariencia de la ventana de edicin de parmetros ser la misma para cualquier eslabn seleccionado mediante las pestaas de la parte superior de la ventana. A continuacin se describe cada uno de los controles necesarios para posibilitar un movimiento correcto del robot, sobre el ejemplo mostrado en la Fig. 7: En la caja de seleccin superior se elige el tipo de articulacin (prismtica o rotativa) que definir el tipo de movimiento del eslabn. En la interfaz nicamente se tienen en cuenta estos dos tipos de articulacin, ya que los dems tipos pueden obtenerse como combinacin de estos [2]. En la segunda caja de seleccin, se permite seleccionar el eje (X, Y Z) en el sistema coordenado local al eslabn sobre el que ste se desplaza o rota. En los dos primeros cuadros de texto, se introducen las posiciones mnima y mxima del eslabn respectivamente, siendo un valor en metros para las articulaciones prismticas y en grados angulares para las rotativas. Los dos ltimos cuadros de texto permiten introducir las velocidades mnima y mxima del eslabn, que debern ser positivas. Para las articulaciones prismticas, la velocidad vendr dada en m/s para las rotativas en grados/s.
Figura 6: Ejemplo de interfaz usando el posicionamiento instantneo. Desplazamiento en Tiempo Real. Cuando el botn de activacin se encuentra activo, se utiliza el tipo de control que permite el desplazamiento en tiempo real de los eslabones del robot, teniendo en cuenta tanto las posiciones como las velocidades introducidas en la interfaz grfica. Este tipo de control puede verse en la Fig. 4 y la Fig. 5. Posicionamiento Instantneo. Este tipo de control ocurre cuando el botn de activacin est desactivado, posicionando instantneamente los eslabones del robot en el momento en que se modifica la posicin (rotacin o desplazamiento) de cualquiera de sus eslabones. Este modo se usa para comprobar al momento el posicionamiento de los eslabones del robot, descartando la visualizacin de la animacin del cambio de posicin. En la Fig. 6 se muestra el aspecto de una interfaz con este modo de visualizacin.
3.3.2 Ventana de Edicin de Parmetros Esta ventana es la que permite editar los parmetros que definen cada eslabn del robot simulado, introduciendo los valores necesarios en los cuadros de texto y cajas de seleccin que pueden verse en la Fig. 7. En la parte superior se encuentran las pestaas con los nombres de los eslabones del robot, los cuales permiten agrupar las cajas de entrada de texto de una forma ms compacta y cmoda de editar.
El botn situado en la parte inferior de esta ventana permite, al presionarlo, guardar los parmetros introducidos en el archivo de datos. Tras esta operacin, la ventana se cierra, se actualizan los controles correspondientes de la ventana principal y se rehabilita el botn de acceso a los parmetros, para permitir su modificacin siempre que se desee.
809
Este script, que se ejecuta en Blender tras iniciarse el motor de juegos, se encarga en primer lugar de cargar en memoria el archivo con los datos guardados de la interfaz grfica, con las posiciones y velocidades modificadas. Una vez se han cargado los datos, el script actualiza las posiciones de los eslabones del robot y permite ver tanto las posiciones en las que se coloca el robot segn los parmetros de posicin y velocidad introducidos en la interfaz grfica, como la variacin de las posiciones de los eslabones a lo largo del tiempo en la transicin de una posicin a otra, en el caso de que el botn de activacin Usar velocidad de la ventana principal se encuentre activado. Este script aprovecha la capacidad del motor de juegos de Blender de ejecutar un script una vez por cada frame, para que la actualizacin de las posiciones de los eslabones del robot se produzca en cada fotograma y el desplazamiento de los eslabones se perciba visualmente de manera fluida. Dado que la actualizacin de las posiciones del robot a simular se produce una vez por cada frame, el motor de juegos de Blender se configurar para tener una tasa de fotogramas por segundo determinada, tal que sea suficiente para poder ver un desplazamiento fluido de los eslabones del robot. Adems, como las velocidades introducidas a travs de la interfaz grfica descrita en el apartado anterior vienen dadas en m/s y en grados/s, resulta necesario que en el script se produzca una conversin de las unidades de velocidad a la hora de actualizar las posiciones de los eslabones en cada frame. Esta conversin puede expresarse mediante la relacin:
D= v fps
(1)
donde D es el desplazamiento del eslabn en cada fotograma, expresado en m/fotograma para las articulaciones prismticas y en grados/fotograma para las rotativas, v es la velocidad del eslabn introducida a travs de la interfaz grfica y fps es la tasa de fotogramas por segundo de la simulacin.
CONCLUSIONES
Las interfaces que permiten el control y simulacin de brazos robot desarrolladas hasta la fecha, pese a formar parte de proyectos que permiten manipular muchos aspectos y parmetros de los robots simulados, carecen en general de la libertad de poder desarrollar robots propios, limitndose a una base de
810
[8] Ubuntu software. Canonical Group Ltd. Londres, Reino Unido. Sitio web oficial: http://www.ubuntu.com/
811