LA INVESTIGACIÓN EN LA UNIVERSIDAD POLITÉCNICA DE AGUASCALIENTES

LA INVESTIGACIÓN EN LA UNIVERSIDAD POLITÉCNICA DE AGUASCALIENTES

Arturo Córdova Rangel
Carlos Alejandro de Luna Ortega
Sandra Patricia Flores Esquivel
José Luis Gallegos Ramírez
Universidad Politécnica de Aguascalientes

Volver al índice

SISTEMA DE NAVEGACIÓN LOCAL PARA VEHÍCULO AUTÓNOMO

Martín Montes Rivera   
Universidad Politécnica de Aguascalientes
Profesor Investigador de Mecatrónica
Email: martin.montes@upa.edu.mx

La investigación es financiada por la Universidad Politécnica de Aguascalientes.

 

Resumen

Este trabajo muestra una nueva metodología implementada en un robot autónomo para diseñar un sistema de navegación local, utilizando una sola cámara para detectar obstáculos. La técnica propuesta tiene una aplicación sencilla; obtiene rápidamente rutas alternativas para evitar los obstáculos y reconoce que los objetos que el robot puede pasar por encima.

Palabras Clave: Robots móviles, vehículo autónomo, detección de obstáculos, visión monocular.

Abstract

This paper shows a new methodology implemented in an autonomous robot to design a local navigation system using a single camera in order to detect obstacles. The proposed technique has a simple implementation; it quickly obtains alternative routes for obstacles avoidance and recognizes which objects the robot can pass over.

Keywords: Mobile robots, autonomous vehicle, obstacle detecting, monocular vision.


1 INTRODUCCIÓN.

A través de los años los robots se han perfeccionado y hoy en día se le da especial importancia a los robots móviles, que en ocasiones deben desplazarse en espacios de trabajo interactuando con humanos, además, los avances en la tecnología han permitido incrementar drásticamente la inteligencia y capacidades de éstos robots (Budiharto, y otros, 2011) (Nair, y otros, 1998).

Actualmente los robots móviles utilizados como vehículos se han vuelto populares en tareas de vigilancia y transporte, pero en cualquiera que sea su aplicación, la eficiencia de estos sistemas depende de la habilidad que tengan para lidiar con cambios impredecibles en su ambiente o espacio de trabajo, como la aparición de obstáculos (Llamazares, y otros, 2013) (Nair, y otros, 1998).

Los vehículos autónomos dependen de varios sistemas para desplazarse sin problemas cuando aparecen obstáculos en su trayectoria. Uno de estos sistemas es el que controla su navegación, que consiste en la habilidad de cambiar o seguir una ruta libre de colisiones dentro de su espacio de trabajo (Nakhaeinia, y otros, 2013) (Nair, y otros, 1998).

Las formas en que se resuelve el problema de navegación pueden ser variadas, sin embargo, la solución por la que se opta depende del tipo de espacio de trabajo en el que se desenvuelve el vehículo autónomo. Los espacios de trabajo o ambientes pueden ser conocidos o desconocidos (Nakhaeinia, y otros, 2013) (ŞENCAN, y otros, 2011).

Con base en las dos formas de espacio de trabajo que se pueden encontrar existen dos estrategias distintas de navegación: globales y locales o de reacción (basadas en el comportamiento) (Nakhaeinia, y otros, 2013).

Las estrategias globales de navegación son utilizadas cuando el ambiente en el que se mueve el robot es conocido porque el usuario lo proporciona o es obtenido a través de sensores (Nakhaeinia, y otros, 2013).

Cuando el espacio de trabajo del vehículo es desconocido o existe incertidumbre en su comportamiento dinámico, se utilizan los sistemas de navegación local o de reacción, que toman información a través de sensores y modifican la trayectoria del vehículo (Nakhaeinia, y otros, 2013).

Los sistemas de navegación locales son apropiados para la detección de obstáculos, ya que realizan acciones de control con respuestas rápidas, que dependen únicamente de la información obtenida de los sensores del vehículo autónomo (Nakhaeinia, y otros, 2013).

Uno de los sensores más utilizados en la robótica móvil son las cámaras, que permiten capturar a detalle el espacio de trabajo del vehículo autónomo, estableciendo una analogía entre la respuesta humana a situaciones observadas por el ojo y la respuesta de un robot con la información obtenida mediante una cámara (ŞENCAN, y otros, 2011).

Cuando los espacios de trabajo tienen un gran número de objetos dispuestos para afectar la trayectoria del robot, el utilizar lógica o esquemas complicados puede hacer que un sistema de detección de colisiones tome decisiones lentas e incorrectas, además de requerir de varios sensores. Para evitar problemas al seleccionar una trayectoria adecuada cuando el vehículo está en movimiento, se debe tomar en cuenta únicamente la localización del obstáculo para evitarlo y posteriormente replantear una nueva trayectoria hasta el lugar de destino (Nakhaeinia, y otros, 2013) (Lilly, 2007) (Faisal, y otros, 2012).

En este artículo se presenta un sencillo procedimiento al implementar un sistema de navegación local para un robot móvil, utilizando una sola cámara. Este procedimiento está centrado en detectar obstáculos móviles o estáticos que puedan bloquear la ruta del robot y no se encuentran plasmados en el sistema de navegación global, dando una respuesta inmediata de control.

El contenido de este trabajo se encuentra organizado de la siguiente manera: la sección 2 detalla el diseño del sistema de navegación separándolo en el algoritmo para detección de obstáculos en el apartado 2.1 y el algoritmo que permite obtener la trayectoria adecuada para evitar obstáculos en la subsección 2.2. Los resultados de las trayectorias calculadas, las imágenes obtenidas de la implementación del algoritmo y los tiempos de procesamiento se muestran en la sección 3. Finalmente las conclusiones y detalles del trabajo a futuro se muestran en la sección 4.

2 DISEÑO DEL SISTEMA DE NAVEGACIÓN.

El sistema de navegación local se divide en dos algoritmos, uno que detecta los objetos que deben evitarse y otro que se enfoca en trazar trayectorias para evitar colisiones con éstos.

2.1 Algoritmo de Detección de Obstáculos.

Un obstáculo es un objeto animado o inanimado que bloquea la trayectoria del robot móvil o vehículo autónomo. Existen muchas formas y tipos de objetos que pueden bloquear el paso del robot cuando se dirige a un destino previamente establecido, sin embargo, hay objetos que deben ser rodeados, mientras que en otras situaciones, no es necesario interpretarlos como obstáculos y el robot puede continuar su camino pasando a través de ellos (Nair, y otros, 1998) (Budiharto, y otros, 2011), como se muestra en la Fig. 1.

Cuando el ser humano se desplaza y encuentra un obstáculo, decide si debe rodearlo o puede continuar por su camino, únicamente tomando en cuenta la altura del objeto que se interpone entre él y su destino. Un ejemplo de esta situación puede observarse en la Fig. 1, donde se muestran dos tipos de obstáculos; hay obstáculos que deben rodearse como las paredes del edificio de salones y hay otros como la manguera, que no deben rodearse y que pueden llegar a confundir al robot móvil.

El único medio utilizado para detectar los obstáculos del vehículo autónomo, es una cámara web modelo ATW-800 del fabricante ActekTM, configurada en una resolución de 320 pixeles de largo por 240 de alto. La selección de este dispositivo como único sensor, permite realizar mediciones del medio ambiente sin tener que hacer contacto con éste y reducir costos en la implementación del autómata, ya que es posible utilizar las imágenes que son obtenidas de la cámara para distintos procesos paralelos que debe realizar el robot, tales como el sistema de navegación local para la detección de obstáculos, el sistema de navegación global que permita obtener la localización del robot o el reconocimiento de objetos específicos que sean útiles en alguna tarea pre-programada  (Budiharto, y otros, 2011).

Al obtener información de una cámara, debe simplificarse la imagen que se entrega al equipo de cómputo o sistema de procesamiento, ya que si se proporcionan detalles innecesarios, se aumenta el tiempo de respuesta requerido para identificar los obstáculos y generar la respuesta apropiada de control.

En la metodología propuesta, para detectar los objetos de posible colisión se utiliza un filtro Sobel y se reducen los detalles de tal forma que la imagen que el sistema deba procesar sea más pequeña y esté binarizada, dejando pasar únicamente los datos importantes para el algoritmo.

El filtro Sobel opera calculando la magnitud del gradiente de la imagen, representado por la función   mostrada en la ecuación (1), donde es el par ordenado que localiza el pixel de la imagen que está siendo evaluado y las derivadas parciales respecto al eje “x” y al eje “y”, necesarias para el cálculo del gradiente se representan por  y  (Ionescu, 2011) (MathWorks, 2014).

Una alternativa para el cálculo de las derivadas parciales en una imagen es utilizar una máscara de convolución que permita obtener la derivada, si la máscara es de 3 renglones por 3 columnas, las derivadas parciales se obtienen como se muestra en las ecuaciones (2) y (3) (Ionescu, 2011).
                                                                      
donde  para el filtro Sobel y los pesos son los elementos de la matriz máscara de convolución (Ionescu, 2011).

Las matrices máscara más utilizadas de un tamaño  en un filtro Sobel se muestran en la ecuación (4)  (Ionescu, 2011).

La reducción de detalles y aplicación del filtro Sobel en el algoritmo propuesto se realizó cambiando la imagen de colores a escalas grises y luego utilizando el filtro para la detección de bordes. Después de pasar por este filtro, se debe reducir la imagen de tamaño, lo que permite procesar la información requerida en un tiempo menor.

Para implementar el filtro, la reducción de la imagen y el programa completo para la detección de obstáculos se empleó el programa MATLABTM 2013, ya que en éste se encontraban las funciones requeridas para el procesamiento de imágenes.

Al emplear un filtro de tipo Sobel para la detección de bordes, es posible indicar que solo se regresen los bordes que tengan una inclinación vertical y descartar los horizontales, lo que hace posible eliminar los obstáculos que deben ser descartados, en este caso, las líneas que se encuentran en el pavimento, la manguera que está atravesada en suelo o cualquier otro objeto que no tenga la altura adecuada para interponerse en el camino del robot.

Para realizar la reducción del tamaño de la imagen sin perder la información importante, se dilatan las líneas de la imagen obtenida con el filtro Sobel y se hace una reducción haciendo una interpolación de los pixeles alrededor del pixel dibujado, este proceso se repite tres veces para reducir la imagen sin perder información, el tamaño de la imagen se cambia desde su tamaño original de 320x240 pixeles hasta 32x24 pixeles, que es el tamaño final en el que se procesa la información para determinar si hay obstáculos y la trayectoria adecuada para evitarlos.

El proceso de detección de lados se realiza utilizando la función “edge” con el filtro Sobel, la dilatación empleando la función “imdilate” y la reducción de la imagen utilizando la función “imresize”, todas contenidas dentro de la utilería de procesamiento de imágenes de MATLABTM.

El diagrama de flujo en la Fig. 2 Muestra el proceso propuesto para simplificar la imagen adquirida, en el que inicialmente se eliminan las matrices de colores rojo, verde y azul (Red Green Blue, RGB) innecesarias para la detección de obstáculos verticales, posteriormente se realiza el proceso de detección de elementos verticales mediante el filtro Sobel, luego se realizan las reducciones y dilataciones necesarias para cambiar el tamaño de la imagen (sin perder la información que muestra a los obstáculos) y así reducir el tiempo necesario para detectar la presencia de los obstáculos.

Una vez que la imagen es procesada de acuerdo al diagrama de flujo en la Fig. 2, los obstáculos importantes que el robot debe rodear se muestran en color negro, mientras que las zonas libres de colisiones aparecen en color blanco.

2.2 Algoritmo de Selección de Trayectoria

La selección de la trayectoria adecuada para evitar el obstáculo que bloquea el paso del robot móvil, debe contemplar el origen del robot y la localización de los obstáculos para poder dirigirse en un una dirección libre de colisiones.
Si la cámara es posicionada correctamente en el centro del robot móvil, la mitad inferior de las imágenes obtenidas del autómata es el origen del robot, lo que permite trazar trayectorias desde este punto para definir en qué sentido se va a mover el vehículo autónomo, tal y como se muestra en la Fig. 3.

Si el autómata inicia en una trayectoria libre de colisiones, se observará un área alrededor de la que el robot puede desplazarse, ésta puede ser un camino que está libre o terminar en una colisión, como se muestra en la Fig. 4. Sin embargo, al detectar los obstáculos en color negro una vez que se realiza el algoritmo de detección de la sección 2.1, también aparece un camino con pixeles en blanco, que señala la trayectoria adecuada a seguir para evitar el obstáculo.

La solución implementada para evitar los obstáculos, debe hacer que el robot se oriente hacia la dirección de los pixeles en blanco, por tal motivo, la mejor opción es dirigirse al centro de los pixeles en blanco, ya que así, el robot se dirigirá a una zona donde pueden evaluarse nuevamente los riesgos de colisión y buscarse nuevas rutas para continuar con el trayecto del autómata.
En este algoritmo la trayectoria para evitar obstáculos, se define mediante el trazado de una línea recta de la que puede extraerse su ángulo de dirección  con la ecuación (5) a partir de su pendienteen la ecuación (6) y la magnitud de la recta con la ecuación (7). La recta parte del origen del autómata con coordenadas  en la mitad inferior de la imagen obtenida con la cámara (como se muestra el origen en la Fig. 3) y el final de la recta termina en el centro de los pixeles en blanco con coordenadas

Para determinar el centro de los pixeles en blanco se utiliza el algoritmo de detección de centroides de MATLABTM.

Un centroide en una imagen es el pixel con coordenadas  en el que hay la misma masa arriba, abajo, a la izquierda y a la derecha (Pertursa Grau, 2010).

La detección de centroides se realiza haciendo que los pixeles de una imagen sean binarizados y a lo mucho tengan un peso unitario, que será la masa particular de cada pixel, una vez hecho esto el centro de masas se encuentra calculando  con la ecuación (8) y con la ecuación (9)  (Pertursa Grau, 2010).

Donde  es el número de pixeles horizontales y  es el número de pixeles verticales en la imagen, es decir, la imagen tiene una resolución   (Pertursa Grau, 2010).

El cálculo del centroide debe realizarse en la imagen reducida resultante del algoritmo en la sección 2.1, ya que al ser menor el número de pixeles, el procesamiento del centroide toma menos tiempo y además, con las la dirección  y la magnitud  es posible plasmar la trayectoria en la imagen original capturada por el robot.

Para obtener las coordenadas del centroide de la recta que debe graficarse en la imagen de 320x240 pixeles, se multiplican las coordenadas del centroide al que apunta la línea recta por un valor  que representa el número de veces que se redujo la imagen del tamaño original, en este caso 10 veces.

Finalmente el valor numérico de la magnitud  debe ser enviado al control de velocidad en los motores del vehículo autónomo y el parámetro de dirección  debe ser enviado al control para ajustar la dirección que el robot debe seguir.

El diagrama de flujo que describe el algoritmo para el trazado de la trayectoria para evadir obstáculos y el envío de datos al controlador se muestra en la Fig. 5. Inicialmente se pasa la imagen con obstáculos en negro y zonas libres en blanco (obtenida con el diagrama de flujo en Fig. 2), luego se determinan las coordenadas del centroide de masa en color blanco, se traza la recta del origen al centroide, se calcula la magnitud de la recta y finalmente se envía la magnitud y ángulo de dirección al sistema controlador.

3 RESULTADOS

En esta sección se presentan los resultados obtenidos del funcionamiento del sistema de navegación, al extraer una imagen de las se tomaron con la cámara del robot móvil durante su recorrido.

Los resultados obtenidos tras procesar la imagen con el filtro Sobel tomando en cuenta cualquier borde se muestran en la Fig. 6 en el lado “A”, mientras que en el lado “B” se muestra la respuesta de la cámara al quitar los bordes horizontales, habiendo aplicado el algoritmo descrito en sección 2.1.

En la imagen “A” de la Fig. 6 se muestra que no es posible encontrar una ruta libre de obstáculos para el robot, ya que el resultado no le permitiría seguir derecho, puesto que las líneas de la sombra en el suelo y la manguera atravesada serían percibidas como obstáculos.  Al aplicar el filtro Sobel vertical (Fig. 6 lado B), se obtienen únicamente los obstáculos que el robot debe rodear y es posible seguir una ruta libre a medida que el robot vaya avanzando.

La imagen resultante después de dilatar y reducir los resultados obtenidos con el filtro Sobel vertical, buscando que no se pierdan los detalles de los obstáculos (mediante el algoritmo de la sección 2.1), se muestra en la Fig. 7.

Los pixeles en color negro mostrados en la Fig. 7 indican dónde se encuentran los obstáculos, mientras que los que están en color blanco muestran un camino libre de éstos, además, en esta imagen ya se han eliminado los obstáculos despreciables que no requieren ser rodeados, gracias a la implementación del filtro Sobel vertical y la imagen tiene un tamaño de 32x24 pixeles.

El trazado de la trayectoria que va desde el origen del robot en la parte inferior de la cámara, hasta el centroide detectado.

La Fig. 9 muestra el resultado de empalmar la imagen del pasillo de la upa, con la línea de trayectoria utilizando el mismo ángulo de dirección y un aumento de 10 veces a su magnitud, que es equivalente a la reducción que se hizo en la imagen original.

El resultado de seguir el algoritmo completo del sistema de navegación es que el robot logra planear una trayectoria adecuada para evadir los obstáculos que se encuentran en su alrededor, esta trayectoria se dibuja mediante una línea amarilla, además, es posible ignorar los obstáculos que no representan un peligro para el robot como la manguera (Fig. 9).

Los resultados obtenidos cuando el sistema se somete a obstáculos dinámicos, como cuando repentinamente una persona bloquea el camino del robot se muestran en la Fig. 10. En la parte superior derecha de la Fig. 10 se muestra el diagrama donde se hace el procesamiento para posteriormente trazar la trayectoria en la imagen obtenida por el robot. La línea recta amarilla trazada, evade a la persona dirigiendo momentáneamente al autómata a un punto alejado del obstáculo dinámico.

El tiempo necesario para detectar los obstáculos, elegir la trayectoria, calcular su magnitud y dirección se muestra en la tabla 1. Los datos de tiempo se midieron cuando se grafica la trayectoria en la imagen obtenida por el robot y cuando no se gráfica y solo se obtienen la magnitud  y dirección, datos necesarios para el controlador.

4 CONCLUSIONES

En este artículo se presentó un sencillo algoritmo para implementar un sistema de navegación local con una sola cámara, que proporciona rápidamente trayectorias libres de colisiones, cuando se presentan obstáculos estáticos o dinámicos en un vehículo autónomo o robot móvil. Posteriormente se implementó el algoritmo en un vehículo autónomo que recibe las trayectorias del algoritmo, se mostraron los resultados obtenidos de manera gráfica y el cálculo de la pendiente y magnitud de la trayectoria en línea recta, que son señales importantes para transmitir al controlador de velocidad y dirección del vehículo autónomo.

5 TRABAJO A FUTURO

Paralelizar algunos procesos utilizando un procesador de varios núcleos o un procesador gráfico para disminuir el tiempo de procesamiento, ya que los resultados mostrados en este trabajo implementan el algoritmo del sistema de navegación completamente en serie.

Implementar un sistema de navegación global basado en GPS que permita dirigir al vehículo autónomo a distintas áreas y utilizar este sistema para evitar los obstáculos estáticos como paredes, edificios y árboles, utilizando el sistema de navegación local aquí presentado, para evitar los obstáculos dinámicos desconocidos que puedan interferir con el trayecto planeado que tenga el robot.

REFERENCIAS

Budiharto, W., Santoso, A., Purwanto, D. and Jazidie, A. (2011). Multiple Moving Obstacles Avoidance of Service Robot using Stereo Vision. TELKOMNIKA, 9(3), 433~444.

Faisal, M., Hedjar, R., Sulaiman, M. and Al-Mutib, K. (2012). Fuzzy Logic Navigation and Obstacle Avoidance by a Mobile Robot in an Unknown Dynamic Environment. International Journal of Advanced Robotic Systems, 10(37), 1-7.

Lonescu, C. (2011). Image Processing for Optical Metrology. En M. Mora González, J. Muñoz Mazcel, F. J. Casillas, F. G. Peña Lecona, R. Chiu Zarat. And  H. Peréz Ladrón de Guevara, A Ubiquitous Tool for the Practical Engineer (págs. 524-546). Intech.

Lilly, J. (2007). Evolution of a negative-rule fuzzy obstacle avoidance controller for an autonomous vehicle. IEEE Trans Fuzzy Systems(15), 718-728.

Llamazares, A., Vladimir Ivan, Molinos, E., Ocaña, M. and Vijayakumar, S. (2013). Dynamic Obstacle Avoidance Using Bayesian Occupancy Filterand Approximate Inference. Sensors(13), 2929-2944.

MathWorks. (2014). Image Processing Toolbox User Guide. Massachusetts USA: The MathWorks, Inc.

Nair, D. and Aggarwal, J. (1998). Moving Obstacle Detection Froma Navigating Robot.Ieee transactions on robotics and automation, XIV(3), 404-416.

Nakhaeinia, D. and Karasfi, B. (2013). A behavior-based approach for collision avoidance of mobile robots in unknown and dynamic environments. Journal of Intelligent & Fuzzy Systems(24), 299-311.

Pertursa Grau, J. (2010). Técnicas de análisis de imagen. Valencia: PUV.