Detección y Seguimiento Visual mediante LabVIEW para el Posicionamiento de un Brazo Robot de tipo Manipulador

Resumen

En este trabajo se presenta una propuesta para identificación de objetos por medio de un sistema de visión acoplado a un brazo manipulador, pensado para la ejecución de tareas de montaje o ensamblado, aplicaciones típicas en procesos de tipo industrial. Se utiliza una configuración de retroalimentación visual mediante el uso de un control de tipo PID que permite ajustar la posición del manipulador con respecto a un punto de referencia de su localización en un campo de visión, sin la necesidad de considerar el tipo de cámara a utilizar. La propuesta está basada en aspectos básicos de la robótica que, junto con algunos principios básicos de la visión artificial, busca proveer cierta "inteligencia" al brazo manipulador. La implementación experimental de la propuesta ha sido desarrollada en el entorno de programación LabVIEW; librerías como Vision and Motion para el procesamiento de imágenes, y Control Desing and Simulation para la etapa de control, integran toda la programación necesaria para el desarrollo del proyecto, y llevarlo a un plano de trabajo real mediante la plataforma Arduino. Asimismo, se realiza el estudio de los problemas de object tracking y visual servoing, para dar cumplimiento a los objetivos de la investigación.


Palabras clave: Arduino, Control PID, LabVIEW, Object tracking, Visión artificial, Visual servoing

Abstract

This work presents a proposal for object identification by means of a vision system attached to a manipulator arm, for assembly tasks, typical applications involved in industrial-type processes. A visual feedback configuration has been considered through the use of a PID-type control with the aim of adjusting the manipulator position with respect to a reference point of its location into a vision field, without the necessity of taking into account the camera type to be used. The proposal is based on basic robotics aspects, which, together with some of the artificial vision principles, looks for providing certain “intelligence” to the manipulator arm. The proposal’s experimental implementation has been carried out through the programming environment LabVIEW; libraries such as Vision and Motion, for image processing, and Control Design and Simulation, for control stage, integrate the entire programming needed to the project development, and it is taken to a real work plane by means of the platform Arduino. Likewise, the study of topics on object tracking and visual servoing is addressed, in order to fulfill the research objectives.


Keywords: Arduino, PID control, LabVIEW, Object tracking, Artificial vision, Visual servoing

Introducción

Se puede definir a la Inteligencia artificial (IA), como la ciencia cuyo objetivo es diseñar y construir máquinas capaces de imitar el comportamiento inteligente de las personas [1]. Pese a diversos inconvenientes, se ha logrado dotar a los robots de uno de los cinco sentidos del ser humano; la capacidad de ver. Mientras que el resto de los sentidos aun no ha despertado un elevado interés, la visión artificial se aplica ya en procesos industriales, en los que la simple detección de presencia no ha resultado una fuente de información suficiente.

La visión artificial envuelve todos los procesos y elementos que proporcionan ojos a una máquina, y se puede decir que “la visión artificial, o comprensión de imágenes, se centra en la deducción automática de las estructuras y propiedades de un mundo tridimensional, generalmente dinámico, ya sea a partir de una o de varias imágenes bidimensionales de ese mundo”; lo cual incluye no sólo propiedades geométricas (forma, tamaño y localización de objetos) [2], sino también materiales (color, iluminación y textura). Una de las aplicaciones de la visión artificial es el seguimiento de objetos (object tracking), que consiste en estimar la trayectoria de un objeto a partir de una secuencia de vídeo, en función de su movimiento por la escena [3].

Todos los métodos y sistemas de seguimiento requieren de un mecanismo de detección para localizar primero un objeto en la escena y posteriormente seguirlo en el tiempo; esa localización puede darse manualmente, como se plantea en este proyecto, definiendo y seleccionando el contorno del objeto; o automáticamente, mediante algoritmos de detección [4]. La utilización de un sistema sensorial de visión externo para la realización de alguna tarea por parte de un sistema automatizado, se denomina genéricamente Control Visual (visual servoing) [5].

En los primeros estudios [3] realizados sobre todo a procesos industriales con sistemas robotizados, se desacoplaban las acciones de la obtención de imágenes y el control del robot, de tal manera que el controlador, después de recibir la información visual y determinar la posición a la cual moverse, ordenaba al robot a desplazarse a dicha posición, asumiendo que no se producía ningún cambio en la escena; esto es, el entorno se consideraba estático desde que el comando de movimiento era ejecutado. La ventaja de este tipo de control es su simplicidad, siendo ésta una de varias razones por la que tan sólo puede ser aplicable a sistemas en los que la tarea a realizar esté bien determinada y no varíe, lo cual es muy común en entornos de tipo industrial.

En contraste, el control visual permite que el sistema de visión cierre el lazo de control del sistema, de manera que en cada ciclo la información visual del entorno, o de algún objeto de interés situado en la escena, sea retroalimentada y actualizada de forma que el controlador corrija el movimiento a una nueva posición de destino deseada. La calidad del seguimiento y del control depende del tipo y número de características de la imagen que se utilicen.

El presente trabajo presenta una implementación práctica del control visual, la cual propone dotar a un brazo manipulador de la capacidad de disponer de información visual para interactuar con su entorno. Esta técnica no es propia de brazos manipuladores; es incorporada, entro muchas otras aplicaciones, a estrategias de control de vehículos aéreos autónomos [5], por ejemplo, para el proceso de generación y seguimiento de trayectorias.

En el presente documento se incluye una descripción del controlador utilizado y del brazo manipulador de dos grados de libertad; se describe el sensor óptico empleado, su comunicación y las herramientas disponibles en el software LabVIEW para el procesamiento de imágenes, así como para la detección y el seguimiento de objetos; de igual manera se presenta la sintonización del controlador PID y las herramientas para obtener la función de transferencia del sistema y las ganancias del controlador mediante el empleo de Matlab, junto con toda la información visual que se puede obtener del mismo; y se exponen las ventajas y desventajas de esta propuesta con respecto a otras investigaciones y trabajos, con algunas conclusiones y posibles líneas de trabajo [1].

2. Planteamiento del Problema

Se pretende desarrollar un algoritmo de control para el seguimiento de objetos con un brazo robot; la lógica de programación debe brindar la capacidad de identificar cierto tipo de objetos en distintos entornos, mediante una imagen de 8 bits, con la ayuda de una cámara digital que adquiere información para el procesamiento de imágenes que se utilizará para la retroalimentación de dos controladores de tipo PID, los cuales deben regular la posición del brazo robot dando seguimiento al movimiento del objeto identificado en una imagen bidimensional.

3. Estrategia Propuesta

3.1 Requerimientos de hardware

El componente principal es un ordenador, o computadora, encargado de ejecutar el programa desarrollado para el control de todo el proceso del sistema. Se hace uso de una tarjeta controladora y tarjeta de potencia de servomotores para el brazo robótico, estas tarjetas permitirán su interconexión y comunicación así como el control desde LabVIEW.

Se hace uso de una cámara vía USB HP BUSINESS QP896A6, considerada componente clave en el desarrollo de la plataforma; la cual es la encargada de capturar las imágenes que contienen la información necesaria del entorno del manipulador, para que pueda ser procesada y analizada por el ordenador; proporcionando la retroalimentación visual que cierra el lazo de control, para la ejecución de la lógica de programación que permite realizar el seguimiento de objetos.

3.2 Requerimientos de software

Se hace uso del software LabVIEW, de National Instruments (NI), en conjunto con software de visión, el cual incluye el módulo de Desarrollo de Visión y el paquete IMAQ; y un módulo de Control PID; constituyendo los elementos necesarios para el desarrollo de la estrategia propuesta en el presente proyecto.

Generalidades del software LabVIEW de NI

LabVIEW es una herramienta que permite al usuario crear aplicaciones flexibles y escalables de diseño, control, monitoreo y pruebas, utilizando un lenguaje de programación gráfico. Este ambiente de desarrollo gráfico brinda funcionalidad y rendimiento avanzados que los usuarios pueden utilizar para desarrollar aplicaciones sofisticadas. Una de sus principales características es su facilidad de uso, tanto para programadores profesionales como para personas con pocos conocimientos en programación [2]. Presenta numerosas ventajas en comparación con otros lenguajes de programación, de las que se pueden beneficiar programadores principiantes, como la facilidad de aplicación de sus diferentes herramientas que reemplazan líneas de código que en muchas ocasiones resultan difíciles de entender y tediosas de escribir. Además de la rapidez con la que se puede crear aplicaciones relativamente complejas, debido a que se tiene fácil acceso a las funciones y generarlas con simples movimientos del mouse; esto significa que los programas no se escriben, sino que se dibujan, facilitando su comprensión.

3.3 Procesamiento de imágenes

La visión artificial, también conocida como visión por ordenador [6], es un conjunto de técnicas y modelos que permiten la adquisición, procesamiento, y análisis de cualquier tipo de información obtenida a través de imágenes digitales. En un sistema de visión artificial se deben considerar los siguientes elementos.

Iluminación

Una iluminación adecuada permite resaltar las características de interés del objeto, reducir la complejidad de la imagen, y mejorar el tiempo de respuesta del procesamiento digital. Existen variadas y diversas técnicas de iluminación; aquellas que funcionan correctamente en el laboratorio pueden no hacerlo al momento de ser usados en el campo industrial.

Los diodos emisores de luz poseen mejor respuesta que las lámparas fluorescentes y los halógenos, ideales en sistemas estroboscópicos (iluminación mediante destellos); funcionan a baja tensión, disipan poco calor, son pequeños, livianos y tienen un tiempo de vida estimado de 100,000 horas. Existen diodos emisores con diferentes longitudes de onda, por ejemplo, infrarrojos, ultravioletas, rojos, ámbar, y blanco; el infrarrojo es el más utilizado cuando se quiere eliminar la luz natural y fuentes de luz artificiales. El uso de diodos se ha popularizado en diferentes aplicaciones industriales.

Cámara

El sensor es considerado el corazón de la cámara digital, y se clasifican, de acuerdo al tipo de sensor que emplean, en dos tipos principales de tecnologías utilizadas para fabricación de sensores de cámaras digitales: CCD (Charge Coupled Device), y CMOS (Complementary Metal Oxide Semiconductor). Ambos tipos están formados esencialmente por semiconductores de metal-óxido (MOS) y están distribuidos en forma de matriz.

Su función es la de acumular una carga eléctrica en cada una de las celdas de esa matriz; esas celdas son los llamados píxeles. La carga eléctrica almacenada en cada píxel dependerá en todo momento de la cantidad de luz que incida sobre el mismo.

Representación digital de las imágenes

La imagen es una función bidimensional que representa la intensidad de luz F(x,y), donde x e y son las coordenadas espaciales, y F un valor proporcional al brillo en el punto denominado pixel. Una imagen digital se puede definir como una matriz cuyos valores de filas y columnas define la resolución de la imagen. Resolución es el número de filas y columnas que forman los píxeles. Una imagen que tiene m filas y n columnas tiene n píxeles en su eje horizontal y m píxeles en el vertical.

La denominada profundidad de píxel, indica el número de colores que se pueden ver en la imagen. Es el número de bits usado para codificar la intensidad del píxel; un píxel puede tomar valores diferentes normalmente en un rango de 0-255.

El número de planos significa el número de arreglos de píxeles que componen la imagen. Una imagen con escala de grises está compuesta por un solo plano, mientras que una imagen de color verdadero está formada por tres planos que son: Rojo (R), Verde (G), Azul (B).

En la representación de imágenes en escala de grises, cada elemento de la matriz representa el valor de gris. El valor que puede tomar cada elemento va desde 0 (negro) hasta 255 (blanco). Esta restricción se basa en que el ojo humano es lo suficientemente sensible para detectar 256 diferentes niveles de intensidad de un color, es decir, 1 Byte.

Por su parte, en la representación de imágenes a color, se pueden utilizar diferentes modelos de colores, tales como el RGB (rojo, verde, azul), CMY (cían, magenta, amarillo), y HSL (matiz, saturación y luminiscencia). Cuando la imagen es representada mediante mapas de bits usando el modelo RGB, cada elemento de la matriz es un valor de 3 bytes, un byte para cada color, cuya combinación proporciona el color del pixel.

3.4 Propuesta de diseño del Sistema de Control

En este apartado se presenta el desarrollo mediante LabVIEW para realizar object tracking, considerado como la parte medular del trabajo. Se incluye una explicación de cada herramienta empleadas en el diseño del programa, además de las capacidades y el manejo del sistema de detección y seguimiento. En la plataforma de identificación de objetos se han utilizado algunas herramientas del software de visión para la adquisición, análisis y procesamiento de imágenes; de igual forma, para la etapa del control, la utilización del toolkit Control Desing and Simulation junto con la generación de gráficas y reporte de resultados en LabVIEW.

El paquete de adquisición de imágenes Vision de NI, proporciona herramientas que pueden ser aplicadas para desarrollar sistemas de visión robótica [7], las cuales han sido utilizadas para la implementación del control en la aplicación propuesta en este trabajo.

Comunicación con la tarjeta de control

LabVIEW cuenta con una librería para la comunicación con distintas tarjetas de adquisición de datos, algunas de las cuales son de software y hardware libre; tal es el caso de la tarjeta de control Arduino Mega 2560. Esta tarjeta, basada en el microcontrolador ATMEga 328, permite interactuar con la programación grafica de LabVIEW, y a su vez, llevar los algoritmos de control a entornos más reales en las distintas áreas de la ingeniería [8].

HMI Object tracking

La Interfaz Humano-Máquina (HMI, por sus siglas en Inglés de Human-Machine Interface) desarrollada, está dividida en tres pantallas; en éstas se representan el procesamiento de imágenes, el entrenamiento del sistema, el control manual y automático del brazo robot (object tracking), graficas de las distintas variables, posicionamiento mediante ángulos del brazo robot, información del posicionamiento del objeto identificado en pixeles, y una gráfica del seguimiento o tracking.

Adquisición de video

Figura 1. Pantalla de adquisición de imágenes

La Fig. 1 presenta la primera pantalla donde se muestra el video en tiempo real, junto con varias opciones como la posición del objeto a identificar en pixeles, la posición en grados de los actuadores; push buttons virtuales con las funciones de capturar una foto del video, entrenar el sistema en el área de énfasis que se selecciona en la HMI. Procesamiento de imágenes, seguir al objeto identificado en la pantalla, función de reporte para exportar la información del sistema con respecto a sus entradas y salidas; plot tracking, una función de Matlab en LabVIEW para trazar el seguimiento del objeto, y finalmente la selección de la cámara a utilizar.

HMI Procesamiento de imágenes

Figura 2. Selección de área de interés en la pantalla de procesamiento de imágenes

El módulo de Desarrollo de Visión ofrece funciones de procesamiento de imágenes, tales como, correspondencia de patrón geométrico, OCR que permite el reconocimiento óptico de caracteres, es decir, extrae de una imagen los caracteres que componen un texto para almacenarlos en un formato con el cual puedan ser aceptados por programas de edición de texto, lectores de códigos de barras, clasificación de objeto, entre otras; con este módulo, es posible utilizar el Asistente de Visión de NI. Por medio de este asistente, se pueden generar prototipos y realizar pruebas de aplicaciones de procesamiento de imágenes; además posee la característica de permitir al usuario analizar paso a paso el funcionamiento del algoritmo creado. El asistente de visión [6] se utilizó en este trabajo como primera herramienta para el desarrollo del algoritmo de detección de objetos; sin embargo, uno de los inconvenientes del asistente es la elevada demanda de una gran cantidad de recursos del equipo de cómputo u ordenador, haciendo al VI lento, con retraso en la visualización física. Para tratar de dar solución a este problema, se utilizaron funciones de Vision con las cuales se planteó un algoritmo con el que se captura una fotografía del video que se está realizando, mostrando la imagen capturada en la segunda pantalla, como se observa en la Figura 2, con la finalidad de poder seleccionar un área de interés, que será la que el sistema intentará seguirá, como se presenta en la Figura 3, proporcionando información importante para la realización del visual servoing.

Figura 3. Área de interés seleccionada para el entrenamiento del sistema

La Figura 4 presenta la pantalla, que forma parte de la HMI de procesamiento de imágenes, donde se visualiza la adquisición de video en la realización del seguimiento del objeto u object tracking.

HMI Control PID

En la Figura 5 se muestra la presentación que posee la pantalla de la HMI diseñada para realizar el control de tipo PID.

Un controlador de tipo PID (Proporcional-Integral-Derivativo), es un mecanismo de control genérico basado en una realimentación de lazo cerrado, ampliamente usado en la industria para el control de sistemas, plantas o procesos. El PID es un esquema que recibe como entrada un error, calculado como la diferencia entre la salida deseada y la salida obtenida, y su salida es utilizada como entrada al sistema que se requiere controlar [9].

Figura 4. Pantalla de adquisición de video, mostrando el object tracking

Figura 5. Pantalla para la realización del control de tipo PID

El controlador PID está determinado por tres acciones de control: la proporcional, la integral, y la derivativa. Dependiendo de la modalidad del controlador, alguno de estos valores puede tener valor de 0 (cero); por ejemplo, un controlador puramente Proporcional (P) tendrá la parte integral y derivativa igual a 0; y en un controlador PI, solo la parte derivativa será 0. Cada uno de estas acciones influye en mayor medida sobre alguna característica de la salida (tiempo de respuesta, sobreoscilación o sobretiros, error en estado estacionario), pero también influye sobre las otras acciones; por lo que, por mucho que se realicen ajustes, no se encontraría un PID que redujera el tiempo de establecimiento a 0, la sobreoscilación a 0, y el error a 0, sino que se trata más de ajustarlo a un término medio.

Control PID para object tracking

La HMI de la Figura 5 muestra información sobre la aplicación de un control de tipo PID que permite ajustar la posición de dos servomotores con respecto a la posición en pixeles del objeto detectado en la aplicación. El control intenta corregir el error de posición cuando el objeto se mueve de arriba así abajo (eje y), o de izquierda a derecha (eje x) simultáneamente; la corrección de ese error contribuye al seguimiento del objeto dentro del rango de posicionamiento de los servomotores, ejemplificando los resultados de object tracking con un método de control PID.

Las gráficas en esta pantalla muestran la variable del proceso y el punto de ajuste o setpoint, tanto para el eje x como el y; de igual forma, se cuenta con un control en modo manual para posicionar los servos en alguna posición deseada. Las ganancias Proporcional, Integral y Derivativa fueron determinadas por reglas heurísticas, en donde se aplican criterios generales para obtener resultados aproximados o cualitativos; de esta forma, la respuesta del sistema es satisfactoria, reduciendo el tiempo de ajuste y facilitando la ejecución del control. Otro método aplicado fue obteniendo una colección y análisis de datos en Matlab, modelando al sistema mediante función de transferencia; con este modelo se aplica una herramienta de auto-PID en Matlab, y se obtienen las ganancias del controlador; sin embargo, el resultado no fue del todo satisfactorio en su aplicación al robot y el tiempo para el cálculo fue considerablemente más prolongado que con el método heurístico.

4. Discusión y Análisis de Resultados

A partir de las pruebas realizadas con distintos métodos de adquisición y procesamiento de imágenes, para desarrollar una aplicación para detección de imágenes, las técnicas utilizadas han dado como resultado una aplicación que cumple requerimientos básicos que un manipulador puede necesitar para adquirir cierta inteligencia por medio de visión, y poder interactuar con su entorno. Se consideran distintas formas de solucionar el problema con las funciones de Vision y su asistente; ambas herramientas son útiles en una gran variedad de aplicaciones de visión, pero en el caso de este trabajo, las funciones independientes de Vision han dado como resultado un algoritmo con mayor rapidez de ejecución y con la facilidad de adaptarse a nuevas aplicaciones que, junto con las tarjetas de adquisición de datos, dotan al sistema de relativa robustez. Con respecto al control, se tiene un resultado satisfactorio que cumple con las características del visual servoing; el control de tipo PID no solo contribuye a tratar de solucionar el problema del object tracking, sino que también resulta ser una alternativa de control fácil de implementar, en comparación con otros métodos. Una ventaja del sistema es que la parte del procesamiento, adquisición de imágenes y control, están en una misma plataforma de desarrollo, para facilitar la flexibilidad del sistema en diferentes entornos, y para poder modificar el algoritmo agregando nuevas funciones de los toolkits de LabVIEW, ampliando el campo de investigación en la inteligencia artificial y el control automático.

5. Conclusiones

El sistema de visión artificial, mediante el uso de un ordenador o equipo de cómputo, ofrece un aumento en la robustez y fiabilidad de un sistema controlado mediante este esquema, además de una alta eficiencia y la capacidad de realizar tareas detalladas y sofisticadas.

Como conclusión general, este trabajo cubre un conjunto de objetivos de investigación y aplicación relacionados con la adquisición de imágenes, el procesamiento de las mismas y, dentro de una misma plataforma, un control de tipo PID que pretende dar soporte a la aplicación de la visión artificial en proyectos multidisciplinarios donde no solo la investigación juega un papel importante, sino también el desarrollo de modelos tecnológicos que puedan ser aplicados para simular entornos reales, y permitan proponer alternativas de solución a problemas prácticos.

El desarrollo de herramientas virtuales, por ejemplo mediante LabVIEW, para el monitoreo, análisis y control, ha permitido obtener plataformas funcionales con importantes aplicaciones en entornos industriales, ampliando las posibilidades del control automático y mejorando la operatividad de robots industriales. La tecnología aprendida durante el desarrollo de este proyecto y la integración de conocimientos de programación, sistemas de potencia, y fundamentos de automatización, vinculados con la visión artificial, han brindado como resultado una investigación que ha permitido cumplir satisfactoriamente los objetivos planteados como parte del proyecto, permitiendo también que se pueda plantear el desarrollo de algunas aplicaciones en ámbitos industriales y en sistemas de seguridad, teniendo en consideración que los resultados obtenidos son adecuados pero todavía preliminares. Nuevas líneas de trabajo se abren, originando de esta forma una evaluación y mejora de la aplicación de la visión artificial y el control automático.

6. Referencias

[1] F. J. Quijada Camacho, Diseño de un sistema automático de inspección por visión artificial enfocado a la caracterización de arroz como indicador de calidad comercial, México: SEPI, ESIME Unidad Azcapotzalco, 2010.

[2] N. Instruments, «National Instruments. LabVIEW,» [En línea]. Available: http://www.ni.com/labview/esa. [Último acceso: 24 Febrero 2016].

[3] C. Legua Cruz, Seguimiento automático de objetos en sistemas con múltiples cámaras, Madrid: Universidad Autónoma de Madrid, 2013.

[4] B. F. Salas Florez, Análisis de señales mioeléctricas orientadas a la robótica, Bogotá: Universidad de La Salle, 2007.

[5] P. I. Corke, «High-Performance Visual Servoing,» CSIRO Division of Manufacturing Technology, 2010.

[6] N. Instruments, NI Vision for LabVIEW, LabVIEW, Ed., National Instruments, 2010.

[7] A. G. Roland Szabo, Full 3D Robotic Arm Control with Stereo Cameras made in Labview, A. E. D. F. o. E. a. Telecommunications, Ed., Timisoara: Politehnica Univ. of Timisoara, 2013.

[8] B. Harishi y U. Jyothsna, «LabView Interface with Arduino Robotic ARM,» International Journal of Science and Research (IJSR), 2014.

[9] N. Instruments, PID and Fuzzy Logic Toolkit, LabVIEW, Ed., National Instruments, 2009.



[a] Universidad Autónoma del Estado de Hidalgo, Escuela Superior de Tizayuca Tizayuca, Hidalgo, 43800, México

[b] efloresg@uaeh.edu.mx