An Unmanned Ground Vehicles Experimental Setup for Image
Transcripción
An Unmanned Ground Vehicles Experimental Setup for Image
An Unmanned Ground Vehicles Experimental Setup for Image-Based Object Tracking E. M. Cruz, A. G. Barrientos, R. O. Tapia, E. S. E. Quesada and L. R. G. Carrillo Abstract— This paper presents a practical design of a visual servoing algorithm for mobile robots. The algorithm, implemented in mobile robots equipped with a camera, facilitates to detect and follow a specific object autonomously. The proposed scheme infers information directly from the images obtained by the camera, and then digital signal processing techniques are implemented in order to detect the object of interest and to generate the necessary movements of the robot in order to perform the tracking task. The algorithm provides effective performance when using images of objects that have well known characteristics, e.g., color and the size. Experimental results obtained with omnidirectional mobile robot performing indoors show that the proposed methodology allows locating and following a specific object by using the proposed image-based visual servoing control. Keywords— Visual servoing, segmentation, omnidirectional mobile robots. E I. INTRODUCCIÓN L GUIADO de los robots es una de las disciplinas que en las últimas décadas ha captado la atención de grandes grupos de investigación a nivel mundial, principalmente en las áreas de: robótica, inteligencia artificial, automatización y control, vehículos aéreos y terrestres no tripulados, etc. Esto es debido a la gran variedad de aplicaciones que se pueden realizar utilizando la visión artificial, como un sistema de adquisición de información, como por ejemplo: en el mapeo de zonas, monitoreo, vigilancia, seguridad, reconocimiento, entre otras. De especial interés han sido las aplicaciones de detección y seguimiento de objetos a partir de una secuencia de imágenes obtenidas por una cámara. En estas aplicaciones, el uso de una cámara estática es muy común, sin embargo, en algunos casos este tipo de cámara no es adecuada por sus limitaciones de visibilidad, y por lo tanto no es posible detectar el objetivo y mucho menos realizar su seguimiento, y se deben de utilizar algoritmos como el ABCshift, [1] y [4]. La colocación de una cámara estática en un robot móvil para realizar el guiado de los robots es una técnica muy frecuente, ya que una vez obtenida la imagen se realiza el procesamiento digital de imágenes para la detección del objeto que se está buscando con características previamente definidas y una vez localizado, se puede realizar el seguimiento [6]. Este proceso contempla la combinación de visión artificial y el control de robots móviles, el cual se le conoce comúnmente como control E. M. Cruz, Instituto Tecnológico de Atitalaquia, México, [email protected] A. G. Barrientos, Instituto Tecnológico Superior de Misantla, México, [email protected] R. O. Tapia, Universidad Politécnica de Tulancingo, México, [email protected] E. S. E. Quesada, Universidad Politécnica de Pachuca, México, [email protected]. L. R. G. Carrillo, Electrical & Biomedical Engineering, University of Nevada, Reno, USA, [email protected] visual, y está dividido en dos categorías; basado en posición (PBVS, por sus siglas en inglés), donde las características se extraen de la imagen y se utilizan junto con el modelo geométrico del objetivo. Su efectividad se basa principalmente en la calibración adecuada de la cámara y el modelo cinemático del robot para poder estimar la posición del objetivo con respecto a la cámara [2], [9]. En la segunda categoría, basada en imagen (IBVS, por sus siglas en inglés), los valores de control se calculan directamente de las características extraídas en el plano imagen. En ambas categorías, la información visual obtenida por la cámara del robot es utilizada para generar los comandos de movimiento que le permiten detectar y seguir un objeto móvil. Hasta ahora, existen diferentes algoritmos para el guiado de los robots móviles utilizando técnicas de detección y de seguimiento de objetos que han sido tratados en numerosos trabajos de investigación [7-14]. La mayoría de estas técnicas se basan en detectar el movimiento en imágenes estáticas [78]. En estas técnicas se calculan los modelos a partir del fondo de las imágenes capturadas, lo cual permite segmentar los objetos móviles, sin embargo, no son adecuadas para una secuencia de imágenes tomadas por los robots en movimiento. Las estrategias para el control de robots móviles usando imágenes adquiridas por una cámara a bordo son presentadas en [3], [5], [13], [14], donde se puede observar que la estructura del sistema robótico depende específicamente de la aplicación que se esté desarrollando. Particularmente, planteando un escenario similar al de las competencias RoboCup, donde el principal medio por el cual los robots jugadores de futbol perciben su entorno es a través de una cámara de video para obtener imágenes que deben ser procesadas y analizadas. Este sistema robótico tiene la capacidad de identificar diferentes elementos con características específicas como: el color, tamaño y las formas existentes en el terreno de juego, como por ejemplo la pelota, las porterías y las líneas del campo, por lo cual resulta de gran interés disponer de técnicas que permitan detectar y seguir un objeto en movimiento de forma fiable y robusta. En el presente artículo se describe un arreglo experimental para el guiado de robots siguiendo objetos bien definidos en color y tamaño, utilizando la optimización de un algoritmo práctico de control visual basado en imagen (IBVS). Este sistema fue implementado en un robot móvil omnidireccional teniendo como objetivo el dotar al robot de la capacidad de localización y reconocimiento de objetos sólidos, de un color y tamaño bien definido, al cual pueda seguir sin problema alguno. Los resultados experimentales muestran un tiempo de respuesta adecuada para aplicaciones de seguimiento de objetos, como por ejemplo en las competencias de la RoboCup. II. SISTEMA EXPERIMENTAL El sistema experimental consta de un robot móvil ROVIO con una cámara digital integrada y con una comunicación WiFi a la unidad de control, donde se realiza el procesamiento digital de las imágenes. El esquema general propuesto consta de cuatro etapas secuenciales, como se muestra en el diagrama de la Fig. 1. Primero, tomando la imagen adquirida por el robot móvil se aplica segmentación de color. Esta segmentación se realiza a partir de la probabilidad de correspondencia de los pixeles con una serie de patrones previamente entrenados. Después, se obtiene un conjunto de características geométricas de los objetos resultantes de la fase anterior mediante la extracción de blobs, para así descartar aquellos objetos que no son de interés y obtener únicamente el objeto deseado, del cual se adquiere su posición en el plano imagen tomando el valor de su centroide. A continuación, se estima la distancia entre el robot y el objeto con base a su área en pixeles. Por último, ambas características de posición en la imagen y distancia son las entradas a un sistema de decisiones que calcula las consignas de movimiento y velocidad a enviar al robot móvil. Off-Line Entrenamiento Imagen de entrada Segmentación por color Extracción de blobs Estimación de distancia Toma de decisiones Consigna de movimiento Figura 1. Esquema general de la técnica de visión propuesta para la detección y seguimiento de objetos. Si bien la metodología propuesta es una técnica bastante investigada, es importante destacar la implementación de ésta en nuevos procesadores de señales digitales, así como también la utilización de nuevos recursos computacionales como por ejemplo: su implementación en lenguajes gráficos como LabView. A continuación se describe cada uno de los pasos que se utilizaron para llevar a cabo exitosamente el guiado de los robots móviles. A) Segmentación por color El proceso de segmentación se refiere a la tarea de clasificar los pixeles de la imagen agrupándolos bajo un criterio para identificar regiones de interés [15]. En esta etapa se ha utilizado segmentación por color debido a que los objetos a seguir son de un color definido y uniforme. Se plantearon y evaluaron dos técnicas basadas en entrenamiento aplicado fuera de línea. En el entrenamiento se obtiene el modelo de representación del color deseado a partir de imágenes compuestas por el color a buscar. Como una primera técnica, se utilizó la agrupación por regiones elipsoidales rotadas en el espacio. Esta técnica está basada en la probabilidad de pertenencia de los pixeles de la imagen a una serie de patrones de color RGB agrupados en una geometría volumétrica. En este caso, elipsoides rotados en el espacio, ya que se ajustan de forma razonable a la distribución de los colores. Este modelo brinda mejores resultados comparado con el de los umbrales simples y también presenta una mejor respuesta que la segmentación tipo cónica y la de paraboloides [17]. Primeramente, en el entrenamiento es necesario obtener los parámetros que definen dicha geometría para el color del objeto que se desea buscar, es decir: las dimensiones de los semiejes (a, b, c), la coordenada central (Xm, Ym, Zm) y los ángulos de rotación (ϕ, θ, ψ) del elipsoide. La metodología desarrollada para obtener estos parámetros que caracterizan al elipsoide con rotación se describe brevemente a continuación: i) Se toma una serie de muestras sobre pixeles representativos del color del objeto a segmentar. Después, se obtiene el valor RGB de cada uno de estos pixeles, con lo que se obtiene un arreglo o lista con tres componentes (ARGB). ii) Se identifican las líneas de tendencia que están siguiendo las muestras almacenadas para encontrar los puntos extremos de cada componente (RMAX, RMIN, GMAX, GMIN, BMAX, BMIN) utilizando un algoritmo de regresión lineal basado en la teoría de mínimos cuadrados. iii) Se calcula la longitud del eje principal (i) y de los semiejes (ii y iii) de la elipsoide resultante que logra envolver la nube de puntos muestra. iv) La coordenada del punto medio del elipsoide (Rm, Gm, Bm), resulta simplemente de promediar los puntos máximos y mínimos del eje principal del elipsoide calculados en (ii). v) Para lograr la rotación del elipsoide se utiliza la convención de Euler Z–X–Z (ϕ, θ, ψ), donde fijamos el ángulo ϕ con un valor de - π 2 de modo que el eje X sea colineal con el semieje secundario horizontal del elipsoide. Lo cual significa que solamente se necesita encontrar los ángulos θ (girar el elipsoide alrededor del eje X) y ψ (giro alrededor del eje Z) auxiliándonos de los puntos límite de la línea de tendencia hallados en (ii). Una vez realizado el entrenamiento del color que se desea buscar, el procedimiento para clasificar los pixeles dentro de la segmentación por elipsoides se describe en una serie de pasos: Paso 1. Para cada pixel de la imagen de entrada, donde se busca al objeto, se obtienen sus valores R, G y B. Paso 2. A fin de encontrar la posición de los pixeles en las nuevas coordenadas cartesianas [Rn, Gn, Bn], se realiza la traslación tridimensional de los puntos (R, G, B) utilizando las ecuaciones de trasformación, como se describe a continuación: Rn = (R − Rm)sin(ψ )cos(θ ) − (G − Gm)cos(ψ )cos(θ ) − (B − Bm)sin(θ ) (1) (2) Gn = (R − Rm)cos(ψ ) − (G − Gm)sin(ψ ) (3) Bn = (R − Rm)sin(θ )sin(ψ ) − (G − Gm)cos(ψ )sin(θ ) + (B − Bm)cos(θ ) Paso 3. Los valores encontrados se evalúan en la ecuación del elipsoide, como se muestra a continuación: 1 a2 * Rn Gn Bn [ ] 0 0 0 1 b2 0 0 Rn 0 * Gn ≤ 1 Bn 1 2 c (4) Paso 4. Si el resultado es igual o menor a ‘1’, entonces se considera que el pixel está dentro de la región de segmentación, y por lo tanto es un pixel del color de interés. En caso contrario, el pixel se considera no clasificable dentro del color dado. De acuerdo a una serie de pruebas con diferentes imágenes de objetos de diferente color y a varias distancias, como la mostrada en la Fig. 2, se observó que el algoritmo funciona de manera adecuada en la clasificación de pixeles, sin embargo, el tiempo promedio de ejecución para una imagen de 640 x 480 pixeles fue de 290ms, el cual resulta un tiempo elevado para nuestra aplicación. Por ello, se trabajó en una segunda técnica que involucra un espacio de color diferente. de 0 a 255. De este modo, se genera el histograma patrón normalizado en Hue que representa la distribución de color del objeto a seguir. Por otra parte, con los otros dos canales correspondientes de la imagen HSL se entrenan los umbrales inferiores y superiores necesarios para el cálculo de las máscaras de saturación y luminancia. Una vez que se tienen entrenados los valores necesarios para el algoritmo, la segmentación se realiza con los siguientes pasos: Paso 1. Cada imagen de entrada RGB en la que se busca al objeto se convierte al espacio de color HSL. Paso 2. Se obtiene la correspondencia de los pixeles del canal Hue con el histograma normalizado previamente entrenado. Obteniendo así una imagen en escala de grises, donde cada píxel tendrá como intensidad el valor del histograma correspondiente al matiz de dicho pixel en la imagen procesada. Paso 3. Por último, a la imagen en escala de grises se le aplican las máscaras con los umbrales entrenados de los planos de saturación y luminancia. De igual manera que en la técnica anterior, se realizaron una serie de pruebas para el algoritmo de segmentación. En la Fig. 3 se muestra el resultado de esta técnica sobre un objeto de color verde, mostrando eficiencia en la clasificación de pixeles. (a) (b) Figura 2. Ejecución del algoritmo de segmentacion sobre un objeto de color verde. (a) Imagen original, (b) Imagen de salida binaria. Esta segunda técnica es una correspondencia en el histograma Hue con umbralización en saturación y luminancia. Esta técnica está basada en el espacio de color HSL (Hue, Saturation, Brightness - Tonalidad, Saturación, Brillo). La principal ventaja que ofrece dicho espacio es que su componente Hue (Tono) es invariante ante posibles cambios de iluminación [16]. Esta propuesta se centra en la correspondencia de los píxeles de la imagen con un histograma en Hue normalizado previamente entrenado y la imposición de máscaras en saturación y en luminancia, para descartar errores provocados por excesos o defectos de luz. En este algoritmo se considera inicialmente la conversión de las imágenes de entrada RGB al espacio HSL, en la fase de entrenamiento se aísla el canal Hue y se calcula el histograma asumiendo que la imagen contiene solo el color del objeto a buscar, los valores del histograma h(x) se escalan para que se encuentren en el rango de [0, 255] mediante la ecuación (5). hn ( x) = h( x) 255 255 max(h( x)) ∀x ∈ [0, 255] (5) x =0 Donde h(x) son los valores del histograma y x toma los valores (a) (b) (c) (d) (e) Figura 3. Proceso de segmentación por histograma en Hue. (a) Imagen original, (c) imagen en escala de grises de la correspondencia con el histograma patrón en Hue, (d) imágen de la máscara en el plano de Saturación, (e) imagen de la máscara para el plano de Luminancia y (b) imagen resultante. De acuerdo a los resultados obtenidos, la Tabla I muestra un estudio comparativo de los tiempos de procesamiento de las dos técnicas implementadas, por lo que se elige la segmentación basada en histograma de Hue, la cual permitió evaluar más cuadros por segundo y es la que se utilizó en este trabajo de investigación. TABLA I. TIEMPO DE PROCESAMIENTO DE LAS TÉCNICAS DE SEGMENTACIÓN. Prueba 1 2 3 4 5 Regiones elipsoidales 286ms 272ms 311ms 273ms 303ms Histograma en Hue 65ms 62ms 70ms 62ms 68ms B) Extracción de blobs El uso de la información proveniente de la segmentación junto con otras características como tamaño o morfología permite realizar detecciones más robustas. Es por ello que se implementa la etapa de extracción de blobs. Un blob (Binary Large Object) es un conjunto conectado y amorfo de pixeles de una imagen cuya intensidad es superior a un umbral y que están unidos entre sí. A partir de éste es posible obtener una serie de características de gran utilidad en la detección de objetos en una imagen como por ejemplo; el área, cálculo del perímetro, coordenadas del centroide, cálculo del rectángulo que incluye al blob, entre otras. Dentro de nuestra aplicación, la extracción de blobs se realiza sobre la imagen previamente segmentada según el color del objeto. De esta manera se extraen como blobs todos aquellos clúster de píxeles que tienen un valor de color con probabilidad alta de correspondencia con el patrón entrenado, dando como resultado una imagen binaria en la que cada uno de los objetos está completamente caracterizado geométricamente. Sin embargo, los clústeres obtenidos pueden ser originados por objetos deseados o por objetos falsos. Para eliminar los falsos, se aplica un conjunto de restricciones relativas a su forma. El filtrado por forma consiste en comparar inicialmente un vector de características de forma de los blobs obtenidos, (en nuestro caso la orientación y la proporción entre los ejes de la elipse resultante del blob) con el vector patrón también previamente entrenado, para que después se realice con respecto al blob detectado anteriormente como objeto, haciendo al algoritmo robusto ante cambios progresivos en tamaño y forma en el blob seguido, descartando todos aquellos que no estén lo suficientemente cerca y seleccionando aquel que esté más cerca en caso de que quede más de uno. Como resultado de esta etapa se obtiene un único blob (o ninguno en caso de no detectarlo) que corresponde con el objeto buscado. A partir del blob resultante se obtiene su característica de centroide para así obtener la posición del objeto en el plano imagen. C) Estimación de distancia Una vez detectado el objeto de interés, es posible estimar la distancia a la que se encuentra respecto al robot a partir del análisis del número de pixeles (obtenido del único blob resultante de la etapa anterior) que lo conforman. tamaño de un objeto son inversamente proporcionales. También se puede apreciar el campo de visión en dos dimensiones para una imagen, teniendo así la siguiente relación cuadrática: Di = donde: En la Fig. 4 se muestra el campo de visión de una cámara en una dimensión, donde la relación entre la distancia y el (6) Ai A = ς *ε (7) Para encontrar la constante λ se coloca el robot a una distancia donde se pueda ver solamente un objeto completo. Las constantes ς y ε corresponden a los lados del objeto de interés, por lo que en un ambiente sin ruido, el producto de ellos corresponderá a la totalidad observada de pixeles segmentados. Sin mover al robot, se mide la distancia en centímetros a la cual se encuentra éste del objeto en cuestión y se ingresa esta información en la siguiente ecuación: λ = D1 ς 1.ε1 (8) donde la constante λ es usada para calcular la distancia en las demás observaciones. Utilizando la ecuación (6), el error relativo puede ser hallado de la siguiente forma: er ( % ) = Dest − Dreal ×100 Dreal (9) donde Dest es la distancia estimada del objeto y Dreal corresponde a la distancia real del mismo objeto. La Tabla II muestra el error relativo calculado mediante la ecuación (9) de una serie de pruebas realizadas para diferentes objetos con varias distancias, comparando la distancia real de los objetos con la estimada por el robot. De una toma de 25 imágenes se obtuvieron errores relativos de hasta ±5%, la fuente de error proviene principalmente de cambios bruscos en la iluminación, sin embargo el margen de error es aceptable para esta aplicación. TABLA II. RESULTADOS EN ESTIMACIÓN DE DISTANCIA DE OBJETOS. Objeto Cilindro azul Cilindro verde Pelota roja Pelota naranja Figura 4. Percepción de tamaño de un objeto mediante una cámara a diferentes distancias. λ Distancia real (cm) 65 225 120 196 Distancia estimada (cm) 62 219 124 204 Error relativo (%) -4.61 -2.66 3.33 4.08 D) Toma de decisiones En la última etapa, se calcula la consigna de movimiento que debe ejecutar el robot móvil. Se ha optado por una solución práctica y efectiva: un algoritmo de decisiones basado en la elección del movimiento y la velocidad del robot respecto a la posición del objeto en el plano imagen y la distancia relativa entre ellos en cada instante. Ésta se realiza de acuerdo a la posición del centro del objetivo, es decir si el objeto está en un rango del centro de la imagen o desplazado a la derecha o a la izquierda, de esta manera se determina el movimiento del robot ya sea a la derecha o izquierda, con el fin de centrar inicialmente el objeto. Posteriormente, se toma el valor de la distancia estimada para determinar la velocidad con la que el robot debe avanzar hacia adelante hasta acercarse al objeto, a una distancia mínima definida por el usuario. Este conjunto de decisiones se utiliza para realizar la búsqueda del objeto. Cuando éste se ha perdido o no se encuentra el objeto, el robot gira sobre su eje en el sentido del último desplazamiento lateral. El diagrama de flujo sobre la toma de decisiones se muestra en la Fig. 5. como se muestra en la Fig. 6. En ésta se puede observar una secuencia de imágenes que demuestran como el robot Rovio puede ser capaz de detectar un objeto y hacer el seguimiento si éste es desplazado. En este caso, el objeto es un cilíndrico de color naranja con dimensiones: 8cm de radio y 21cm de altura. En ocasiones, el robot puede perder al objetivo si éste se mueve demasiado rápido, de tal manera que el ciclo de obtención de imágenes no sea capaz de captarlo, sin embargo el robot logra encontrarlo nuevamente al girar sobre su eje. Posición y Distancia a) Posición=0 Giro izq. ó der. 250≤Posición≤390 b) Posición>390 Derecha Izquierda Distancia=mínima c) Adelante d) Detener Figura 5. Diagrama para la toma de deciciones para el movimiento del robot. Cabe mencionar que cualquier desplazamiento lateral del robot se hará a la velocidad mínima y las correspondencias de distancia con velocidad utilizadas se han obtenido de manera heurística, a partir de un conjunto de experimentos con la plataforma móvil. e) III. RESULTADOS Como plataforma experimental se utilizó el vehículo Rovio WowWee; un robot móvil de configuración omnidireccional que cuenta con conectividad WiFi, del cual se puede controlar y adquirir datos de sus sensores mediante comandos HTTP [19], además cuenta con una cámara IP montada sobre él [18]. La programación de los algoritmos propuestos se realizó en un equipo con procesador Dual-Core de 2.2 GHz y 6 GB en RAM bajo el sistema operativo Windows utilizando el entorno gráfico de LabVIEW® dado que cuenta con funciones avanzdas de procesamiento de imágenes permitiendo la implementación y acortándose significativamente los tiempos de análisis y de experimentación. Así mismo, se diseñó una interfaz gráfica de usuario, dando como resultado una aplicación intuitiva, gráfica y de fácil utilización con un mínimo de entrenamiento. Tanto los experimentos como las técnicas llevadas a cabo se han particularizado en el seguimiento de un objeto bajo el escenario del interior del laboratorio de experimentación, tal f) g) h) Figura 6. Resultado del esquema propuesto para la detección y seguimiento de un objeto, representado como una secuencia (a~h) de imágenes visto desde una prerspectiva de tercera persona (primer columna) asi como la vista de la cámara del robot (segunda columna) y la imagen de salida de la etapa de segmentación (tercer columna). IV. CONCLUSIONES La implementación de un arreglo experimental para el guiado de robots mediante el seguimiento de objetos, utilizando el control visual en los robots móviles, mediante la optimización de un algoritmo práctico de seguimiento y localización de un objeto de color y tamaño bien definido, ha sido llevado acabo satisfactoriamente en este artículo. Para realizar esta tarea se utilizó el control visual basado en imagen, ya que las características extraídas directamente de la cámara del robot son utilizadas para calcular las consignas de movimiento para ser enviadas al robot. El ciclo de la máquina de estados, que se utilizó para programar la estructura se fijó a 100ms debido a las limitaciones en el tiempo de adquisición de la imagen por parte de la plataforma robótica utilizada, sin embargo, se podría aumentar considerablemente la velocidad, si se utiliza un sistema embebido, lo cual es uno de los trabajos a futuro. AGRADECIMIENTOS Este trabajo ha sido realizado gracias al apoyo de CONACYT-México, mediante los proyectos con número de financiamiento 169062 y 204419. REFERENCIAS [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Bernardino, A. y J. Santos-Victor, "Binocular tracking: integrating perception and control", IEEE Transactions on Robotics and Automation, vol. 15, nº 6, pp. 1080-1094, 1999. S. Hutchinson, G. D. Hager, and P. I. Corke, “A tutorial on visual servo control,” IEEE Transactions on Robotics and Automation, vol. 12, no. 5, pp. 651–670, 1996. G. L. Mariottini, and D. Prattichizzo, “Image-based Visual Servoing with Central Catadioptric Cameras,” International Journal of Robotics Research, Volume 27, 2008, pp. 41-56. Stolkin, R., I. Florescu, M. Baron, C. Harrier y B. Kocherov, "Efficient Visual Servoing with the ABCshift Tracking Algorithm", IEEE International Conference on Robotics and Automation 2008, pp. 32193224. M. Hao, and Z. Sun, “Image Based Visual Servoing using TakagiSugeno Fuzzy Neural Network Controller,” IEEE International Symposium on Intelligent Control, Singapore, 2007, pp. 53-58. García, G.J., J. Pomares y F. Torres, "A New Time-Independent Image Path Tracker to Guide Robots using Visual Servoing", 12th IEEE International Conference on Emerging Technologies and Factory Automation, pp. 975-964, 2007. Suaffer C., Grimson W. E. L., “Learnings Patterns of Activity Using Real- Time Tracking”, IEEE Trans. On Pami, vol. 22, no. 8, 2000. Wren C.R., Azarbayejani A. Darrell T., Pentland A.P, “Pfinder: realtime tracking of the human body”, IEEE Tran., on PAMI, vol. 19, no. 7, 1997. A. J. Koivo and N. Houshangi, “Real-time vision feedback for servoing robotic manipulator with self-tuning controller,” IEEE Transactions on Systems, Man and Cybernetics, vol. 21, no. 1, pp. 134–142, 1991. B. Espiau, F. Chaumette, and P. Rives, “A new approach to visual servoing in robotics,”, IEEE Transactions on Robotics and Automation, vol. 8, no. 3, pp. 313–326, 1992. F. Conticelli, B. Allotta, and P. K. Khosla, “Image-based visual servoing of nonholonomic mobile robots,” Proceedings of the 38th IEEE Conference on Decision and Control, vol. 4, pp. 3496–3501 vol.4, 1999. C. Pham Thuong and M. Nguyen Tuan, “Robust neural control of robotcamera visual tracking,” IEEE International Conference on Control and Automation, pp. 1825–1830, 2009. D. Burschka and G. Hager, “Vision-based control of mobile robots,” in Robotics and Automation, 2001. Proceedings IEEE ICRA, vol. 2, pp. 1707–1713 vol.2, 2001. A. Cherubini, F. Chaumette, and G. Oriolo, “A position-based visual servoing scheme for following paths with nonholonomic mobile [15] [16] [17] [18] [19] robots,” IEEE/RSJ International Conference on in Intelligent Robots and Systems, pp. 1648–1654, 2008. H. Palus.. Color Image Segmentation: Selected Techniques. En R. Lukac y K. N. Plataniotis (Ed.), Color Image Processing. Canada. pp. 103-128, 2007. [2] H. Fleyeh, “Shadow and Highlight Invariant Color Segmentation Algorithm for Traffic Signs”, Cybernetics and Intelligent Systems, June 2006, pp. 1 – 7. R. Álvarez, E. Millán, R. Swain Oropeza, and A Aceves. (2004a). Color image classification through fitting of implicit surfaces. En 9th Ibero-American Conference on Artificial Intelligence (IBERAMIA), Lecture Notes in Computer Science. Spinger- Verlag. WowWee Group Limited , Rovio user’s manual, 2009. WowWee Group Limited, API specification for Rovio, version 1.2. Technical report, 2009. Ernesto Monroy Cruz was born in Tlaxcoapan, Hidalgo, Mexico, in 1987. He received the B.S. and Master degree in Mechatronic Engineering from Universidad Politecnica de Pachuca, in 2012 and 2015, respectively. From January to April 2014, he was a visiting scholar at the Unmanned Systems Laboratory from the Texas A&M University - Corpus Christi, USA. Since 2014, Monroy Cruz is an assistant professor at the Instituto Tecnológico de Atitalaquia, Hidalgo, México. Abel Garcia Barrientos was born in Tenancingo, Tlaxcala, Mexico, in 1979. He received the Licenciatura degree in Electronics from the Autonomous University of Puebla, Mexico, in 2000, and the M.Sc. and Ph.D. degree in Electronics from the National Institute for Astrophysics, optics, and Electronics (INAOE), Tonantzintla, Puebla, in 2003 and 2006, respectively. Since 2007 he joined as a researcher at the Mechatronics Department at the Polytechnic University of Pachuca, Mexico. In 2009 he was a Post-Doctoral Fellow at the Micro- and Nano-Systems Laboratory at the McMaster University, Ontario, Canada and in 2010 Dr. Garcia-Barrientos was a PostDoctoral Fellow at the Advanced Materials and Device Analysis group of Institute for Microelectronics, Technische Universitat Wien, too. Since October 2015, Dr. Garcia Barrintos is a full time professor at the Instituto Tecnológico Superior de Misantla. Ruben Tapia Olvera obtained his BS in Electrical Engineering from Instituto Tecnológico de Pachuca, México in 1999; M.Sc., and Ph. D., in Electrical Engineering from CINVESTAV Guadalajara, México in 2002 and 2006, respectively. He is currently full time professor at the Universidad Politécnica de Tulancingo. His primary area of interest is on the modeling and control of FACTS devices with computational intelligence techniques. Eduardo Steed Espinoza Quesada was born in the "Estado de México", México, in April 1981. He got the bachelor’s degree in Electronic and Telecommunications Engineering in August 2004 and the M.Sc. degree in Automation and Control in September 2006 from Universidad Autónoma del Estado de Hidalgo, and his PhD degree in Automatic Control from the Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional, Departamento de Control (LAFMIA UMI CNRS 3175 - CINVESTAV), México. Since 2017, Dr. Espinoza Quesada holds a post as researcher professor at the Universidad Politécnica de Pachuca, Hidalgo, México. Luis Rodolfo Garcia Carrillo was born in Gomez Palacio, Durango, México in 1980. He received the B.S. degree in Electronic Engineering in 2003, and the M.S. degree in Electrical Engineering in 2007, both from the Institute of Technology of La Laguna, Coahuila, México. He received the Ph.D. degree in Control Systems from the University of Technology of Compiègne, France, in 2011. From 2012 to 2013, he was a Postdoctoral Researcher at the Center for Control, Dynamical systems and Computation (CCDC) at the University of California, Santa Barbara, where he was working with Professor Joao Hespanha. During this time he was also a Researcher in the Institute for Collaborative Biotechnologies (ICB). He moved to Texas A&M University Corpus Christi, in 2013, where he currently holds an Assistant Professor position with the School of Engineering and Computing Sciences. Since 2015, he is an Assistant Professor at the Electrical & Biomedical Engineering, University of Nevada, Reno, USA.