VISUAL SERVOING, UNA NUEVA TENDENCIA DE CONTROL PRIMERA PARTE: ADQUISICIÓN Y PROCESAMIENTO DE IMÁGENES CON MATLAB IMT LUIS MANUEL GARCÍA MARTÍNEZ. DOCENTE DE LA ACADEMIA DE INGENIERÍA MECATRÓNICA luismanuel.garcia@itsteziutlán.edu.mx RESUMEN El presente trabajo tiene como finalidad presentar los elementos básicos para formalizar un sistema de control de un robot manipulador o sistema mecatrónico, a partir de una técnica derivada de la visión artificial denominada Visual Servoing. Los nuevos estándares de calidad a nivel internacional dentro de los procesos de manufactura, demandan la formulación de nuevos esquemas de control que respondan a necesidades cada vez más exigentes en precisión, rapidez y repetibilidad. Actualmente, la inteligencia artificial se muestra como una respuesta moderna y en pleno desarrollo para generar, en conjunto con los esquemas de control clásicos, procesos y procedimientos aún más precisos. PALABRAS CLAVE Procesamiento de Imágenes, Robótica, Visión artificial, Control, MATLAB. INTRODUCCIÓN Las operaciones automatizadas realizadas por robots manipuladores dentro de una línea de producción, requieren de un nivel cada vez más alto de precisión, exactitud y desempeño. Es por lo anterior, que el diseño de nuevos sistemas de control lleva implícita la aplicación de retos teóricos que solucionen esencialmente los problemas de origen práctico, los cuales, no pueden ser corregidos por medio de algoritmos habituales. El problema general del control en coordenadas articulares de robots manipuladores, es el análisis de trayectoria o de movimiento. Éste consiste en determinar los pares aplicados a los servomotores que integran las articulaciones, de tal forma que las posiciones asociadas a las coordenadas del robot sigan con exactitud la posición deseada. De este modo, el objetivo de control se resume a posicionar el extremo final del robot en un punto deseado y hacer que éste permanezca ahí por un periodo de tiempo indefinido. “En la práctica, una estrategia de control se lleva a la etapa de evaluación experimental o de simulación, a través de reglas gramaticales o sintaxis de un lenguaje de programación, como puede ser: C, C++, Java, o MATLAB, donde el algoritmo de control es la implementación de un modelo matemático representativo de la ley de control dentro de dicho lenguaje.” (Reyes Cortés, 2011.) CONTROL POR VISIÓN Un sistema de visión artificial, que imita la acción del ojo humano, se compone principalmente de una cámara de video, dispositivos electrónicos, y programación para poder interpretar la información visual en un monitor. Estos sistemas permiten medir, sin interacción humana, la posición y orientación del propio robot, así como de cualquier objeto dentro del espacio de trabajo. Al control de robots manipuladores mediante información visual proporcionada por una cámara, en un esquema de control retroalimentado, se le denomina control por visión o Visual Servoing. El cual puede ser empleado por el sistema de control, tanto para la planificación de trayectorias, como para el control de retroalimentación. El control por visión es el resultado de fusionar varias disciplinas, como son: la visión artificial, la teoría de control, la computación y por supuesto, la robótica. Su objetivo es incorporar dentro del lazo de control la información visual obtenida a partir del sistema de visión, para crear una variable de error definida por el conjunto de características propias de las imágenes, tales como: el color, el contorno, la posición y la forma. La información proporcionada por un sistema de visión, que puede incluir una o más cámaras en diferentes configuraciones, retroalimenta al algoritmo de control para que éste guíe la posición del robot y su efector final hacia una entidad, denominada “objetivo”. Así, una de las ventajas de Visual Servoing, es la capacidad que le confiere al robot no solo de observar, sino de interactuar e incluso manipular los objetos de su entorno. La arquitectura más simple se basa en el objetivo estático y la generación de la trayectoria hacia un punto específico de su imagen. Visual Servoing utiliza algunos algoritmos para la extracción de información numérica relacionada con la identificación de parámetros en las imágenes. Dichos parámetros se usan para estimar la posición de la cámara con respecto a los objetos y la posición de los objetos respecto a la cámara, mediante la integración de mapeos lineales entre la velocidad de la cámara y el espacio operacional. Los métodos analíticos de estimación de posición se basan en la medición de un determinado número de puntos, denominados propiamente correspondencias, dentro del elemento o elementos, que aparecen en la escena. Considere por ejemplo, un robot manipulador equipado con una cámara, que tiene que tomar un objeto utilizando un dispositivo de agarre. A través de la visión, el robot puede adquirir información capaz de identificar la relación del objeto con respecto a la pinza. Esta información permite al sistema de control planificar una trayectoria que lleva el manipulador en una configuración de agarre apropiada, calculada sobre la base de la estructura y la forma del objeto. La planificación de trayectorias en un robot manipulador mediante Visual Servoing, se puede realizar usando un solo controlador de movimiento que utilice los registros visuales como un bucle abierto para insertar la posición deseada en el esquema de control del robot, dicha configuración conocida como “ver y mover”, puede estar basada en la posición o en las características de la imagen del objeto. Sin embargo, dicha configuración tiene la desventaja de hacer al sistema muy sensible a incertidumbres, debidas principalmente, a la falta de precisión en el posicionamiento del manipulador, ya que el esquema de control no considera el hecho de que el objeto pueda cambiar de posición mientras que la pinza consigue la posición más adecuada para tomarlo. Por otro lado, existe una configuración alterna denominada “servo visual” en la cual, las mediciones efectuadas por la cámara sirven de retroalimentación directa al sistema de control cartesiano del robot. Estas mediciones se usan para calcular el vector de error más apropiado, definido por la posición del objeto y la posición del efector final, lo que permite realizar correcciones inmediatas en la trayectoria del robot para “seguir” al objetivo, aún si este se encuentra en constante movimiento. Los esquemas de control basados en visión se pueden dividir en dos categorías, es decir, aquellos que realizan control visual en el espacio operativo, “Visual Servoing basado en Posición” y aquellos que realizan control visual en la escena de la imagen también llamado, “Visual Servoing basado en Imagen”. La principal diferencia entre estas dos configuraciones es que la primera utiliza mediciones visuales para reconstruir la posición relativa del objeto respecto al robot o viceversa, mientras que el segundo esquema está basado en la comparación de las características de la imagen del objeto entre la posición actual y la deseada. Aunque también hay esquemas que comparten características comunes de ambas categorías, los cuales se denominan: “Hybrid Visual Servoing”. Resulta evidente que una característica clave del control visual, en comparación con el control de fuerza y el control de movimiento, es el hecho de que las variables controladas no se miden directamente por un sensor. En este esquema de control, las variables se adquieren a partir de las magnitudes obtenidas mediante cálculos complejos, los cuales se basan en algoritmos de procesamiento de imágenes y sistemas computacionales de visión. Otros aspectos a tener en cuenta para el control basado en visión son: el tipo y las características de la cámara. Ya que ésta puede ser monocromática o a color, de baja o alta resolución, de longitud focal fija o variable, así como, la tecnología usada en la cámara que puede ser CCD o CMOS. PROCESAMIENTO DE IMÁGENES La primera fase de Visual Servoing es la adquisición y el procesamiento de imágenes. Para entender mejor estos conceptos, considere el funcionamiento de una cámara monocromática simple que cuente con una pantalla propia. Cuando esta cámara captura las imágenes, inmediatamente las procesa en tiempo real y las muestra como un cuadro en la pantalla; analizando propiamente la captura, se pueden observar los parámetros característicos de la imagen: el contorno y la forma. Dichos parámetros vienen dados por valores de intensidad luminosa variante dentro de la escala de grises, que dependen del objeto, del ambiente y de la resolución de la cámara. Imagen 1. Captura de imagen en escala de grises. Ahora imagine que utiliza varias de estas cámaras para capturar el mismo objetivo desde diferentes puntos de vista. Además de los parámetros mencionados anteriormente, es posible obtener algunas relaciones geométricas entre la perspectiva de cada cámara, como pueden ser: ángulos entre los focos o posiciones relativas entre los puntos de captura. Estas relaciones de posición entre las cámaras, pueden ser utilizadas para definir algunos aspectos de orientación y referencia del objetivo, como por ejemplo: si los parámetros hacen referencia a un contorno dentro de una escena de dos dimensiones o a un objeto dentro del espacio tridimensional. De este modo, se puede afirmar que el conjunto de parámetros y relaciones geométricas concernientes a un objeto, son la base de las técnicas de estimación que ayudan a representar objetivos dentro del espacio de trabajo de un robot manipulador. En este sentido la parte más importante para la obtención de imágenes reside en la calibración de la cámara, la cual es necesaria para el cálculo de los parámetros intrínsecos que como puede verse, relacionan las cantidades medidas en el plano al que hacen referencia. Imagen 2. Captura de un objetivo utilizando tres cámaras a la vez. La información visual, a diferencia de la información proporcionada por otros tipos de sensores, es muy rica y variada por lo que requiere complejas transformaciones computacionales antes de que pueda ser utilizada para el control de un sistema robótico. El objetivo de estas transformaciones es la extracción de la información numérica de la imagen, que proporciona una descripción sintética y robusta de los objetos de interés en la escena, a través de los parámetros característicos de la imagen. Para este fin, se requieren dos operaciones básicas; la primera, denominada segmentación, que es la obtención de una representación adecuada para la identificación de características medibles de la imagen; y la segunda, denominada interpretación, la cual se refiere a la medición de los parámetros de características de la imagen. La información de la fuente está contenida en una memoria de cuadros, que es la matriz de memoria bidimensional, la cual representa la muestra espacial de la imagen en el conjunto de píxeles. La también denominada función de la imagen, se define como una función vectorial cuyos componentes representan los valores de una o más cantidades físicas relacionadas con el píxel, en una forma muestreada y cuantificada. Por ejemplo, en el caso de imágenes a color, la función de imagen definida sobre un píxel de coordenadas ( xi, yi ) tiene tres componentes: Ir ( xi, yi ), Ig ( xi, yi ) e Ib ( xi, yi ), correspondientes a la intensidad de la luz en las longitudes de onda del rojo, verde y azul. Para una imagen monocromática, en blanco y negro, la función de imagen es escalar y coincide con la intensidad de la luz en tonos de gris I ( xi, yi ), también conocida como escala de grises. El número de niveles de gris depende de la resolución de la escala adoptada, sin embargo, en todos los casos dicha escala se encuentra limitada en sus extremos por el blanco y el negro, que corresponden a los límites mínimo y máximo en la escala de grises. Actualmente se adoptan sistemas que constan de una escala de 256 niveles de gris que pueden ser representados por un único byte de memoria. Una representación de la memoria de cuadros, que resulta particularmente útil para el tratamiento posterior de la imagen, es el histograma de niveles de gris, que proporciona la frecuencia de aparición de cada uno de los niveles de gris dentro de la imagen. Cuando los niveles de gris se cuantifican de 0 a 255, se obtiene un determinado número de cuadros que pertenecen al mismo tono de gris. De este modo, si el número de repeticiones de cada uno de los tonos de gris se divide entre el número total de pixeles se obtiene un histograma normalizado. Imagen 3. Histograma de los niveles de gris. ALGORITMO DE PROCESAMIENTO DE IMÁGENES A continuación, se presenta una aplicación en MATLAB que obtiene los parámetros característicos de una imagen en tiempo real. Estos parámetros pueden ser usados, mediante una interfaz apropiada, como una retroalimentación al sistema de control articular de un robot manipulador para posicionarlo en un punto específico. La primera parte del código, que se muestra en la imagen 4, se usa para realizar la adquisición de datos en formato de video. Este conjunto de instrucciones otorgan argumentos sobre el tipo y modo de adquisición de información. En este caso, el nombre de la cámara, el número de dispositivo, el formato, así como la velocidad de adquisición en cuadros por disparo. Cabe mencionar que estos datos dependen exclusivamente de la cámara con la que se realiza la adquisición, por lo que pueden variar de un dispositivo a otro. Imagen 4. Inicialización y adquisición de información visual. La segunda parte del código despliega el procesamiento de la imagen (ver imagen 5) donde se observa que se debe realizar una conversión de formato, partiendo del original RGB a otro definido en escala de grises. Consecutivamente, se dan las instrucciones para mostrar en pantalla dicha imagen junto con su histograma, el cual permite identificar el nivel de cada uno de los tonos de gris que conforman la imagen. Posteriormente, se realiza la conversión de escala de grises a blanco y negro, a partir de un dato crítico, conocido como umbral. El dato de umbral, depende de las condiciones de luz que presenta la zona donde se ejecuta el código, y su función es servir de parámetro para obtener una imagen binaria que pueda ser usada para constituir el contorno del objetivo deseado. Imagen 5. Estructuras de código utilizadas para procesar la imagen. En la imagen 6, se expresan las instrucciones necesarias para obtener el centroide del contorno, que por definición es el punto hipotético donde se concentra toda la masa de una figura geométrica. En este punto, es a donde debe dirigirse la herramienta del robot para poder manipular el objetivo físico capturado en la imagen. Imagen 6. Obtención del centroide de la figura. En la última parte del algoritmo, mostrada en la imagen 7, se indica la asignación a una variable de la imagen binaria invertida y su posterior despliegue en pantalla, así como la representación del centroide dentro del contorno. Imagen 7. Código para obtener y mostrar el centroide del contorno. RESULTADOS Los resultados de la adquisición y procesamiento de imágenes en tiempo real, realizados a partir del algoritmo anterior, se pueden resumir como: 1. Obtención de la imagen en formato RGB 2. Conversión de RGB a escala de grises. 3. Obtención del histograma que muestra las frecuencias en los tonos de gris. 4. Conversión de escala de grises a imagen binaria, a partir del dato de umbral. 5. Obtención de la imagen invertida. 6. Despliegue de la imagen invertida con su centroide. A continuación se expone un ejemplo de aplicación: Se usó como muestra una bebida embotellada que se colocó en una superficie de color uniforme. El algoritmo realiza el tratamiento descrito en la sección anterior y muestra los siguientes resultados: Imagen 8. Procesamiento de imágenes con MATLAB. Imagen 9. Obtención del centroide dentro del contorno que representa el líquido dentro de la botella. Imagen 10. Tiempo de ejecución y coordenadas del centroide. CONCLUSIONES 1. La inteligencia artificial se muestra como una respuesta moderna y en pleno desarrollo para generar procesos y procedimientos aún más precisos en conjunto con los esquemas de control clásicos. 2. Visual Servoing utiliza algunos algoritmos para la extracción de información numérica relacionada con la identificación de parámetros en las imágenes. Dichos parámetros se usan para estimar la posición de la cámara con respecto a los objetos y la posición de los objetos respecto a la cámara, mediante la integración de mapeos lineales entre la velocidad de la cámara y el espacio operacional. 3. Se puede afirmar que el conjunto de parámetros y relaciones geométricas concernientes a un objeto, son la base de las técnicas de estimación que ayudan a representar objetivos dentro del espacio de trabajo de un robot manipulador. FUENTES 1. Gulrez Tauseef. Advances in Robotics and Virtual Reality. Ed. Springer, 2012. 2. Reyes Cortés, Fernando. Robótica Control de Robots Manipuladores. Ed. Alfaomega, 2011. 3. S. Nise, Norman. Control Systems Engineering. Ed. Wiley, 2011. 4. Kelly R. Control of Robot Manipulators in Joint Space. Ed. Springer, 2010. 5. Siciliano, Bruno. Robotics Modelling, Planning and Control. Ed. Springer, 2010.