INTRODUCCION
“El progreso realizado en la navegación visual de un robot móvil a lo Largo de las últimas dos décadas se puede dividir, según el tipo de entorno Por el cual se lleve a cabo la navegación, en dos grupos fundamentalmente:Navegación visual de robot móvil en el interior de estancias o la navegaciónVisual de robot móviles en exteriores (Guilherme N. DeSouza, 2002).Desde los primeros trabajos sobre la navegación autónoma de un vehículo robótico como el presentado por (Giralt. et al., 1979) y posteriormente continuado por (Moravec, 1980), (Moravec, 1983) y (Nilsson, 1984) se deja patente que un sistema de visión utilizado para la navegación visual de un robot móvil debe conocer implícita O explícitamente el entorno por el cual va a desplazarse. Algunos de los Primeros sistemas de visión utilizados para la navegación de un robot móvil Parten de un conocimiento exhaustivo del entorno (información geométrica, Topológica, etc.) por donde se va a mover el robot para poder llevar a cabo la navegación y la localización de su posición. En concreto, en estos primeros Trabajos se utilizan modelos CAD de complejidad variable para disponer de una representación del entorno. En algunos trabajos (Chatila y Laumond, 1985), los modelos CAD fueron reemplazados por modelos más simples, tales como mapas de ocupación, mapas topológicos o incluso secuencias de imágenes.Podríamos clasificar principalmente los trabajos realizados en navegación de robots móviles en tres grandes grupos:
Navegación basadas en mapas del entorno: Sistemas que dependen de la información geométrica y topológica del entorno que previamente le Suministra el usuario en una base de conocimiento.
Navegación basada en la construcción de mapas del entorno: Sistemas que utilizan sensores para construir sus propios modelos geométricos y topológicos del entorno y posteriormente utilizan esta información para llevar a cabo la navegación.
Navegación sin mapas del entorno: Sistemas que no utilizan representación Explicita sobre el espacio en el que se va a llevar a cabo la navegación, pero sin embargo necesitan recursos para el reconocimiento de objetos encontrados en el entorno o el seguimiento de esos objetos generando movimientos basados en las observaciones visuales del entorno.
”Tomado de: (
http://isa.umh.es/personal/nicolas.garcia/tesis/documentos/capitulo5.pdf)
Veamos a continuación el estado del arte de la navegación visual de robots Sin mapas del entorno, ya que el desarrollo del proyecto, se podría considerar dentro de este grupo de sistemas de navegación.
Navegación sin mapas del entorno“En esta categoría se incluyen todos los sistemas en los cuales la navegación Se realiza sin ninguna descripción a priori del entorno por el cual va a desplazarse el robot. Es de destacar que en los sistemas de navegación basados en la construcción automática de un mapa del entorno no existe tampoco ningún conocimiento a priori del entorno, sin embargo en dichos sistemas antes de realizar cualquier movimiento de forma autónoma, el sistema debe de crear un mapa del entorno y almacenarlo en su base de datos.Los movimientos a realizar por el robot, en los sistemas de navegación visual Sin mapas del entorno, se determinan mediante la observación y extracción de información relevante sobre los elementos que componen el entorno.Estos elementos pueden ser paredes u objetos tales como posters, cuadros, puertas, etc. Aunque no es necesario conocer la posición relativa o absoluta de estos elementos del entorno, la navegación puede ser solo realizada con respecto a ellos. Multitud de aproximaciones se han desarrollado para implementar dicha navegación, pero las más relevantes son las basadas: en el flujo óptico, en apariencia, en el comportamiento (Nakamura y Asada, 1995),(Nakamura y Asada, 1996), (E. Huber, 1995) y en técnicas de control visual. Entre los trabajos en navegación visual basados en la obtención del flujo óptico de la imagen adquirida cabe destacar el realizado por (Santos-Victoret al., 1993) en el que se presenta un sistema de navegación visual basado en flujo óptico que imita el sistema de visión de las abejas. En un trabajo mas reciente, (Bernardino y Santos-Victor, 1998) incluyeron dos comportamientos visuales, convergencia y seguimiento, para diseñar una estrategia de control para fijar y seguir objetos utilizando un cabezal estéreo que dispone de pan, tilt y control de la convergencia de las cámaras. Basándose también en el comportamiento de las abejas, (Rizzi et al., 1998) presentan un método de navegación de robots móviles que utiliza un modelo a fin de las proyecciones del objeto en la cámara en función del movimiento de la misma de forma que puedan estimarse parámetros de movimiento de la cámara y por tanto también se puedan calcular las acciones de control necesarias para guiar la navegación del robot. Utilizando también técnicas basadas en la estimación del flujo óptico, (Dev et al., 1997) presentan un sistema de navegación para seguir una pared a una distancia determinada calculando la profundidad y orientación a partir del flujo óptico de las imágenes adquiridas. La navegación visual basada en la diferencia de apariencia entre las distintas imágenes del entorno adquiridas en cada instante de muestreo se basa en el almacenamiento de imágenes o plantillas del entorno y en asociar a esas imágenes comandos o acciones de control que dirijan al robot a su destino final. (Gaussier et al., 1997) y (Joulian et al., 1997) desarrollaron una aproximación basada en apariencia utilizando redes neuronales para relacionarla percepción con las acciones de control. (Matsumoto et al., 1996) utiliza una secuencia de imágenes almacenadas previamente (VSRR View-Sequenced Route Representation) y mediante un procedimiento de correspondencia entre imágenes determina las acciones necesarias para controlarla navegación del robot (Figura 5.1). En el trabajo realizado por (Andersenet al., 1997) se presento otro sistema basado en el concepto de VSRR. Endicho sistema se utiliza una correlación para determinar de la secuencia desimagines cual es la que más se aproxima a la imagen actual y posteriormente se determinan los comandos de control necesarios para dirigir la navegación del robot. (Ohno et al., 1996) propone un sistema similar, utilizando secuencias de imágenes, pero más rápido ya que utiliza solo como referencias las líneas verticales extraídas de las imágenes.Algunos métodos han sido propuestos para la navegación visual basada en técnicas de control visual. Cabe destacar en concreto algunos trabajos realizados sobre el particular como el presentado por (Dickmanns, 1994) dondeSe describe un sistema de control visual para un vehículo que sigue una línea en la carretera, o los trabajos de Pissard-Gibollet y Rives (Pissard-Gibollet y Rives, 1995; Rives y Pissard-Gibollet, 1992) donde se describe la navegación de un robot móvil en base a una secuencia de tareas guiadas por visión, como seguir un muro y girar alrededor de un segmento vertical pero sin considerarla transición entre las tareas. Por ejemplo, en (Pissard-Gibollet y Rives, 1995), la tarea de seguir un muro y posicionarse en frente de un objeto no están fusionadas; cuando la primera acción ya fue ejecutada, una sub tarea Llamada posicionamiento hace la identificación del objeto requerido por la Segunda tarea. En el sistema de navegación propuesto por (Kosecka, 1996), el espacio es representado como un modelo topológico en términos de región de grafos. Diferentes marcas en el espacio y sus asociaciones geométricas de esas primitivas en la imagen (requeridas para la tarea de control visual) son seleccionadas; el espacio es dividido en un conjunto de regiones de visibilidad, y la región del grafo es construida por la vecindad entre las regiones. El plan de navegación es definido como un recorrido de ese grafo y corresponde a la secuencia de las posiciones relativas de las tareas a efectuar, donde la posición relativa es completada por la estrategia del lazo cerrado del sensor respecto al espacio. La trayectoria es realizada durante el recorrido de los grafos que tienen que ser visitados desde la posición inicial hasta la meta. En (Swain-Oropeza, 1999; Swain-Oropeza y Devy, 1997) se aborda el problema de la navegación autónoma basada en técnicas de control visual como una secuencia de movimientos básicos controlados por visión (como Ir a posicionarse frente a un objeto, Seguir un muro, Girar alrededor de una esquina, etc.). De esta manera es posible indicarle al robot un camino a seguir como una secuencia de comandos sencillos controlados por visión de forma que se consiga alcanzar la posición final deseada. La solución propuesta por el autor de estos trabajos es aplicar la clásica teoría de “Divide y vencerás” pero a diferencia de otras aproximaciones presentadas en los ´últimos años, se propone una función que genera una transición suave entre los distintos objetivos locales.”
Tomado de: (
http://isa.umh.es/personal/nicolas.garcia/tesis/documentos/capitulo5.pdf)
El trabajo de (Carlos P_erez, Luis Pay_a, Jos_e M. Azor__n, Jos_e M. Sabater) “TECNICAS PARA LA NAVEGACION VISUAL CONTINUA DE UN ROBOT MOVIL”
(ver figura 1) divide la navegación visual autónoma en dos fases: una primera en la que se llevara acabo el aprendizaje del camino y una segunda en la que se desarrollara el control del robot para que realice el seguimiento de la ruta previamente aprendida. Se denominan a cada una de estas fases como:
1. Fase de aprendizaje (on-line): el robot, comandado manualmente, aprende la ruta mediante el almacenamiento selectivo de las características de interés cada cierto periodo de tiempo.
2. Fase autónoma: el robot repite el camino aprendido de forma continua en base a la Información visual adquirida en la fase de aprendizaje.
En el articulo publicado por (C. A. Peña de la Universidad de los Andes, Bogotá, Colombia) “Sistema visual de apoyo a la asistencia en la conducción de una silla de ruedas”
tomado de :http://columbus.uniandes.edu.co:5050/dspace/handle/1992/317
muestra el desarrollo de un algoritmo de detección de puertas a partir de imágenes tomadas con una webcam, con el fin de obtener información importante que permita guiar una silla de ruedas para la asistencia en la conducción a niños minusválidos.
Entre las asistencias que proporciona la silla están: “Seguimiento de muros, evitar colisiones contra obstáculos como paredes y columnas, evadir los grandes huecos en el piso, diferenciar las rampas de las escaleras y asistir al paso a través de puertas.”
Tomado de: http://columbus.uniandes.edu.co:5050/dspace/handle/1992/317
El proyecto tiene como objetivo primordial proveer información útil con la cámara al sistema pero complementando los datos obtenidos con otros sensores con el fin de orientar la silla hacia la puerta, los sensores que se utilizan son ultrasonido e infrarrojos los cuales aportan información de las distancias a objetos de su entorno según sea su ubicación.
Para la ubicación de puertas se utilizo primero la técnica de cuasi rangos los cuales “son estadísticas en las cuales se analizan las muestras de datos en ventanas, para determinar la existencia de cambios de intensidad en una señal, razón por la cual se pueden detectar los bordes de una imagen.”
Tomado de:
http://columbus.uniandes.edu.co:5050/dspace/handle/1992/317 Este algoritmo es rápido pero lo afectan bastante los cambios de luminosidad generados por otros objetos razón por la cual optaron por el método de Canny como el mejor para la detección de los bordes debido a su eficiencia en la detección bordes en comparación con otros métodos, este método se utilizo conjuntamente con la trasformada de hough para la detección de líneas. Debido a que el computador implementado en la silla tiene una baja cantidad de procesamiento optaron por otro algoritmo más rápido, el algoritmo que se utilizo fue mediante señales compuestas de trozos de cintas de colores para establecer la posición de las puertas de una forma rápida (Ver figura 2).
Tomado de: http://columbus.uniandes.edu.co:5050/dspace/handle/1992/317
Para realizar la ecuación que describe esta distancia de las señales a la silla de ruedas así como su orientación “fue necesario tomar varias mediciones con el montaje que se muestra en la figura 3 donde se ubicaba la señal en diferentes posiciones relativas a la cámara (por medio de una cuadricula dibujada) y se tomaban los valores obtenidos de los parámetros, con los cuales se hacía una regresión para obtener la ecuación:
Tomado de: http://columbus.uniandes.edu.co:5050/dspace/handle/1992/317
Figura 3
Tomado de: http://columbus.uniandes.edu.co:5050/dspace/handle/1992/317
Efectuando cálculos geométricos obtienen los ángulos y las distancias que debe seguir la silla de ruedas para cruzar la puerta, y se generan las órdenes que se deben dar a los motores para que se realice la trayectoria a seguir.
En el trabajo desarrollado por [1], “dos redes neuronales son utilizadas para la detección de puertas
En imágenes en color. Una red es utilizada para detectarlos marcos laterales, mientras que la otra se utiliza para detectar el marco superior. Las redes reciben como entrada ventanas de 18x18 píxeles centradas encada píxel de la imagen con las componentes de brillo y saturación. En total cada red cuenta con unas capas de entrada de 648 elementos, una intermedia y una De salida que indica el grado en que el píxel analizado pertenece al marco de una puerta. Tras este proceso de clasificación de cada píxel de la imagen, se realiza un proceso de agrupación para determinar si hay puerta en la imagen. El sistema es capaz de detectar puertas en condiciones de oclusión parcial y desde distintos’ ángulos, pero presenta el problema de requerir un alto coste computacional.”
Tomado de: http:// decsai.ugr.es/~salinas/publications/estylf04.pdf
Basándose en el concepto de usabilidad, en [2] “se presenta un método para la detección de puertas usando un sistema trilocular de visión. El concepto puerta es definido como una U invertida que puede ser atravesada por personas. Para ello analizan los segmentos presentes en las imágenes buscando formas rectangulares. Si cumplen una serie de criterios de altura y anchura
Que establecen sobre las puertas de su entorno son clasificadas como tales. Este sistema cuenta con el inconveniente del coste del equipo perceptual además de que no se realiza un análisis de como puede influirla perspectiva en la detección.”
Tomado de: http:// decsai.ugr.es/~salinas/publications/estylf04.pdf
En el trabajo propuesto por [3] “se utiliza un método para la detección de puertas limitado a pasillos teniendo en cuenta las dimensiones del mismo. La detección se realiza buscando las líneas verticales del pasillo y agrupándolas en puertas. La técnica limita la detección de las puertas a un entorno muy concreto y no tiene en cuenta las deformaciones debidas a los cambios
de perspectiva.”
Tomado de: http:// decsai.ugr.es/~salinas/publications/estylf04.pdf
En [4] “la detección visual de puertas sirve de guía a un robot móvil para cruzar puertas. La detección delos marcos se realiza en las inmediaciones de la misma como columnas de ancho mayor de 35 píxeles. Esta detección permite indicar al robot el centro de la puerta.
Usando la información del sistema visual el robot es capaz de cruzar las puertas de su entorno de trabajo. Sin embargo, el mecanismo utilizado para la detección visual es poco elaborado y difícilmente puede ser extendido a otras situaciones.”
Tomado de: estylf04.ujaen.es/planificacion_detallada.pdf
[1] J.M. Ca˜nas, R. Simmons, y M. C. Garc´ıa-Alegre.
Detecci´on probabil´ıstica de puertas con visi´on
monocular activa. En Actas del II WorkShop
Hispano-Luso en Agentes F´ısicos (Waf ’2001),
p´aginas 113–128, Madrid, 2001.
[2] G. Cicirelli, T. D’orazio, y A. Distante. Target
recognition by component for mobile robot navigation.
Journal of Experimental and Theoretical
Artificial Intelligence, 15(3):281–297, 2003.
[3] D. Kim y R.˜ Nevatia. A method for recognition
and localizati´on of generic objects for indoor
navigation. Image and Vision Computing,
16(11):729–743, 1998.
[4] I. Monasterio, E. Lazkano, I. Ra˜n´o, y B. Sierra.
Learning to traverse door using visual information.
Mathematics and Computer in Simulation,
60:347–356, 2002.
El articulo de (Eugenio Aguirre, Miguel Garcia Silvente, Antonio González, Rafael Muñoz) “Detección de puertas mediante visión y lógica difusa”
Tomado de: estylf04.ujaen.es/planificacion_detallada.pdf
En este trabajo presentan un nuevo método para la detección visual de puertas basado en la extracción de los segmentos de la imagen y en la definición, mediante lógica difusa, de las características que presentan dichos segmentos al formar parte del marco.la puerta es detectada buscando los segmentos en la imagen que constituyen el marco. Detectan los bordes en la imagen usando el detector de fronteras Canny. Sobre esta imagen aplican la Transformada de Hough con objetivo de extraer los segmentos. Luego, utilizan lógica difusa para analizar las relaciones entre los segmentos para determinar la presencia de posibles marcos de puertas en la imagen. El método es capaz de detectar las puertas encontradas en los entornos de interior en condiciones de iluminación variable. Es robusto frente a cambios de escala y a la deformación debida a la perspectiva.
DETECCIÓN DE PUERTAS MEDIANTE VISIÓN Y LÓGICA DIFUSA
Tomado de: estylf04.ujaen.es/planificacion_detallada.pdf
RESULTADOS DE EXPERIMENTACIÓN:
Tomado de: estylf04.ujaen.es/planificacion_detallada.pdf
NAVEGACIÓN VISUAL DE UN ROBOT MÓVIL
Después de realizar un análisis de las soluciones propuestas anteriormente se tomo como referencia la solución propuesta en “Sistema visual de apoyo a la asistencia en la conducción de una silla de ruedas “
Tomado de: http://columbus.uniandes.edu.co:5050/dspace/handle/1992/317
para partir como base de solución al problema planteado, teniendo en cuenta que en este trabajo solo se dispone de una cámara como sensor para la navegación y reconocimiento de caminos alternativos, sin disponer de otros sensores como lo hace el trabajo del cual se basara este proyecto.
Se procedió a recopilar información de cómo utilizar el detector de fronteras de Canny (pero también analizando otros filtros verificando los resultados en las pruebas) y la trasformada de Hough para resolver el problema de extracción de las líneas.
Detección de ejes:
“La idea básica detrás de detección de ejes es encontrar lugares
en la imagen donde la intensidad cambia rápidamente, usando uno
de estos dos criterios:
1- Encontrando lugares donde la primera derivada de la
intensidad es mayor que una magnitud especificada.
2- Encontrar lugares en la imagen donde la segunda derivada
pasa por cero.
Para detectar ejes:
[g, t] = edge(f, 'method', parámetros);”
Detección de ejes, con filtros de Sobel:
“[g, t] = edge(f, 'sobel', T, dir)
donde f es la imagen, T es el límite (opcional), dir es la dirección
de filtrado: 'horizontal' , 'vertical' ó 'both' (opción por
defecto). g es la imagen de ejes y t es el límite usado.”
Detección de ejes, detector de Canny:
“[g, t] = edge(f, 'roberts', T, sigma)
donde f es la imagen, T es un vector que tiene dos límites (opcional),
sigma es la desviación estándar. g es la imagen de ejes y t es el
límite usado.
Funcionamiento:
1- La imagen es suavizada con un filtro de gausiano.
2- Se calcula los gradientes y la dirección del gradiente para todo
píxel. Un punto de eje se define como un punto que tiene un
máximo en la dirección del gradiente.
3- El algoritmo filtra la imagen anterior con dos limites T1 y T2,
donde T1 <>
Tomado de: http://ocw.usc.es/export/sites/default/gl/servizos/ceta/opencourseware/Lic_Fisica/tci/material/practicas/apuntes-practica5.pdf
TRASFORMADA HOUGH
Tomado de: http://ocw.usc.es/export/sites/default/gl/servizos/ceta/opencourseware/Lic_Fisica/tci/material/practicas/apuntes-practica5.pdf
La solución al problema va a ser implementada en matlab asi que se procedió a buscar información en el tool-box de matlab de PDI.
Obteniendo la siguiente información:
“The following example illustrates the power of the Canny edge detector by
showing the results of applying the Sobel and Canny edge detectors to the
same image:”
1 Read image and display it.
I = imread('coins.png');
imshow(I)
Tomado de:www.mathworks.com/access/helpdesk_r13/help/toolbox/images/enhanc10.html
2 “Apply the Sobel and Canny edge detectors to the image and display them.”
BW1 = edge(I,'sobel');
BW2 = edge(I,'canny');
imshow(BW1)
figure, imshow(BW2)
Tomado de:www.mathworks.com/access/helpdesk_r13/help/toolbox/images/enhanc10.html
a continuación se revisara el código que proporciona el tool-box de Matlab referente a la trasformada de Hough.
“The following example shows how to use these functions to detect lines in
an image.”
1 Read an image into the MATLAB® workspace.
I = imread('circuit.tif');
2 For this example, rotate and crop the image using the imrotate function.
rotI = imrotate(I,33,'crop');
fig1 = imshow(rotI);
Tomado de:www.mathworks.com/access/helpdesk_r13/help/toolbox/images/enhanc10.html
3 “Find the edges in the image using the edge function.”
BW = edge(rotI,'canny');
figure, imshow(BW);
Tomado de:www.mathworks.com/access/helpdesk_r13/help/toolbox/images/enhanc10.html
4 “Compute the Hough transform of the image using the hough function.
[H,theta,rho] = hough(BW);”
5” Display the transform using the imshow function.”
figure, imshow(imadjust(mat2gray(H)),[],'XData',theta,'YData',rho,...
'InitialMagnification','fit');
xlabel('\theta (degrees)'), ylabel('\rho');
axis on, axis normal, hold on;
colormap(hot)
Tomado de:www.mathworks.com/access/helpdesk_r13/help/toolbox/images/enhanc10.html
Find the peaks in the Hough transform matrix, H, using the houghpeaks
function.
P = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));
7” Superimpose a plot on the image of the transform that identifies the peaks.”
x = theta(P(:,2));
y = rho(P(:,1));
plot(x,y,'s','color','black');
9 “Create a plot that superimposes the lines on the original image.”
figure, imshow(rotI), hold on
max_len = 0;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
% Plot beginnings and ends of lines
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
% Determine the endpoints of the longest line segment
len = norm(lines(k).point1 - lines(k).point2);
if ( len > max_len)
max_len = len;
xy_long = xy;
end
end
% highlight the longest line segment
plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');
Tomado de:www.mathworks.com/access/helpdesk_r13/help/toolbox/images/enhanc10.html
Se observa que a pesar de que la imagen esta rotada en determinado ángulo encuentro las líneas en las imágenes que cumplen las características de continuidad y longitud especificadas en el código además de colorearlas mostrando la más larga con un color azul.Tomado de:www.mathworks.com/access/helpdesk_r13/help/toolbox/images/enhanc10.html
Se observa que a pesar de que la imagen esta rotada en determinado ángulo encuentro las líneas en las imágenes que cumplen las características de continuidad y longitud especificadas en el código además de colorearlas mostrando la más larga con un color azul.