Algoritmo para la generación y ejecución de trayectoria de un objeto electromecánico móvil utilizando visión por computadora
Algorithm for generation and execution path of a moving object using electromechanical computer vision
Adriana Ivett de la Roca Chiapas
Instituto Tecnológico de Zacatepec, México
delarocac@itzacatepec.edu.mx
Leticia Santa Olalla Ocampo
Instituto Tecnológico de Zacatepec, México
Leticia_soo@yahoo.com.mx
Roberto Ortiz Delgadillo
Instituto Tecnológico de Zacatepec, México
r_ortiz_d@hotmail.com
Resumen
En el presente trabajo se desarrolló un algoritmo computacional en Matlab para un objeto móvil con la finalidad de obtener la exploración visual dentro de un escenario, evadiendo obstáculos dentro de un área definida y utilizando técnicas de visión por computadora. El sistema computacional adquirió una imagen en línea, donde al mismo tiempo se realizaron exploraciones de muestras dentro del escenario, lo que permitió identificar y generar la orientación del objeto móvil hacia la meta. El algoritmo se ejecuta n veces hasta que el móvil llegue a la meta.
Palabras clave: visión por computadora, algoritmo, Matlab, segmentación.
Abstract
In this paper a computational algorithm is developed in Matlab for a moving object in order to get the visual exploration within a scenario, avoiding obstacles within a defined area and using computer vision techniques. The computer system acquired an online image, which simultaneously scans were performed within the sample stage, allowing to identify and generate the orientation of the moving object towards the goal. The algorithm is executed n times until the cell reaches the goal.
Key words: computer vision, algorithm, Matlab, segmentation.
Fecha recepción: Enero 2015 Fecha aceptación: Mayo 2015
Introducción
Existe un creciente interés por la automatización de procesos basados en la percepción visual del mundo real, lo cual requiere la adquisición y procesamiento de imágenes. Esto tiene relación con el área de nuestro interés, la visión por computadora. El presente artículo presenta un algoritmo computacional que utiliza las técnicas de reconocimiento de colores y seguimiento de trayectoria para que un objeto móvil llegue a la meta.
Color
Una opción interesante es utilizar las características de color para el seguimiento visual, debido a su simplicidad y robustez ante oclusiones parciales y cambios de escala.
Sin embargo, existen varios problemas a tratar, entre los que destaca la constancia de color1 pues le afectan las sombras, cambios de iluminación y características de la cámara. En este proyecto se utilizan diferentes colores para identificar el área de movimiento, la meta, los obstáculos y el objeto móvil. Se necesita una presentación robusta y eficaz de los objetos de color para que el procesamiento sea preciso y veloz. El modelo de color juega un papel importante en la precisión computacional y la robustez del sistema. Algunos de los modelos de color son RGB. YUV, HSL, empleándose para este proyecto el RGB.
Trayectoria
La capacidad de un robot móvil en la determinación de su ubicación en el espacio es una tarea imprescindible para poder navegar de forma totalmente autónoma.2 El conocimiento de la propia posición, así como de otros objetos o características de interés en el entorno del robot, son los cimientos básicos sobre los que se sustentan las operaciones de navegación de más alto nivel. Por ejemplo, la localización permite que sea posible planificar trayectorias para llegar a un destino concreto mientras se evitan obstáculos, y es fundamental para tareas más complejas como construir mapas de entornos desconocidos. Sin la capacidad de localización, los robots estarían condenados a interactuar con el entorno a través de comportamientos reactivos, y serían incapaces de planificar acciones más allá de su campo de percepción local.3 La función de desviación o función de trayectoria se utiliza para evaluar las propiedades del movimiento en una secuencia. Su entrada es un trayecto y el valor de retorno debe ser inversamente proporcional a la suavidad de la trayectoria (o directamente proporcional al grado de desviación del camino).4
Desarrollo
El elemento que interviene en el escenario de trabajo es una cámara digital, mientras que la comunicación entre la computadora y la cámara se realiza mediante el puerto USB de la computadora; el fondo negro es el área de trabajo en la cual el objeto móvil podrá desplazarse, y la meta es de color verde. El objeto móvil de color azul de frente, los obstáculos de color rojo y la interfaz para el móvil, permiten la comunicación entre la computadora y el objeto móvil.
Interfaz PC-Objeto Móvil
En el diagrama a bloques de la interfaz utilizada para esta investigación, es decir, entre la computadora y el objeto móvil (figura 1) se observa que la interfaz está construida por 4 ventosas, 4 sensores de oscuridad, 2 puentes H, dos motores y el objeto móvil. Se trata con más detalle cada uno de los elementos mencionados, haciendo hincapié que como cada uno de estos se repiten, únicamente se explicará el funcionamiento y diseño de 1 ventosa, 1 sensor, 1 puente H y un motor, siendo la misma explicación para los otros elementos del mismo tipo.
Figura 1. Diagrama a bloques entre la pc y el objeto móvil
Figura 1. LA1,LB1,LA2,LB2 son las señales luminosas enviadas por el monitor de la computadora y recibida por los sensores de oscuridad a través de las señales eléctricas VA1,VB1,VA2,VB2, en donde cada sensor envía una señal eléctrica al Puente H respectivo. Si la entrada L es blanca, la señal eléctrica será 0 y si L es negra, la señal eléctrica será +5 volts.
Figura 2. Interfaz con el monitor, la luz del monitor ilumina la fotorresistencia
Se utilizó una Interfaz Eléctrica de Salida para Sistemas de Visión Artificial Basados en MATLAB en donde se pueden manipular las imágenes que entrega el monitor, que a final de cuentas es luz emitida y visualizada por el usuario. Solo falta aprovechar esta luz para construir señales eléctricas, como se muestra en la figura 2.
En la figura 3 se ve la imagen adquirida con las condiciones controladas de luz, ubicación apropiada de la cámara y el material idóneo.
Figura 3 Adquisición de la Imagen “A”
Preprocesamiento
En la figura 4 se muestran los pasos que se siguieron para mejorar la imagen adquirida.
1. Se aplica la instrucción double a la imagen adquirida “A”, para que sus datos tomen valores de 4 bytes de longitud y así se pueda aplicar cualquier operación, A=double (A)
2. La imagen “A” cuenta con una matriz de tres dimensiones, que contiene información de los colores rojo, verde y azul, que son como está conformada la imagen “A” inicialmente.
(1)
Posteriormente se genera una segunda imagen “B” en niveles de gris, aplicando cada matriz de imagen (rojo, verde, azul) un peso según la percepción del ojo humano del color:
(2)
Donde
es el píxel en la fila columna de la imagen en niveles de gris . La imagen de la figura 4 tiene sus dimensiones de i=1,2,…,177 y j=1,2,…,230.
Figura 4. Imagen A (ver figura 4) en niveles de gris B
3. Se genera una tercer variable llamada mapa, la cual contendrá valores de cero (0) a uno (1) en incrementos de 1/255, el color es entre negro y blanco (tabla 1).
0 |
0 |
0 |
1/255 |
1/255 |
1/255 |
mapa = |
2/255 |
2/255 |
. |
. |
. |
254/255 |
254/255 |
254/255 |
1 |
1 |
1 |
Esta modificación del mapa de colores es para adecuar la interfaz visual a niveles de gris, de otra forma la interfaz entregaría un mapa por defecto, el cual no es en niveles de gris.
Hasta este punto únicamente se ha hecho una imagen B correspondiente a la transformación a niveles de gris de la imagen inicial A, para poder realizar la etapa siguiente que es la segmentación.
Etapa Segmentación
La segmentación es la división o partición de la imagen adquirida en los objetos que la componen y el fondo. En esta investigación se requiere identificar el objeto móvil, los obstáculos, la meta y el fondo.
La segmentación, en este caso, se refiere también al concepto de umbralización. Para identificar los umbrales utilizados, se apoyó del análisis de los histogramas y se analizaron varios tipos de papel de diferentes colores y telas, ayudando a determinar los colores más apropiados para segmentarse.
Las ecuaciones utilizadas para la umbralización fueron las siguientes:
SUBMATRIZ ANALIZADA |
ECUACIÓN |
Obstáculos |
|
Meta |
|
Frente del móvil |
|
Móvil |
Tabla 2. Rangos para la umbralización del escenario
En la matriz obstáculos tenemos todos aquellos elementos de la imagen “A” que son de color rojo claro en el rango mayor a 185; en la matriz meta tenemos todos aquellos elementos de la imagen “A” que son de color verde claro en el rango mayor a 212, en la matriz nariz tenemos todos aquellos elementos de la imagen “A” de color azul claro en el rango mayor a 220, y en la tabla 2 tenemos todos aquellos elementos de la imagen B que son de color blanco claro en el rango mayor a 235.
Etapa Representación y descripción
De esa manera se obtienen los umbrales para cada elemento utilizado dentro del escenario, donde se tienen identificados cada uno de los elementos que intervienen. Para calcular los centros de área se tiene que:
así para: (cx,cy) =centro (móvil) , (wx,wy)=centro (cola) y (Mox,Moy)= centro(meta)
Para este caso, las dimensiones de la imagen (figura 6) van de i=1,2,…,177 y j=1,2,…,230. Los valores obtenidos para la nariz o frente del móvil después de realizar el cálculo son: (bx=82, by=26); para el centro del objeto móvil (cx=66, cy=27); para el centro de la cola del móvil (wx=49, wy=28) y para el centro de la meta (Mox=161, Moy=70).
Cálculo de Trayectoria hacia la Meta
El cálculo de trayectoria hacia la meta es un conjunto de operaciones del centro de área del móvil (frente, centro y cola) y la meta; además del cálculo de los ángulos que intervienen entre el objeto móvil y la meta. En la figura 5 se observa el análisis realizado, en donde:
(cx,cy) Es el centro del móvil dentro del área de trabajo.
(bx,by) Es el centro de la nariz del móvil dentro del área de trabajo.
(wx,wy) Es el centro de la cola del móvil dentro del área de trabajo.
(Mox,Moy) Es el centro de la meta dentro del área de trabajo.
σ Es el ángulo del móvil con respecto a la horizontal.
µ Es el ángulo de orientación de la meta con respecto al móvil.
α Es el ángulo de la dirección hacia la meta con respecto a la horizontal.
σ+ µ+α Es igual a un ángulo de 90°.
Figura 5. Cálculo de la Trayectoria hacia la meta
Para poder realizar el cálculo de σ , α y µ se requieren las ecuaciones σ = a tan 2( wy – by,bx - wx) , α = a tan 2(Moy -cy,Mox-cx) y µ=pi/2- α – σ
Una vez obtenido µ y de no haber obstáculos se tiene la dirección que tomará el móvil hacia la meta, después se siguen los pasos del algoritmo (figura 6).
Resultados y conclusión
Después de haber complementado la implementación del algoritmo computacional desarrollado en Matlab, el resultado cumplió con los objetivos planteados. Se identificaron las exploraciones del objeto móvil y se obtuvo la trayectoria a ejecutar del objeto móvil hacia la meta. Se identifican a través de la técnica del color los objetos obstáculos para que sean evitados por el objeto móvil. El algoritmo es susceptible a trabajar con otro formato de imágenes. A lo largo del desarrollo del proyecto se plantearon mejoras o alternativas a la solución implementada, por ejemplo, las exploraciones concéntricas, tal como lo haría un radar, además de evaluar cuánto tiempo es necesario para la segmentación. Dada la natural suavidad en los movimientos de las imágenes, no es necesario recalcular este valor para cada cuadro ya que no habría cambios significativos de una imagen a la siguiente.
La interfaz del Matlab con el robot diferencial, es decir, el objeto electromecánico móvil, es de construcción sencilla lo que la hace de fácil reproducción. Además, es económica en comparación con las comerciales.
Figura 6. Diagrama de flujo del algoritmo para la generación y ejecución de la trayectoria
Bibliografía
1Finlayson G. D. (2000) Computational color Constancy, in International Conference on Pattern Recognition, vol. 1, Barcelona, Spain, pp. 191-196.
2 Bailey, T. (2002). Mobile Robot Localisation and Mapping in Extensive Outdoor Environments. Tesis Doctoral, Australian Centre for Field Robotics, Department of Aerospace, Mechanical and Mechatronic Engineering, The University of Sydney (citado en pp. 9, 10, 128 y 129).
3 Fernández, C. (2012). Técnicas de Navegación para un Robot Móvil utilizando sistemas de razonamiento espacial. Salamanca, España, p. 9.
4 María Carina Roldán, Marcelo Naiouf, Armando de Giusti. Paralelización de Algoritmos de Seguimientos de trayectorias laboratorio de investigación y desarrollo en Informática. Facultad de informática, UNLP.