Automatización de Banda Transportadora con Retroalimentación Visual Iván Elizondo Aguilera, O. Félix-Beltrán, J. Cid Monjaraz, F. Reyes Cortés, L. C. Gómez Pavón, E. Ríos Silva, S. Ayala Raggi Facultad de Ciencias de la Electrónica, Benemérita Universidad Autónoma de Puebla Puebla, Puebla 72570, México RESUMEN En este artículo se describe el diseño e implementación del sistema de automatización de una banda transportadora para una celda robótica. La celda robótica está compuesta de robots antropomorfos de tres grados de libertad. En particular, se propone un diseño mecánico para el movimiento de la banda transportadora. Así mismo, las etapas de control y potencia son implementadas utilizando la técnica Visual Servoing, que usa como principal elemento de retroalimentación la información visual obtenida de una cámara web convencional, así como una tarjeta Arduino para la adquisición de los datos. Como resultado se obtuvo un sistema mecánico controlado completamente por dicha información visual. Palabras Claves: Visual Servoing, Banda transportadora, Robot antropomorfo de 3 grados de libertad. 1. INTRODUCCIÓN El posicionamiento de sistemas que utilizan información visual para su control y automatización ha constituido un problema de considerable relevancia para diversas áreas de investigación en los últimos 30 años. El mayor trabajo fue hecho en el dominio del análisis de secuencias de imágenes (visión dinámica) [1]. Los primeros sistemas de control con retroalimentación visual fueron reportados a mediados de los 80’s [2]. La retroalimentación visual como parte fundamental en el control de robots es un área activa de investigación [3],[4]. La retroalimentación visual consiste en utilizar técnicas de visión por computadora para reconocimiento visual y usar la información generada para cerrar el lazo de control. La visión por computadora puede ser definida como el proceso de extracción, caracterización e interpretación del mundo tridimensional a partir de una imagen bidimensional. Este proceso, puede ser dividido en seis áreas principales: (a) sensado, (b) pre procesamiento, (c) segmentación, (d) descripción, (f) reconocimiento e (g) interpretación. Sensado es el proceso que produce una imagen visual. Pre procesamiento es un tratamiento con técnicas tales como reducción de ruido y realce de detalles. Segmentación es aquel proceso en el que se divide una imagen en objetos de interés. La descripción es un tratamiento mediante la computadora adecuado para diferenciar un tipo de objeto de otro. Reconocimiento es el proceso que identifica esos objetos. La interpretación asigna un significado para un conjunto de objetos reconocidos. En este trabajo proponemos y realizamos el diseño e instrumentación de un sistema transportador de cadena (referido también como banda transportadora) cuya interacción con robots manipuladores antropomorfos puede ser controlada a partir de la información visual proporcionada por una cámara web convencional. Dicha información visual será utilizada por un algoritmo de visión por computadora para detectar movimiento. El resultado obtenido de dicho algoritmo es procesado usando una tarjeta de adquisición de datos Arduino Mega2560. La figura 1 muestra el montaje parcial de la banda transportadora y los dos robots que formarían la celda robótica. Así, el principal objetivo de este trabajo consiste en controlar la dinámica de la banda utilizando como retroalimentación la información proporcionada por la cámara. Este trabajo está organizado de la siguiente forma: en la sección 2 describimos brevemente el modelo dinámico estándar de un robot manipulador, la descripción de la técnica Visual Servoing y de la tarjeta de adquisición de datos Arduino usada en este trabajo, en la sección 3 proporcionamos las especificaciones técnicas concernientes a nuestro diseño mecánico particular; posteriormente, en la sección 4 describimos el sistema electrónico completo; en la sección 5 discutimos los resultados más relevantes obtenidos; finalmente, en la sección 6 formulamos las conclusiones. Figura 1 Fotografía de la banda transportadora y los robots antropomorfos montados en el Laboratorio de Robótica FCEBUAP. En la figura 2 se muestra el diagrama general del proyecto. 2. DESCRIPCIÓN DEL SISTEMA Robot antropomorfo Un robot antropomorfo de transmisión directa (ROTRADI) define un sistema mecánico de considerable complejidad. La naturaleza no lineal, multivariable y acoplada del sistema de ecuaciones que describen el modelo dinámico de un robot ofrece un amplio espectro en la formulación de problemas de Figura 2 Diagrama general de la banda transportadora automatizada interactuando con una celda robótica. control. Así, el modelo dinámico del robot permite analizar los fenómenos físicos más importantes encontrados en su descripción mecánica, tales como efectos inerciales, fuerzas centrípetas y de Coriolis, par gravitacional y fricción, los cuales son fenómenos intrínsecos o propios de la naturaleza dinámica del robot [5]. Así, el modelo dinámico de un robot manipulador de tres grados de libertad se obtiene aquí por el método de Lagrange. Las ecuaciones de movimiento están descritas por la ecuación 𝑑 𝜕𝐿(𝑞𝑖 ,𝑞𝑖̇ ) 𝜏𝑖 = 𝑑𝑡 [ 𝜕𝑞̇𝑖 ]− 𝜕𝐿(𝑞𝑖 ,𝑞𝑖̇ ) 𝜕𝑞𝑖 , 𝑖 = 1,2, … , 𝑁 (1) donde 𝐿(𝑞𝑖 , 𝑞𝑖̇ ) = 𝐾 + 𝑈 es la función lagrangiana asociada al sistema, 𝑞𝑖̇ denota la derivada temporal de la coordenada generalizada 𝑞𝑖 . En nuestro sistema, la energía cinética 𝐾 es debida a la traslación y rotación de un cuerpo rígido (articulación) y 𝑈 es la energía potencial del sistema, en este caso gravitacional. El sistema se encuentra formado por tres eslabones o articulaciones: base (𝑞1 ), hombro (𝑞2 ) y codo (𝑞3 ), ver figura 3. Utilizando la teoría de estabilidad de Lyapunov, así como la técnica de moldeo de energía, podemos realizar el control de posición del robot. En consecuencia, el formalismo permite posicionar el robot en las coordenadas de nuestra elección con un alto grado de precisión [6]. Visual servoing Visual servoing hace referencia a un sistema en lazo cerrado para el control de posición del extremo final de un robot usando directamente la retroalimentación visual [7], este concepto fue introducido por Hill y Park [8]. Representa una solución atractiva para posicionar y mover robots manipuladores autónomos que evolucionan en los ambientes no estructurados. En un inicio, el uso de sensores de visión y el control de robots se combinan en modelos de lazo abierto, esto es, la posición del objeto a manipular en el espacio de trabajo se obtiene a través del sistema de visión, posteriormente una secuencia de movimientos es planeada y ejecutada, este modelo es conocido como mira y mueve; por tratarse de un sistema en lazo abierto, este padece algunas desventajas como son la sensibilidad a la incertidumbre paramétrica y a las perturbaciones externas. Una atractiva solución para mejorar el desempeño y la exactitud de estos tipos de sistemas representa la retroalimentación visual, la utilización de sistemas servo visuales contribuye a disolver las desventajas de sensibilidad del sistema a perturbaciones externas y variaciones en sus parámetros, además que no se necesita una rigurosa precisión en la manufactura de los mecanismos del robot, debido a que pueden ser compensadas mediante la información visual. En este proyecto se implementa un sistema de control de lazo cerrado en donde la información obtenida por la cámara es usada como señal de retroalimentación visual para poder controlar la posición de los objetos trasladados por la banda, obteniendo así el control de posición de la cadena transportadora. Este sistema nos servirá para que los objetos que se desplazan por la banda transportadora puedan interactuar con la celda robótica para realizar distintas aplicaciones. Para esto se realiza un programa de detección de movimiento implementado en Simulink/Matlab, el cual servirá como sensor de posición y representará la señal de retroalimentación en el sistema de control de lazo cerrado. Tarjeta de adquisición de datos La tarjeta de adquisición de datos Arduino es una plataforma electrónica y de programación en arquitectura abierta con amplia gama de aplicaciones en ciencias exactas e ingeniería. Esta pertenece a la familia de microcontroladores ATMEL y por medio de un entorno de programación, con las herramientas necesarias integradas para diseñar y desarrollar aplicaciones de manera sencilla en los lenguajes C y C++, representa un sistema empotrado (embedded system) de propósito específico para automatizar procesos físicos. Para esta investigación se escogió la tarjeta Arduino Mega 2560, ya que esta cuenta con compatibilidad con Simulink/MATLAB (ver figura 4). Figura 4: Tarjeta Arduino MEGA 2560. Figura 3: Descripción del sistema de tres grados de libertad, robot antropomorfo. El Arduino Mega es una placa microcontroladora basada ATmeg1280. Tiene 54 entradas/salidas digitales (de las cuales 14 proporcionan salida PWM), 16 entradas digitales, 4 UARTS (puertos serie por hardware), un cristal oscilador de 16MHz, conexión USB, entrada de corriente, conector ICSP y botón de reset. El ATmega1280 tiene 128KB de memoria flash para almacenar código (4KB son usados para el arranque del sistema (bootloader). El ATmega1280 tiene 8 KB de memoria SRAM. El ATmega1280 tiene 4KB de EEPROM, a la cual se puede acceder para leer o escribir con la [Reference/EEPROM |librería EEPROM] [9]. 3. Politereftalato de Etileno (PET, Tereftalato de polietileno), ver figura 6. DISEÑO MECANICO En este trabajo utilizamos el material de Rexroth VarioFlow S, sin embargo, debido a su alto costo, no todo el material era disponible para el funcionamiento de la banda transportadora, por lo que tuvimos que llevar a cabo el diseño y construcción de algunas piezas que nos permitieran utilizar la banda transportadora. El primer aspecto a realizar, con respecto al diseño mecánico, correspondió a como se iba a generar el desplazamiento de la cadena para la banda transportadora. Analizando el montaje de las piezas, con ayuda de Solidworks, se diseñó un engrane con las dimensiones necesarias para acoplarse a la banda transportadora, y así, adaptando un motor a este engrane, se pudiera generar movimiento de la cadena. Parte fundamental del movimiento de la banda transportadora, consiste en un correcto diseño del engrane, debemos asegurarnos que el paso de diente coincida con cada eslabón de la cadena transportadora, además la proporción del diente debe ser la adecuada para el tamaño de cada eslabón. Para diseñar el engrane se utilizaron las siguientes ecuaciones: 𝑃𝐷 = 1.25𝑀, 𝐷𝑃 = 𝑍𝑀, 𝐷𝐸 = 𝐷𝑃 + 2𝑀, 𝐷𝐼 = 𝐷𝑃 − 2.5𝑀, 𝑝𝑎𝑠𝑜 𝑀= 𝜋 , (2) (3) (4) (5) (6) Figura 6: Engrane impreso en PLA. Debido a que el PLA no tiene la resistencia necesaria para mover a la cadena transportadora, se creó un molde con este engrane utilizando caucho de silicón p-48. Con el molde creado y usando resina de poliéster PP-70x60, se realizaron réplicas más resistentes del engrane. Esto se comprobó haciendo un estudio de fuerzas en Solidworks 2013, figura 7. Como se observa en la figura 7, el primer elemento en sufrir una deformación está en la zona de sujeción con el motor, esta deformación ocurre hasta un valor de 1,108,961.3 N/m2 (110.89613 N/cm2). donde PD denota el pie de diente, M es el modulo, DP es el diámetro primitivo, Z el número de dientes, DE es el diámetro exterior y DI corresponde al diámetro interior [10]. Teniendo todas estas medidas se procedió a realizar el diseño del engrane en el software Solidworks 2013 (ver figura 5). Figura 7: Análisis de fuerza en Solidworks. Con el engrane listo se acopló a este un motor de DC a 12 V, este motor nos ofrece 80 RPM, tiene un consumo de 300 mA en corrida libre y puede llegar a consumir en pico hasta 5 A. Por lo tanto, se cuenta ya con una caja de engranes adecuada para suministrar la fuerza necesaria para mover el engrane junto con la cadena transportadora. Figura 5: Croquis del diente de engrane diseñado en Solidworks 2013. Una vez obtenido el diseño, este fue impreso en 3D con una impresora Replicator 2 de Makerbot. La pieza fue construida con PLA (ácido poliláctico) que es un polímero constituido por moléculas de ácido láctico, con propiedades semejantes a la del Con todos los elementos anteriores funcionando, el siguiente paso es diseñar y maquilar una estructura capaz de sujetar al motor. Una consideración importante para este diseño era que no se alterara el material existente de Rexroth. Para hacer esto posible se utilizaron los elementos de unión que nos ofrece la banda transportadora, utilizando estas propiedades se diseñó la siguiente pieza en el software Solidworks 2013, ver figura 8, la cual permite acoplarse a la banda transportadora y sujetar el motor a la distancia apropiada para que el engrane embone con la cadena. Terminadas las piezas se procedió a ensamblarlas junto con la banda transportadora, y se verificó su funcionamiento, energizando el motor con una fuente de voltaje y comprobando que se desplazara la cadena transportadora (Figura 9). Figura 8: Ensamble de las tres piezas que conforman la caja del motor. Figura 9: Ensamble de las tres piezas que conforman la caja del motor. 4. La primera parte del programa es la encargada de la detección de movimiento, el primer bloque es la cámara web, la cual está conectada a un bloque que convierte del formato de video RGB a señales de intensidad, las cuales toman los valores de las matrices RGB y las convierten al multiplicarlos por un valor constante generando dichos valores de intensidad. Además, está conectado al bloque de suma de diferencias absolutas o SAD, este bloque representa el valor absoluto de la diferencia entre la imagen actual y la anterior. Cuando estos valores SAD exceden un valor umbral, la imagen pone de relieve el cuadrante en rojo. En la figura 11 (a) se observan dos imágenes tomadas por la cámara, una sin movimiento y la otra con movimiento, cuando el programa detecta perturbaciones que rebasan el valor umbral resalta el cuadrante en donde se produjo el movimiento, la división de los cuadrantes para detectar el movimiento está en función de la resolución que se utilice en la cámara. Posteriormente se realiza una comparación con un valor constante y se convierte el tipo de dato para poderse enviar por comunicación serial a la tarjeta Arduino. En la figura 11 (b) se puede observar el comportamiento de las señales cuando no se detectan perturbaciones, se generó movimiento en la cámara y podemos observar cómo se rebasa el valor umbral produciendo que los cuadros en donde se halla detectado actividad se resalten. Posteriormente se hace una división de la imagen en cuadrantes, después se realiza una comparación con un valor constante y se convierte el tipo de dato para poderse enviar por comunicación serial a la tarjeta Arduino. SISTEMA ELECTRÓNICO Para la implementación del control de posición utilizando Visual Servoing como elemento de retroalimentación se desarrolló un programa en MatLab 2013 (ver figura 10) con ayuda del Toolbox de procesamiento de imágenes, el cual interactúa con la tarjeta Arduino Mega2560, utilizando comunicación serial asíncrona, para enviar señales de control a la banda transportadora y así controlar su desplazamiento. (a) (b) Figura 11: Programa de detección de movimiento. Figura 10: Programa en Simulink, detección de movimiento con envío de datos a Arduino. El programa utiliza una cámara de la marca Prefect Choice, la cual tiene una resolución de 800x600 pixeles, y divide la imagen en 16 cuadros, en donde por cada cuadrante se producen señales. Se seleccionó un cuadrante en específico y cuando se genera movimiento en dicho cuadrante, Simulink envía esa señal a la tarjeta Arduino, en donde se ejecuta un algoritmo de control el cual controla la posición de la banda transportadora (ver figura 13). Etapa de potencia Durante la caracterización de la banda transportadora, probamos los pesos que pueden transportar la banda, y la corriente que consume el motor a distintos pesos. Durante esta prueba se observó que el motor no excedía los 2.5 A, por lo que se instrumentó el puente H (L298N), que es un puente completo para dos motores, de alto voltaje y corriente, el cual nos ofrece la capacidad de otorgar una corriente en DC de hasta 4 A, también posee protección contra sobrecalentamiento (adicionalmente, en el sistema se utilizó un disipador). La configuración usada es la mostrada en la figura 14. Figura 13: Configuración del puente L298N. 5. RESULTADOS Con el engrane ensamblado, funcionando con su caja de soporte, y acoplado a la banda transportadora se realizó una caracterización de los pesos que podía transportar la cadena y el consumo de corriente correspondiente a los pesos que trasladaba, esta caracterización se muestra en la tabla 1. Peso (N) Corriente consumida (A) 9.989 1.40 19.551 1.42 29.694 1.58 39.494 1.62 49.196 1.73 58.800 1.82 68.404 1.91 78.498 2.13 88.494 2.24 98.196 2.33 Tabla 1: Caracterización de pesos transportados y corriente consumida por el motor. Figura 12: Algoritmo de control El Algoritmo de control, empieza a ejecutarse desde Simulink/Matab, en donde se detectan señales de movimiento por cada división de la imagen realizada en la cámara, se selecciona un cuadrante y cuando ocurre alguna perturbación en dicho cuadrante se genera una señal de control, la cual es enviada por comunicación serial asíncrono desde Simulink hacia la tarjeta Arduino, en donde se envían señales de control al robot y a la etapa de potencia, para ejecutar el proceso deseado. En las siguientes imágenes, figura 14, podemos ver el funcionamiento de la banda transportadora, se puede observar que cuando el objeto cruza por el cuadrante seleccionado, el programa de Simulink detecta una señal, la cual es enviada a la tarjeta Arduino para detener la etapa de potencia, y el movimiento de la banda transportadora, dejando un tiempo de operación para que el robot de transmisión directa realice la tarea deseada. 6. CONCLUSIONES En este trabajo se diseñó y desarrolló la automatización de un sistema transportador de cadena, banda transportadora, para su interacción con una celda robótica compuesta por robots antropomorfos de tres grados de libertad. Se presentó el diseño y construcción de un sistema engrane-soporte-motor que provee [4] Wilson W. J., C. C. Williams, and Graham S. B. Relative End-Effector Control Using Cartesian Position Based Visual Servoing. IEEE Transactions on Robotics and Automation. vol. 12 No. 5, pp. 684-696. October 1996. [5] Espiau, B.; Chaumette, F.; Rives, Patrick. A new approach to visual servoing in robotics Volume: 8, Issue: 3 Publication Year: 1992 , Page(s): 313 – 326. [6] Chaumette, F. ; Hutchinson, S. Visual servo control. I. Basic approaches Robotics & Automation Magazine, IEEE Volume: 13 , Issue: 4, Publication Year: 2006 , Page(s): 8290. [5] F. Reyes “Robótica control de Robots Manipuladores” Alfaomega 2011. [6] González, E., Desarrollo y construcción de un robot antropomorfo de tres grados de libertad, Tesis de Maestría en Ciencias de la Electrónica, BUAP, México (2009),pp 2166. [7] Hutchinson S., G. D. Hager and P. I. Corke, A Tutorial on Visual Servo Control. IEEE Trans. on Robotics and Automation, Vol. 12, No. 5, October 1996, pp. 651-670. [8] Hill J. and W. T. Park, Real Time Control of a Robot with a Mobile Camera. In Proc. 9th ISIR, Washington, D.C., Mar. 1979, pp. 233-246. [9] Información acerca de las tarjetas Arduino ver http: arduino.cc [10] R. L. Norton, Diseño de Maquinaria, McGraw Hill, Tercera Edición (2005). Figura 14: Resultados del control de posición utilizando retroalimentación visual. el movimiento a la banda transportadora. Para el control de dicha banda se utilizó la técnica Visual Servoing con el uso de una cámara web, como elemento principal de retroalimentación, y una tarjeta de adquisición de datos Arduino. Se presentó la relación peso transportado/corriente consumida por el motor, así como el funcionamiento del sistema de control de posición, mostrándose que se logra la detección de un punto de referencia dado con la orden de paro. Obteniendo así un sistema mecánico controlado completamente con información visual. Estos avances nos permiten la aplicación de la banda transportadora en interacción con la celda robótica para su uso en diversas tareas sistematizadas cambiando la herramienta del efector final en los robots. 7. REFERENCIAS [1] Marr D., "Vision A computational Investigation into Human Representation and Processing of Visual Information", Freeman, 1982 [2] Corke P. I. Visual Control of Robot Manipulators A review. Visual Servoing, K. Hashimoto, Ed. Singapore: World Scientific, pp. 1-31, 1993. [3] Weiss L. E., A. C. Sanderson, and C. P. Neuman, Dynamic sensor-based control of robots with visual feedback. In IEEE Journal of Robot. Automat, vol. RA-3, pp. 404-417, Oct. 1987.