jueves, 18 de diciembre de 2008

implementación de la solución y resultados

DISEÑO DEL PROYECTO

clear all
close all
clc

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%PREPROCESAMIENTO DE LA IMAGEN%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

RGB = imread('20.jpg');%cargamos la imagen
RGB = imresize(RGB, [300 400]);% devuelve la imagen que es la escala veces el tamaño de la entrada A.
I = rgb2gray(RGB); % convierte a escala de grises

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%PROCESAMIENTO DE LA IMAGEN%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

BW = EDGE(I,'canny',[0.1 0.2],2); %extraemos los ejes,ajustando los parametros
[H,theta,rho] = hough(BW);%%aplicamos la transformada de Hough
P = houghpeaks(H,20,'threshold',50); %%encontramos los picos
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%SEGMENTACION%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
try %%%%%%%%%solucion del error en caso de no detectar ninguna linea
lines = houghlines(BW,theta,rho,P,'FillGap',10,'MinLength',40);
catch
d=size(lines)
end
d=size(lines)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
buscando=0;
imshow(RGB),hold on
if d(1,2) > 1 %%%%%%solucion del error en caso de no encontrar ninguna linea mediante Hough
a=0;
p=0;
b1=0;%%%inicializamos las variables auxiliares
b2=0;
lon=0;

z=length(lines);
for k = 1:z %%hacer para todas las lineas detectadas
xy = [lines(k).point1; lines(k).point2];%% dibujar cada una de las lineas

plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');%%%colorear el punto en x,y de la linea de inicio en amarillo
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');%%%%%%colorear el punto en x,y de la linea de inicio en rojo

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%EXTRACCION DE CARACTERISTICAS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%se eliminan lineas verticales y horizontales que no son de interes
%se toman los puntos mas cercanos al piso como las lineas de interes para
%guiar al robot

% se ubican las lineas de interes de la derecha
if(xy(1,1)+20150 && xy(2,1)>200)
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');

if (xy(2,2)>a)
a= xy(2,2);
b=k


end

b1=1;%%variable auxiliar
end


%se ubican las lineas de interes de la derecha izquierda
if(xy(1,1)+20xy(2,2)+10 && xy(1,2) >150 && xy(1,1)<200)>p)
p= xy(1,2)
d=k


end
b2=1;%%variable auxiliar
end



end


if (b1==1&&b2==1) %%en caso de ubicar las dos lineas del camino que cumplan con las condiciones entrar.

xyd = [lines(b).point1; lines(b).point2];
plot(xyd(2,1),xyd(2,2),'x','LineWidth',8,'Color','blue');
xyi = [lines(d).point1; lines(d).point2]; % dibujar en azul los puntos que serviran de guia al robot
plot(xyi(1,1),xyi(1,2),'x','LineWidth',8,'Color','blue');
lon=norm(lines(d).point1- lines(b).point2) %%encontar la norma de los puntos en azul

mitadcamino=xyi(1,1)+(lon/2)%%%ubicar la pocicion en x donde esta la mitad del camino

%%%%ubico con x la posicion del camino a seguir con respecto a la pocicion
%%%%de la camara.
plot(mitadcamino,xyi(1,2),'x','LineWidth',20,'Color','white');% centro del camino en blanco
plot(200,xyi(1,2),'x','LineWidth',20,'Color','black');%centro de la camara en negro

diferencia=mitadcamino-200%%% calculo la desviacion de la camara con respecto al camino

if(lon >120)%%establesco que la longitud de los puntos de las lineas del camino a seguir tiene que ser mayor a 120 pixeles

if (diferencia >-20 && diferencia <20)>21)
title('gire ala derecha')
end

if (diferencia <-21) title('gire ala izquierda') end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (b1==1 && b2==0)%%%en caso de encontrar solo una linea con las caracteristicas %%ya sea a la derecha o ala izquierda tomar la decicion. title('gire ala izquierda') end if (b1==0 && b2==1) title('gire ala derecha') end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (b1==0 && b2==0) %%% en caso de no encontrar ninguna linea que cumpla con las caracteristicas mostrar buscando... title('buscando...') buscando=1; %% variable auxiliar end if (lon <120 b1="=" b2="=" buscando="1;" buscando="=" bw =" edge(I,'sobel',[],'vertical');" p =" houghpeaks(H,20,'threshold',50);" lines =" houghlines(BW,theta,rho,P,'FillGap',20,'MinLength',80);" hi="size(lines)%lines=" hi="size(lines)"> 1
t=0;
incp=0;
absoluto=0;
con=0;
aga=0;
lineas=0;
z=length(lines);

for k = 1:z
xy = [lines(k).point1; lines(k).point2];
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');


if(xy(1,1)*1.15>xy(2,1)&& xy(1,1)*0.8t)
t= xy(2,2);
t1=k
aga=1;
end

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



if aga==1 %%%% si encuentra ese punto mas a bajo colorearlo de azul con una x%%%%%%%%%%%%%%%%%%%%%
xyp = [lines(t1).point1; lines(t1).point2];
plot(xyp(2,1),xyp(2,2),'x','LineWidth',20,'Color','blue');
y1=xyp(1,2)
x1=xyp(1,1)
y2=xyp(2,2)
con=0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%condiciones sobre donde no puede estar ubicado el punto azul
if x1 >389
x1=389
end

if x1 <11 x1="11" k1 =" y1:y2" h1="I(k1,x1-10);" lineas="(y2-y1);" h2="I(k1,x1+10);" lineas="(y2-y1);">15) %%si la variaciones son mayores a 15 entonces incrementa con
con=con+1;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%en absoluto guardo la variacion de cada uno de los pixeles de la
%%%izquierda y la derecha buscando homogeneidad
if(h1>h2)
absoluto=h1-h2
end

if(h1(lineas/2)) %%si la variaciones que encontro con son mayores
%%%a la mitad de los pixeles de las lineas verticales alladas entonces
%%%se detecta como camino alternativo
for k1 = y1:y2


plot(x1+20,k1,'x','LineWidth',10,'Color','blue');
plot(x1-20,k1,'x','LineWidth',10,'Color','blue'); %%dibujo el camino alternativo


end
end
end


end


end


RESULTADOS OBTENIDOS

En esta sección se muestra algunos resultados de la experimentación realizada con el método propuesto. Para validar el método se ha realizado dos tipos de pruebas. Mediante la primera se pretende determinar el éxito en la detección de caminos alternativos en imágenes que efectivamente muestran caminos alternativos que el robot pueda encontrar durante su trayectoria. Con la segunda se pretende comprobar que el método detecta correcta mente las líneas de las esquinas de las paredes para poder guiarse a través del pasillo por el cual el robot tendrá que navegar .En el primer caso se han usado un total de 10 imágenes de distintos tipos de caminos alternativos tomadas desde diferentes perspectivas y desde diferentes distancias simulando a un robot que circula por los pasillos, a pesar de que se menciono que la cámara debía estar fija a una altura apuntando siempre a un determinado ángulo se vario la altura y el ángulo para ver la robustez del sistema obteniendo solo malos resultados si se variaba mucho el ángulo ,como era de esperarse puesto que el sistema solo detecta las líneas que sean verticales con cierto porcentaje de inclinación para lo que fue diseñado. En la segunda prueba se han usado 20 imágenes desde diferentes perspectivas sin variar la altitud que fue en un principio de 47 cm dando como resultado que el sistema no detecta ningún falso positivo demostrando un comportamiento robusto.

La figura 5 muestra en la primera fila imágenes de los pasillos con puertas, en la segunda fila se muestra las imágenes tratadas para obtenerlas a escala de grises, en la tercera fila se muestra los resultados de aplicar los filtros de Canny (fila3 colmna1) para detectar los bordes de las esquinas para guiar al robot y Sobel vertical (fila3 columna2) con el cual se obtuvieron mejores resultados que con Canny para el caso de detectar caminos alternativos como es en este caso las puertas.
En la cuarta fila se muestran el conjunto total de segmentos que obtiene el detector basado en la
Transformada de Hough y por ultimo en la fila 5 se hace un filtrado de las líneas que no son de interés y se obtiene la detección del camino y por lo tanto la orden de control respectiva según la ubicación del robot (ver figura 5 fila 5 columna 1), además de ubicación del camino alternativo detectando las esquinas de la puerta (ver figura 5 fila 5 columna2).
FIGURA 5: De arriba a abajo. Imagen original. Todos los
Segmentos detectados. Segmentos candidatos seleccionados.
Puerta mas cercana detectada y camino detectado.

Explicación de la solución

Procesamiento y Análisis de Imágenes

Para abordar el proyecto sistema de navegación visual en interiores no controlados se procedió a dividir el problema en dos partes, la primera parte encaminada a resolver el problema de la navegación del robot móvil en interiores no controlados y la segunda al problema de la detección de caminos alternativos que se pueden encontrar mientras el robot circula a través de los pasillos, el primer paso será recopilar información de trabajos,tesis,documentos,código relacionado con el proyecto a fin de darse una idea y tener bases de cómo se a trabajado y se dio solución a este tipo de problemas, el segundo paso será crear un banco de imágenes de diferentes pasillos en entornos cerrados no controlados y tomar imágenes de de caminos alternativos como son puertas o pasillos que conectan a varios pasillos, el tercer paso será; una ves tomadas las imágenes estas servirán de prueba para realizar el procesamiento de las imágenes ,segmentación ,y extracción de características en búsqueda de encontrar la solución al problema planteado utilizando para ello distintos métodos aprendidos en clase y consultados durante el proceso de recopilación de información, el cuarto paso es ;una ves dada la solución al problema de la navegación y búsqueda de caminos los cuales fueron tomados como dos problemas separados, serán unificados para dar solución al problema global.

Los pasos a seguir para la implementación del sistema de navegación son los siguientes:

1. PREPROCESAMIENTO DE LA IMAGEN: Se obtiene la imagen de entrada la cual fue tomada mediante una cámara digital de 6.1 mega pixeles y un celular nokia 5200 las imágenes son a color y fueron reducidas a una resolución de 400*300 pixeles para facilitar su procesamiento en la plataforma de Matlab, en este paso se procede a cargar la imagen reducida y a pasarla a escala de grises.2.
PROCESAMIENTO DE LA IMAGEN: una ves obtenida la imagen en escala de grises se aplicara el filtrado mediante el método de Canny para la detección de contornos el cual se le realizo una modificación de parámetros en Matlab para ajustar la imagen , este filtrado es exclusivamente para la detección de las esquinas del pasillo en donde se encuentra el camino a seguir por robot ,para la detección de caminos alternativos se utilizara el filtro de Sobel y como parámetro se le dice que me muestre las líneas verticales ,este filtrado se hace para la detección de caminos alternativos.
3. SEGMENTACION: Para la extracción de las líneas que servirán de guía al robot en su trayectoria se utiliza la trasformada de Hough de la imagen que a sido filtrada mediante Canny, para la detección de caminos alternativos utilizamos de nuevo la trasformada solo que esta ves se ara sobre la misma imagen pero con la diferencia de que a esta se le aplico el filtro de Sobel vertical de esta manera me extraerá de la imagen las líneas verticales de las puertas que están abiertas o cerradas.
4. EXTRACCION DE CARACTERISTICAS: una ves obtenidos las líneas en la imagen se procede a la identificación de las líneas del camino que debe seguir el robot para guiarse, para ello se tomaron las líneas que se encontraban mas cercanas al piso con los ángulos adecuados descartando las otras líneas, se identifican los puntos de inicio y fin de estas líneas y se identifica el centro entre estas, luego se localiza el centro de la imagen y se relaciona con el centro que se hallo en el camino, si el centro del camino coincide con el centro de la imagen en un determinado rango le indican al robot de que continúe derecho, si el centro de la imagen no coincide con el centro del camino en ese rango se sabrá que se encuentra desviado y le indicara al robot que gire a su izquierda o a su derecha según sea el caso, para determinar si existen caminos alternativos en la imagen a esa imagen se le aplico el filtro de Sobel y median te Hough se determino las líneas horizontales que existen en la imagen el algoritmo revisa la parte izquierda y derecha de la imagen buscando las coordenadas de las líneas que están mas arriba y encontrando su coordenada de inicio y fin una ves encontradas realiza un escaneo en esa parte de la imagen buscando si la puerta se encuentra abierta o cerrada detectando si la textura es homogénea(puerta cerrada) o si no lo es(puerta bierta) dándole la respectiva orden al robot.

ESTADO DEL ARTE

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.

REQUERIMIENTOS

Se necesita de un sistema de navegación para un robot móvil ,el cual tiene instalada una cámara a una altura de 47cm que utiliza como sensor (para poder marchar en entornos no controlados a través de un pasillo) la cual captara las imágenes ,para ello se utilizara el celular nokia 5200 con una resolución de 400*300 pixeles, el sistema de navegación desarrollado deberá dotar al robot de toda la información necesaria para realizar su trayectoria correctamente a través del pasillo, recorriéndolo siempre por la mitad de este, la información que el sistema le proporcionara es cualitativa y es la siguiente:

INFORMACION:

· Girar hacia la derecha hasta encontrar el centro del camino.
· Girar hacia la izquierda hasta encontrar el centro del camino.
· Si se encuentra en el centro del camino seguir hacia delante.
· Si en su camino detecta puerta(s) revisar si esta (s) esta(n) abierta(s).
· Si la(s) puerta(s) esta(n) abierta(s) informar al robot sobre.
· Hay una posible desviación a la derecha.
· Hay una posible desviación a la izquierda.
Nota: el centro del camino por donde circulara el robot móvil será considerado el punto de consigna del robot, este centro estará delimitado dentro de un rango de desviación que será medido en píxeles, si el robot se encuentra dentro de este rango se considerara que se encuentra en el punto de consigna de lo contrario no.
El proyecto será desarrollado en tres etapas diferentes denominados prototipos en las cuales se generaran diferentes avances encaminados a la consecución del objetivo planteado.El desarrollo de los diferentes prototipos permitirá hacer uso de software como matlab o labview y openCV con los cuales se pueden tratar imágenes en un PC.
PROTOTIPO 1: Empleando Matlab o Labview, junto con un banco de imágenes. Duración 29 Octubre del 2008 a 2 de Diciembre del 2008.
PROTOTIPO 2: Empleando Matlab o Labview, junto con un banco de videos. Duración 2 de Diciembre del 2008 a 18 de Diciembre del 2008.
PROTOTIPO 3: Empleando OpenCv, junto con una cámara de video. Duración 18 de Diciembre del 2008 a 11 Febrero del 2009.

martes, 9 de diciembre de 2008

REQUERIMIENTOS
Se necesita de un sistema de navegación para un robot móvil ,el cual tiene instalada una cámara a una altura de 50cm que utiliza como sensor (para poder marchar en entornos no controlados a través de un pasillo) la cual captara las imágenes ,para ello se utilizara el celular nokia 5200 con una resolución de 640*480 pixeles, el sistema de navegación desarrollado deberá dotar al robot de toda la información necesaria para realizar su trayectoria correctamente a través del pasillo, recorriéndolo siempre por la mitad de este, la información que el sistema le proporcionara es cualitativa y es la siguiente:
INFORMACION:
· Girar hacia la derecha hasta encontrar el centro del camino.
· Girar hacia la izquierda hasta encontrar el centro del camino.
· Si se encuentra en el centro del camino seguir hacia delante.
· Si en su camino detecta puerta(s) revisar si esta (s) esta(n) abierta(s).
· Si la(s) puerta(s) esta(n) abierta(s) informar al robot sobre.
· Hay una posible desviación a la derecha.
· Hay una posible desviación a la izquierda.

El proyecto será desarrollado en tres etapas diferentes denominados prototipos en las cuales se generaran diferentes avances encaminados a la consecución del objetivo planteado.
El desarrollo de los diferentes prototipos permitirá hacer uso de software como matlab o labview y openCV con los cuales se pueden tratar imágenes en un PC.


PROTOTIPO 1: Empleando Matlab o Labview, junto con un banco de imágenes. Duración 29 Octubre del 2008 a 2 de Diciembre del 2008.
PROTOTIPO 2: Empleando Matlab o Labview, junto con un banco de videos. Duración 2 de Diciembre del 2008 a 18 de Diciembre del 2008.
PROTOTIPO 3: Empleando OpenCv, junto con una cámara de video. Duración 18de Diciembre del 2008 a 11 Febrero del 2009.








ESTADO DEL ARTE
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ón
Visual 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) donde
Se 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 Ira 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 anos, se propone una función que genera una transición suave entre los distintos objetivos locales.

Procesamiento y Análisis de Imágenes

Los pasos a seguir para la implementación del sistema de navegación son los siguientes

1. PREPROCESAMIENTO DE LA IMAGEN: Se obtiene la imagen de entrada la cual fue una camara digital de 6.1 mega pixeles y un celular nokia 5200 las imágenes son a color y fueron reducidas a una resolución de 461*346 p para facilitar su procesamiento en el entorno de matlab, en este paso se procede a cargar la imagen reducida y a pasarla a escala de grises.

2. PROCESAMIENTO DE LA IMAGEN: una ves obtenida la imagen en escala de grises se aplico el filtrado mediante el método de canny para la detección de contornos el cual se le iso una modificación de parámetros en matlab para ajustar la imagen este filtrado es exclusivamente para la detección del camino a seguir por robot ,para la detección de caminos alternativos se utilizara el filtro de sobel y como parámetro se le dice que me muestre las líneas verticales ,este filtrado se hace para la detección de caminos alternativos.

3. SEGMENTACION: Para la extracción de las líneas que servirán de guía al robot en su trayectoria se utiliza la trasformada de hough de la imagen que a sido filtrada mediante canny, para la detección de caminos alternativos utilizamos denuevo la trasformada solo que estaves se ara sobre la misma imagen pero con la diferencia de a que esta se le aplico el filtro de sobel vertical de esta manera me extraerá de la imagen las líneas verticales de las puertas que están abiertas o cerradas.

4. EXTRACCION DE CARACTERISTICAS: una ves obtenidos las líneas en la imagen se procede a la identificación de las líneas del camino que debe seguir el robot para guiarse, para ello se tomaron las líneas que se encontraban mas cercanas al piso y se descartaron las otras líneas, se identifican los puntos de inicio y fin de estas líneas y se identifica el centro entre estas, luego se localiza el centro de la imagen y se relaciona con el centro que se hallo en el camino, si el centro del camino coincide con el centro de la imagen en un determinado rango le indican al robot de que continúe derecho, si el centro de la imagen no coincide con el centro del camino en ese rango se sabrá que se encuentra desviado y le indicara al robot que gire a su izquierda o a su derecha según sea el caso, para determinar si existen caminos alternativos en la imagen a esa imagen se le aplico el filtro de sobel y median te hough se determino las líneas horizontales que existen en la imagen el algoritmo revisa la parte izquierda y derecha de la imagen buscando las coordenadas de las líneas que están mas arriba y encontrando su coordenada de inicio y fin una ves encontradas realiza un escaneo en esa parte de la imagen buscando si la puerta se encuentra abierta o cerrada detectando si la textura es homogénea(puerta cerrada) o si no lo es(puerta bierta) dándole la respectiva orden al robot













REFERENCIAS

Molina R, Introducción al Procesamiento y Análisis de Imágenes Digitales, 1998.

Gonzalez Rafael, Woods Richard, Digital Image Processing,1993, Addison-Wesley,

Gonzales Rafael, Woods Richard y Eddins Steven, Digital Image Processing usingMatlab, 2004.

http://www.vision.auc.dk/~tbm/Student_projects/02-automatic.pdf

www.scribd.com/doc/23371/Procesamiento-de-imagenes-con-Matlab

www.fundacionorange.es/PosterArquimedes_Manuel_Roldan.pdf

ocw.usc.es/export/sites/default/gl/servizos/ceta/opencourseware/Lic_Fisica/tci_antiguo/Documentos/apuntes-practica2.pdf

www.varpa.es/Docencia/VAFiles/Curso0708/prac2.pdf

www4.ujaen.es/~satorres/practicas/practica4_vc.pdf

pci.unalmzl.edu.co/Tesis/emmenueljuanpablo.pdf