Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

6

Click here to load reader

Transcript of Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

Page 1: Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

Latin-American Robotics Symposium LARS 2011

Abstract— Este artículo presenta una estrategia de navegación para robots en entornos estructurados, específicamente pasillos y corredores, usando visión artificial para identificar el punto de fuga, característica propia de la perspectiva paralela, y el mapa de disparidad de la escena a partir de un sistema de estereovisión, para la localización de obstáculos en el entorno. Se ha utilizado una arquitectura basada en comportamientos y una estrategia de campos de potencial para la navegación a través del pasillo evadiendo obstáculos presentes. Las pruebas preliminares se han realizado tanto en simulación como en robots reales, validando por aparte cada uno de los algoritmos propuestos y alcanzando resultados positivos.

Index Terms— Robótica, visión artificial, perspectiva, punto de fuga, mapa de disparidad, navegación.

I. INTRODUCCIÓN

a tarea de navegación en robótica móvil es un tema comúnmente estudiado y ampliamente explorado. Esta tarea involucra la interacción del robot con el entorno

por lo que las labores de control se dificultan ya que no dependen exclusivamente del estado interno del robot (información propioceptiva); es necesario conocer la respuesta del entorno a estas interacciones (información exteroceptiva). Por otro lado, la tarea de navegación involucra también conocer a priori la localización del robot, la cual es otra tarea compleja de resolver. Debido a esto existen diversas estrategias que han sido planteadas para la tarea de navegación. Esquemas basados en el estado interno del robot como la odometría no resultan eficientes y robustos debido a los errores acumulativos de este tipo de sistemas. Sin embargo son métodos sencillos de implementar y además de bajo costo. Se observa por lo tanto un enfoque en el que se utilizan estrategias para mejorar el desempeño de estos sistemas odométricos a partir de información de otras fuentes

L

Artículo enviado el 31 de Mayo de 2011.Alejandro M. Pustowka es estudiante de Maestría en la Escuela de

Ingeniería Eléctrica y Electrónica de la Universidad del Valle, Cali, Colombia, y pertenece al grupo de Investigación "Percepción y Sistemas Inteligentes" de la misma universidad (e-mail: [email protected]).

Andres F. Suarez es Ingeniero Electrónico egresado de la Universidad del Valle, Cali, Colombia, (email: [email protected])

Eduardo F. Caicedo está con la Escuela de Ingeniería Eléctrica y Electrónica de la Universidad del Valle, Cali, Colombia, y es el director del grupo de investigación "Percepción y Sistemas Inteligentes" de la misma universidad (e-mail: [email protected]).

Humberto Loaiza está con la Escuela de Ingeniería Eléctrica y Electrónica de la Universidad del Valle, Cali, Colombia, y es el codirector del grupo de investigación "Percepción y Sistemas Inteligentes" de la misma universidad (e-mail: [email protected]).

sensoriales. Esto motiva a usar referencias externas como base para corregir lecturas de los sistemas odométricos. Así, se aprovecha información exteroceptiva para fortalecer la localización basada en información propioceptiva.

El uso de visión artificial se ha vuelto frecuente para implementar estas estrategias. Es común encontrar robots dotados de sistemas de visión artificial, debido a la cantidad de información que una cámara puede extraer del entorno. En la literatura se describen estrategias basadas en detección de marcas en el terreno, tanto artificiales como naturales, que le permiten al robot tener una referencia con la cual corregir su localización, facilitando así las tareas de navegación. Específicamente en entornos estructurados, es posible aprovechar las características inherentes de este tipo de ambientes para identificar marcas naturales. Un ejemplo claro de ello es el punto de fuga, que brevemente se puede definir como el punto en el horizonte infinito hacia donde tienden las líneas paralelas del entorno. Este efecto es una característica de la técnica de perspectiva, que consiste en dotar de sensación de profundidad a imágenes en 2D. Aprovechando también el uso de un sistema de estereovisión es posible aplicar técnicas de detección de obstáculos, al permitir establecer la profundidad de los objetos presentes en la escena usando el mapa de disparidad.

Este trabajo plantea una estrategia de navegación autónoma de un robot móvil diferencial a través de pasillos, guiado exclusivamente por el punto de fuga encontrado en la imagen provista por una de las cámaras a bordo del robot, incluyendo evasión de obstáculos a partir del mapa de disparidad generado por el sistema de visión estéreo. Se utiliza odometría para la tarea de localización, y una arquitectura de control reactiva basada en el paradigma de comportamientos. El artículo se encuentra organizado de la siguiente manera: En la siguiente sección se resumen los trabajos realizados en la misma área. La sección tres presenta el método utilizado para hallar el punto de fuga mediante técnicas de procesamiento de imágenes. La sección cuatro describe el algoritmo utilizado para la detección de obstáculos en el entorno usando el sistema de visión estéreo para extraer el mapa de disparidad y su respectiva abstracción como sensor de distancia. La sección cinco define la técnica de navegación utilizada a partir del punto de fuga encontrado y los obstáculos presentes en el entorno. La sección seis describe la plataforma de experimentación utilizada para validar la estrategia, y las pruebas y experimentos realizados se muestran en la sección siguiente. El artículo finaliza con las observaciones y conclusiones del trabajo realizado en la sección ocho.

1

Alejandro M. Pustowka*, Andrés F. Suarez*, Eduardo F. Caicedo, Humberto Loaiza

Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

Page 2: Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

Latin-American Robotics Symposium LARS 2011

II. ANTECEDENTES

La utilización del punto de fuga no es una estrategia nueva para las tareas de navegación de un robot móvil. Existen diversos trabajos en la literatura que presentan esta estrategia para la navegación en entornos estructurados [1][7], así como navegación a partir de marcas naturales en el terreno [2][3].

Los enfoques comúnmente utilizados encuentran el punto de fuga aprovechando los altos contrastes de la escena. Es posible identificar entonces líneas en el entorno, para lo cual es necesario en primer lugar aplicar un algoritmo de detección de bordes. Esta tarea se realiza por lo general usando el filtro Canny, tal y como se muestra en [1]. Sin embargo existen otras técnicas, como en [2], en donde se utiliza un algoritmo de análisis de texturas para establecer la orientación de las mismas y posteriormente, mediante un sistema de votación, elegir el punto de fuga a partir de los cruces de orientaciones. Se puede entonces evidenciar que los algoritmos comúnmente se ejecutan en dos etapas. La primera etapa permite extraer ciertas características del terreno que permitan inferir la perspectiva de la escena. Posteriormente se calculan los cruces o densidades de estas características, asumiendo que el punto de fuga se encuentra en la zona de mayor concentración de estos puntos. En [1] la segunda etapa (identificación del punto de fuga) se calcula de manera iterativa, encontrando el promedio de los puntos de cruce y posteriormente evaluando para cada punto que tan alejado está del promedio. Si este valor sobrepasa un límite, el punto es descartado y el promedio es calculado nuevamente. Este proceso se repite hasta alcanzar una convergencia de distancias mínimas aceptable. En [4] y [5] se aplica RANSAC para hallar el punto de fuga, el cual es un método iterativo que permite obtener los parámetros de un modelo matemático a partir de datos que contienen valores atípicos (denominados outliers). Por otro lado, la transformada de Hough puede aplicarse iterativamente para hallar puntos de cruce, tal y como se muestra en [6]. Sin embargo esta técnica se debe utilizar con cuidado, ya que la transformada de Hough es un algoritmo que puede consumir más recursos que las técnicas iterativas anteriormente presentadas.

En lo que respecta a desarrollos que emplean la visión estereoscópica para la navegación de un robot móvil se encuentra el trabajo de Cañas et Al [12], en el cual se presenta un algoritmo para fijar la vista del sensor a una zona de interés de la escena y realizar la reconstrucción 3D permitiendo a un robot móvil navegar autónomamente. En el trabajo de Kahora et al [13] se propone un método que genera un mapa de celdas ocupadas basado en la información dada por el sistema de estéreo visión detectando y siguiendo el movimiento de objetos. El trabajo de Viejo & Carloza [14] presenta un método para realizar una reconstrucción 3D de un entorno por medio de la extracción de características obtenidas por un sensor de estereovisión. De interés resultan los procedimientos que determinan la profundidad, generalmente denominados sonares de largo alcance (SLA). Este tipo de técnica se encuentra en el trabajo pionero de Murray& Little [15], en donde a partir de la imagen de disparidad obtienen un vector de sonares del tamaño del ancho de la imagen de disparidad,

en donde el valor de profundidad de cada posición del vector se calcula tomando el valor máximo de disparidad de cada columna de la imagen. Otro trabajo con esta característica es el de Castillo & Saéz [16] donde se realiza una mejora al método desarrollado por Murray & Little [15] calculando la distancia a partir del valor de mayor frecuencia en cada una de las columnas de la imagen de disparidad, eliminando así lo que ellos denominan un error estadístico al tomar el máximo de un conjunto.

III. CÁLCULO DEL PUNTO DE FUGA

El punto de fuga es una característica propia de la técnica conocida como perspectiva, que consiste en la representación gráfica que otorga la sensación de profundidad a imágenes 2D. Específicamente la denominada Perspectiva frontal o paralela es la que resulta de interés en este trabajo, debido a que define un único punto de fuga en la imagen, al cual confluyen todas las líneas paralelas en dirección al horizonte.

La definición del punto de fuga da ciertos lineamientos para definir el método de búsqueda a partir de procesamiento de imágenes. Es necesario extraer las líneas de la imagen, hallar sus puntos de cruce, para finalmente encontrar el punto de mayor concentración de cruces, donde estará localizado el punto de fuga. Las etapas del algoritmo implementado se describen a continuación:

A. Adquisición de la imagen

Esta etapa retorna la imagen capturada por la cámara y es completamente dependiente de la implementación hardware que se tenga del sistema.

B. Detección de Bordes

Los bordes corresponden a las componentes de alta frecuencia de la imagen. Se ha utilizado el filtro Canny para implementar la detección de bordes. El filtro entrega una imagen binarizada, señalando los bordes identificados.

C. Extracción de líneas

Sobre la imagen binaria de la anterior etapa se aplica un algoritmo de extracción de características para identificar las líneas presentes. Se ha utilizado la transformada de Hough [12], que identifica líneas en la imagen y las modela a partir de dos parámetros (ρ y θ) que permiten calcular la ecuación de la recta con respecto al origen. Esta etapa retorna un arreglo de parámetros que modelan las rectas existentes en la imagen.

D. Selección de líneas válidas

Se clasifican las líneas identificadas para eliminar aquellas que no aporten a la definición del punto de fuga de la imagen. Se han descartado líneas horizontales y verticales, puesto que son las que menos aportan a la identificación de perspectiva. En (1) y (2) se puede observar la clasificación realizada, en donde θli representa el ángulo de la línea i-ésima del arreglo de líneas identificadas. Se observa que para la clasificación se utiliza un rango de ángulos, definido por un límite m. Este límite es seleccionado heurísticamente.

2

Page 3: Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

Latin-American Robotics Symposium LARS 2011

0 °+m<θl i<90 °−m (1)

−90°+m<θ l i<0 °−m (2)

Esta etapa retorna un arreglo conteniendo únicamente las líneas consideradas válidas.

E. Identificación de puntos de cruce

Con las líneas válidas se procede a encontrar los puntos de cruce entre líneas. Sólo serán válidos los cruces de líneas cuyas diferencias en ángulo sean mayores a un límite predeterminado, denominado p. De esta manera se corrige el efecto de puntos de cruce generados por múltiples líneas que aparecen para un solo borde detectado. (3) ilustra la evaluación realizada a la diferencia de los ángulos de las líneas i-ésima y k-ésima.

∣θ l i−θ l k

∣>p (3)

Los cruces producidos por fuera de los rangos de la imagen son descartados. Esto implica que solamente se considerarán los puntos de fuga que se encuentren en la imagen, no fuera de ella. Esta etapa entrega entonces un arreglo con las coordenadas de los puntos de cruce válidos.

F. Identificación del punto de fuga

Se utilizó una función de costo, asociada a la distancia de un punto en la imagen con respecto a todos los puntos de cruce. El punto de fuga deberá estar localizado en el punto en donde existe la menor distancia a los puntos de cruce (punto cuya función de costo sea menor); esto asumiendo que la mayor densidad de puntos de cruce se encuentra en la vecindad del punto de fuga. Se asume que el punto de fuga se encuentra en alguno de los puntos de cruce encontrados para que el algoritmo no sea computacionalmente costoso. La función de costo asociada al punto de cruce Ci se calcula de acuerdo a (4), en donde C representa los puntos de cruce. Se calcula la función de costo usando la distancia euclidiana.

f (C i)=∑k =1

n

dist (C i ,C k ) (4)

En (4), n representa el número total de cruces que existentes en la imagen. El punto seleccionado como punto de fuga (Cvp) es aquel punto Ci cuya función de costo asociada sea la menor, tal como lo muestra (5).

( ))(arg ivp Cfmin=C (5)

Adicionalmente a calcular el punto de fuga, se han establecido unas métricas para estimar la fidelidad de la medida del punto de fuga. Para ello se ha utilizado una función de costo q, modelada según (6).

qvp =k1⋅n+k 2 z (6)

Donde n es el número total de cruces que existen en la imagen, y z el número de cruces que se presentan en la vecindad del punto de fuga.

La fig. 1 ilustra gráficamente las etapas del algoritmo previamente descrito.

(a) (b)

(c) (d)Fig. 1. Cálculo del punto de fuga, donde (a) es la imagen original, (b) es la imagen luego de aplicar el filtro Canny y transformada Hough para hallar líneas en la imagen, en donde se han filtrado las líneas horizontales y verticales y se han calculado los cruces e intersecciones de líneas, (c) es un acercamiento a los cruces, en donde se pueden ver éstos en color verde, y el punto de fuga calculado en color azul. (d) es la imagen final en donde se encuentra localizado el punto de fuga del pasillo.

IV. RECUPERACIÓN DE PROFUNDIDAD CON EL SISTEMA DE ESTEREOVISIÓN

Para la percepción de profundidad se empleó el concepto de los Sensores de largo alcance (SLA), con el que se logra obtener la ubicación de los obstáculos por medio de la abstracción de un sensor de estereovisión a un sensor del tipo sonar. El proceso de obtención de profundidad a partir de un sistema estereoscópico de visión se ilustra en la Fig. 2. Esta metodología es descrita en los trabajos de Pajares [15] y Mattoccia [16].

Fig. 2. Proceso general de la estereovisión artificial.

El proceso de corrección y rectificación de imágenes se realizo por medio del algoritmo propuesto en [17], el cual emplea los parámetros de la matriz de rotación y translación obtenidos en el proceso de calibración. Para el proceso de correspondencia de imágenes y generación del mapa de

Adquisición de imágenes

Corrección y Rectificaciónde imágenes

Correspondencia de imágenes

Obtención de

distancia

Calibración

3

Page 4: Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

Latin-American Robotics Symposium LARS 2011

disparidad se empleó el algoritmo descrito en [18], basado en programación dinámica. Para el cálculo de distancia se implementó un algoritmo que permite obtener de la imagen de disparidad un vector de distancias coplanares [13][14]. En el proceso de obtención de distancia se tiene como entrada la imagen de disparidad y como salida una matriz de distancias a los obstáculos de cada región, compuestos por la distancia al obstáculo, denotada por Z, y su respectiva posición angular con respecto al centro de la imagen, α. La distancia Z es calculada a partir de (7), en donde f es la distancia focal, B la separación entre las dos cámaras que conforman el sistema de visión estéreo, y d es la máxima medida del mapa de disparidad.

(7)

La imagen de disparidad se divide en diez regiones verticales correspondientes a las zonas de interés de la escena. Esta forma de fraccionamiento es de cierta forma similar al comportamiento de un anillo de sonares (ver Fig. 3). Obtenidas las regiones del mapa de disparidad se procede a calcular el histograma de cada una de éstas con el fin de encontrar el valor de disparidad más representativo de cada región, y posteriormente se procede a calcular el valor de distancia para finalmente generar la matriz de obstáculos.

Fig. 3. Funcionamiento del sensor estereoscópico.

En la fig. 4 se presenta un diagrama de los procesos realizados para la obtención de distancia.

(a) (b) (c)Fig. 4. Procesos realizados para la obtención de profundidad (a) Captura de imágenes estéreo, (b) Mapa de disparidad dividido en diez secciones verticales, (c) Histograma de cada sección de la imagen, para obtener el valor de disparidad representativo de la región.

V. NAVEGACIÓN REACTIVA A PARTIR DEL PUNTO DE FUGA

La estrategia a seguir para lograr navegación autónoma usando el punto de fuga ha sido la de mantener éste en el punto medio del ancho de la imagen. Se realiza un mapeo del

punto de fuga en el plano coordenado del robot, siempre a una distancia fija con respecto a la posición del robot. Este punto se utiliza como atractor, y se emplea el comportamiento GoToPoint para la navegación, que implementa la estrategia de campos de potencial. El comportamiento AvoidObstacles recibe la información de los obstáculos detectados por el algoritmo que utiliza el mapa de disparidad, y devuelve un vector dirigido en dirección opuesta a la localización de los obstáculos. Estas dos salidas son procesadas por un árbitro cooperativo, el cual realiza una suma vectorial y envía el resultado al sistema de motores del robot. La pila de comportamiento se puede observar en la fig. 5.

Fig. 5. Pila de comportamientos

El comportamiento GoToPoint genera el punto Meta de la siguiente manera: A partir del punto de fuga encontrado (5), se calcula la distancia de su coordenada x con respecto al centro de la imagen, y se divide por la distancia en píxeles al centro de la imagen, calculada como w/2, en donde w representa el ancho de la imagen, como se muestra en (8). La coordenada y no es tomada en consideración. De esta manera se obtiene un vector de 0 a 1, donde 1 representa la máxima distancia a la que puede estar el robot con respecto del punto de fuga.

r=

w2

−u

w2

=1−2uw

(8)

A partir de la posición del robot con respecto de su punto de referencia (obtenida por odometría) se mapea el punto de fuga a una distancia predefinida. Conforme el algoritmo de visión detecte el punto de fuga, este punto será actualizado en el mapa y se irá moviendo, manteniendo siempre una distancia fija con respecto a la posición del robot. En el momento que el punto de fuga deje de ser detectado, el robot llegará al último lugar donde fue mapeado el punto de fuga. La fig. 6 ilustra esta situación, en donde se observa la posición del robot respecto a su punto de referencia en azul, la distancia del centro de la imagen al punto de fuga en violeta, y finalmente la localización del punto de fuga en el plano de referencia del robot, en verde.

4

Page 5: Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

Latin-American Robotics Symposium LARS 2011

Fig. 6. Localización del punto meta a partir del punto de fuga detectado

VI. PLATAFORMA DE EXPERIMENTACIÓN

Para las tareas de experimentación se usó la plataforma robótica NXBot de la Escuela de Ingeniería Eléctrica y Electrónica de la Universidad del Valle. El robot cuenta con un Sistema Operativo Linux y ejecuta el servidor Player de interfaces robóticas [8]. Las imágenes capturadas son enviadas al computador usando streaming HTTP, a una tasa de 20 cuadros por segundo. La fig. 7 ilustra el robot utilizado.

(a) (b)Fig. 7. Robot NXBot de la Universidad del Valle

El algoritmo de visión usado para localizar el punto de fuga y extraer el mapa de disparidad del sistema de visión estéreo utiliza las librerías OpenCV para el respectivo procesamiento de imágenes. Para las etapas de simulación se utilizó el simulador Stage que hace parte de la suite Player/Stage [8].

VII. PRUEBAS REALIZADAS

Las pruebas realizadas hasta el momento han permitido validar por aparte cada algoritmo de visión realizado. Los escenarios seleccionados para probar la estrategia de navegación mediante el punto de fuga fueron los pasillos de la Escuela de Ingeniería Eléctrica y Electrónica de la Universidad del Valle. Se hicieron varias pruebas en tres pasillos y a diferentes horas, sin realizar modificación alguna en el entorno. No es necesario localizar el robot de tal manera que identifique inicialmente el punto de fuga, pero si es necesario que el primer punto atractor definido para el comportamiento GoToPoint se encuentre localizado en el área del pasillo. Se han graficado los datos de la posición del punto de fuga con respecto al centro de la imagen para calcular el error de posición. La fig. 8 ilustra estos resultados. Una vez el robot se ha orientado con respecto al punto de referencia, mantiene esta orientación con una desviación estándar

aproximada de 35 px., y es capaz de recuperarse frente a disturbios externos (fig. 8). La zona muerta en la gráfica define las orientaciones en las que el control de posición no actúa. Se ha inducido un disturbio, que no es más que una fuerza externa aplicada sobre el robot, obligándolo a seguir otra trayectoria. Se observa que el control de orientación permite que el robot vuelva a su punto de referencia.

Fig. 8. Error de posición con respecto al centro de la imagen

Para el sensor de estereovisión se realizaron pruebas de posicionamiento de objetos de forma geométrica y no geométrica, en distancias aleatorias entre los 40 y 240 cm para comparar la medida real con la medición realizada por el sistema de estereovisión. El resultado de esta prueba se presenta la Fig. 9, en donde se grafica el promedio de los valores de distancia obtenidos respecto a la medición real. El error promedio en la mediciones realizadas fue de 5.34 cm.

Fig. 9. Error de medición para el sensor de estereovisión implementado.

La estrategia de evasión de obstáculos se ha validado en un escenario recreado con obstáculos y un cruce por puertas. Se observa que la información entregada por el sistema de visión estéreo es efectiva para que la estrategia de campos de potencial funcione correctamente. En la fig. 10 se presentan las imágenes de las pruebas realizadas.

(a) (b) (c)Fig. 10. Resultados de navegación con el sensor de estereovisión (a) Escenario

recreado con obstáculos, (b) Interior de laboratorio (c) Cruce por puerta.

5

Page 6: Navegación autónoma en pasillos usando el punto de fuga y el mapa de disparidad

Latin-American Robotics Symposium LARS 2011

VIII. OBSERVACIONES Y CONCLUSIONES

El robot fue capaz de navegar a través de los pasillos seleccionados para las pruebas. El algoritmo no es afectado por las situaciones en las que el punto de fuga no es detectado, ya que recuerda el último punto detectado, mapeado en su plano coordenado.

La velocidad de procesamiento del algoritmo, así como la capacidad de respuesta del control están íntimamente ligadas con la tasa de cuadros por segundo en la etapa de adquisición, el tamaño de la imagen procesada y la zona muerta definida para la variable de orientación del robot. Una mayor tasa de cuadros por segundo y una imagen de menor resolución tienen un impacto positivo en la duración del algoritmo. Una zona muerta mayor genera mayores oscilaciones en el control de orientación.

Los errores presentados en el algoritmo de detección del punto de fuga son mínimos siempre y cuando los objetos dinámicos detectados en el campo visual se muevan lejos del robot. Cuando estos objetos ocupan gran parte del campo visual de la cámara (oclusión del campo visual), el algoritmo fracasará después de un determinado tiempo, al ser incapaz de detectar las líneas necesarias para encontrar el punto de fuga.

El sensor de estereovisión utilizado para la detección de obstáculos presentó sobredimensionamiento, es decir, el sensor detectaba los objetos por encima de la distancia real a la que éste se encontraba. Sin embargo el error existente en las mediciones no afecta considerablemente el algoritmo de navegación utilizado, y el robot se encuentra en capacidad de evadir efectivamente los obstáculos presentes en el entorno.

Los resultados satisfactorios de este trabajo permiten pensar en una fusión de este método con la información de un mapa a priori del lugar. De esta manera, es posible corregir la odometría, al poder definir referencias en el mapa y contrastar con las posiciones facilitadas por el sistema odométrico. Aún más, es posible utilizar la localización del punto de fuga para estimar las variaciones de orientación del robot, también con el fin de corregir la odometría, ya que ésta presenta los errores más elevados en la variable de orientación.

REFERENCIAS

[1] Bayramoglu Enis, Andersen Nils Axel, Poulsen Niels Kjølstad, Andersen Jens Christian, Ravn Ole , "Mobile Robot Navigation in a Corridor Using Visual Odometry", Prooceedings of the 14th International Conference on Advanced Robotics, 2009.

[2] Rasmussen Christopher, "RoadCompass: following rural roads with vision + ladar using vanishing point tracking", Autonomous Robots, 2008.

[3] Rasmussen Christopher, "Texture-based vanishing point voting for road shape estimation", Darpa grand Challenge, 2004.

[4] Se Stephen, "Zebra-crossing Detection for the Partially Sighted", Computer Vision and Pattern recognition, 2000.

[5] Se Stephen, Brady M., "Vision-based detection of staircases", Fourth Asian Conference on Computer Vision ACCV 2000, 2000.

[6] Tuytelaars Tinne, Proesmans Marc, Van Gool Luc, Mi Esat, "The Cascaded Hough Transform", In Proceedings of ICIP, 1998.

[7] Kasprzak Wlodzimierz, Niemann Heinrich, Wetzel Dirk, "Adaptative road Parameter estimation in monocular image sequences", Proceedings of the conference on British machine vision, 1994.

[8] Collett Toby H. J., MacDonald Bruce A., Gerkey Brian, "Player 2.0: Toward a Practical Robot Programming Framework", Proc. of the Australasian Conf. on Robotics and Automation (ACRA), 2005

[9] Shapiro, L. and Stockman, G., "Computer Vision", Prentice Hall, pp. 326-338, 2001.

[10] Cañas, José María; Leon, Olmo; Calvo, Roberto. (2008). “Reconstrucción 3D visual atentiva para la navegación de un robot móvil” IX Workshop en Agentes Físicos, Vigo, pp 205-212.

[11] Kahora, H; &Suganuma, N. “Obstacle detection base don occupancy grid maps from virtual disparity image”, International JointConference ICROS-SICE, 2009.

[12] Viejo, Diego; &Carloza, Miguel; “Construcción de mapas 3D y extracción de primitivas geométricas del entorno”.

[13] D. Murray, & J. Little. “Using real-time stereo vision for mobile robot navigation” Computer Vision And Pattern Recognition (CVPR'98). Santa Barbara CA, June 1998.

[14] Castillo, M. A.; &Saéz, J. M.; Modelo de sonar de largo alcance basado en tecnología estéreo. [Online] .http://www.dccia.ua.es/~jmsaez/Publicaciones/CongresosNacionales/Modelo%20SLA%20est%E9reo%20WAF%202003.pdf, Agosto 2010.

[15] Pajares, Gonzalo., De la Cruz, Jesus. ”Visión por computador: imágenes digitales y aplicaciones”. Alfaomega Grupo Editor México, 2002.

[16] Mattoccia, Stefanoa. “StereoVision: Algorithms and Aplications”. http://www.vision.deis.unibo.it/smatt/. Octubre 2010.

[17] Zhang, Zhengyou. “A Flexible New Technique for Camera Calibration”,[Online], http://research.microsoft.com/en-us/um/people/zhang/Papers/TR98-71.pdf, Marzo 2010.

[18] Birchfield, Stand; &Tomassi Carlo. “Depth Discontinuities by Pixel-to-Pixel Stereo”, International Journal of Computer Vision 35(3), 269–293 (1999).

[19] Faugeras, Oliver. “Three-Dimensional Computer Vision: a Geometric Viewpoint”, MIT Press, 1993.

6