memoria del programa de doctorado ingeniería informática y...

84
Doctorando: Juan Manuel Sáez Martínez Tutor: Francisco Escolano Ruiz Navegación 3D utilizando información estéreo Memoria del programa de doctorado Ingeniería Informática y Computación Departamento de Ciencia de la Computación e Inteligencia Artificial Universidad de Alicante Octubre del 2001

Upload: others

Post on 13-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Doctorando: Juan Manuel Sáez Martínez

Tutor: Francisco Escolano Ruiz

NNaavveeggaacciióónn 33DD uuttiilliizzaannddoo iinnffoorrmmaacciióónn eessttéérreeoo

MMeemmoorriiaa ddeell pprrooggrraammaa ddee ddooccttoorraaddoo

IInnggeenniieerrííaa IInnffoorrmmááttiiccaa yy CCoommppuuttaacciióónn

Departamento de Ciencia de la Computación e Inteligencia Artificial Universidad de Alicante

Octubre del 2001

Page 2: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he
Page 3: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Prólogo

“El descubrimiento consiste en ver lo que todos han visto y pensar lo que nadie ha pensado” Albert Szent

A Marta, mi amor, mi locura, por ver en mí lo que nadie ha visto.

El autor.

A lo largo de mis estudios como Ingeniero en Informática, posteriormente como doctorando en el programa “Ingeniería Informática y Computación” y sobre mi propia experiencia laboral, he orientado mi especialidad sobre el campo de la Geometría Computacional. Fue a partir de mi “reingreso” en el Departamento de Ciencia de la Computación e Inteligencia Artificial como Ayudante de Escuela Universitaria cuando un buen día (nunca he sabido ni cómo ni por qué) cayó en mis manos una cámara estéreo.

Fue Francisco Escolano, mi tutor, quien pensó que sería buena idea combinar la línea de investigación de Robótica e Inteligencia Artificial con mi experiencia en el campo de las tres dimensiones, siendo el estéreo el vínculo perfecto para tal fin. Y así nació este trabajo, al que he dedicado el segundo curso del programa de doctorado.

En este trabajo presentamos un conjunto de técnicas relacionadas con la navegación utilizando tecnologías 3D, un concepto bastante innovador en el campo de la robótica, del que no existe aún una solución definitiva. En este sentido, presentamos un nuevo enfoque que esperamos que sirva como punto de partida sobre futuros desarrollos.

Quisiera agradecer a mis compañeros del DCCIA el apoyo y los conocimientos que han puesto al servicio de este trabajo. En especial, quisiera expresar mi más sincero agradecimiento a Francisco Escolano, Domingo Gallardo y Miguel Ángel Cazorla, por el tiempo que les he podido robar y por todos los ratos de pizarrón que han tenido que soportar a mi lado.

Solo me queda añadir que espero y deseo que esta temática sea para el lector tan apasionante como lo está siendo para mí.

Juan Manuel Sáez.

Octubre del 2001

Page 4: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he
Page 5: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Índice

I

Índice

Bloque 1: Período Docente 1 Capítulo 1: Contenidos del programa ..........................................................................3

1.1 Introducción .......................................................................................................5 1.2 Agentes Inteligentes y Autónomos ....................................................................7 1.3 Neurobiología del Sistema Visual......................................................................8 1.4 Vida Artificial y Arquitecturas Paralelas ...........................................................9 1.5 Visión Artificial y Síntesis de Imagen .............................................................10

Bloque 2: Período Investigador 11 Capítulo 2: Introducción y objetivos ...........................................................................13

2.1 Técnicas de navegación clásicas ......................................................................15 2.2 Navegación utilizando tecnologías 3D ............................................................19 2.3 Objetivos ..........................................................................................................23

Capítulo 3: Modelos de sensor y robot ........................................................................25

3.1 Modelo de sensor .............................................................................................27 3.1.1 Introducción a la visión estereoscópica ...............................................27 3.1.2 La cámara Digiclops®.........................................................................29 3.1.3 Vistas 3D .............................................................................................32

3.2 Modelo de robot ...............................................................................................34 Capítulo 4: Mapeado 3D ...............................................................................................37

4.1 El proceso en general .......................................................................................39 4.2 Distancia entre dos vistas .................................................................................41 4.3 Determinación del emparejamiento entre dos vistas........................................43 4.4 Optimización del proceso.................................................................................46 4.5 Modelado final del mapa .................................................................................49

Page 6: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

II

Capítulo 5: Localización 3D .........................................................................................55 5.1 Introducción .....................................................................................................57 5.2 Probabilidad asociada a una muestra ...............................................................58 5.3 El algoritmo CONDENSATION .....................................................................59 5.4 Optimización del proceso.................................................................................62 5.5 Experimentos: validación del método..............................................................64

Experimento 1 ............................................................................................64 Experimento 2 ............................................................................................65 Experimento 3 ............................................................................................68 Experimento 4 ............................................................................................68

Capítulo 6: Conclusiones y trabajo futuro..................................................................71

6.1 Conclusiones ....................................................................................................73 6.2 Trabajo futuro...................................................................................................74

Bibliografía.....................................................................................................................75

Page 7: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

1

Bloque 1 Período Docente

Page 8: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

2

Page 9: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 1 Contenidos del programa

- 3 -

Capítulo 1 Contenidos del programa

En este capítulo se resumen los distintos contenidos de las asignaturas que, en mi caso, han constituido el primer curso (período docente) del programa de doctorado “Ingeniería Informática y Computación”, haciendo hincapié fundamentalmente en las contribuciones que han tenido éstas sobre el trabajo desarrollado en el período investigador.

Tras una breve introducción al tema relataremos los contenidos de cada una de las asignaturas.

Page 10: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 4 -

Page 11: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 1 Contenidos del programa

- 5 -

1.1 Introducción

A lo largo de mis estudios como Ingeniero en Informática en la Universidad de Alicante (1994-1999), tuve la ocasión de conocer las distintas áreas de conocimiento que constituyen esta interesante ciencia.

Sobre los últimos cursos de esta titulación aparecen las asignaturas optativas y de libre elección, mediante las cuales tuve oportunidad de decantarme por las áreas que mayor interés me despertaron. En mi caso, escogí asignaturas propias del área de Ciencia de la Computación e Inteligencia Artificial tales como Gráficos, Robótica, Ampliación de Inteligencia Artificial, Fundamentos de la Computación Gráfica, etc... vinculadas al Departamento de Ciencia de la Computación e Inteligencia Artificial.

Ya en el último año de la titulación cursé una beca de colaboración del Ministerio de Educación y Cultura en el DCCIA y realicé allí mi proyecto de fin de carrera titulado “Sistemas de Representación de Blobs”, tutelado por Juan Antonio Puchol García. La temática de dicho proyecto se encuentra enmarcada dentro de la informática gráfica (Gráficos, Geometría Computacional, etc...) Los resultados del proyecto fueron presentados en dos ponencias [SÁE99] [PUC99] en el IX Congreso Español de Informática Gráfica, celebrado en Jaén en Junio de 1999, con la ayuda de Rafael Molina Carmona.

Una vez concluida la carrera, comencé a trabajar en el Departamento de CAD/CAM de INESCOP (Instituto Tecnológico del Calzado), situado en Elda (Alicante). En dicho departamento tuve la oportunidad de ampliar mis conocimientos en geometría computacional participando en el proyecto europeo de transferencia tecnológica (RTT) “Footwear Design and Manufacturing”.

Con objeto de continuar mis estudios, realicé durante ese mismo año el primer curso del programa de doctorado “Ingeniería Informática y Computación”, completando en Junio del 2000 los 20 créditos que lo componen, cursando las asignaturas:

• Agentes Inteligentes y Autónomos • Neurobiología del Sistema Visual • Vida Artificial y Arquitecturas Paralelas • Visión Artificial y Síntesis de Imagen

La selección de dicho programa fue obvia, debido a que los contenidos del mismo encajaban perfectamente dentro de mi especialidad.

A partir del trabajo de ampliación presentado en la asignatura “Visión Artificial y Síntesis de Imagen” de dicho programa, realizamos otra aportación [SÁE00] al Congreso Español de Informática Gráfica en su X edición en Castellón, en Junio del año 2000.

Fue en Octubre del 2000 cuando ingresé en el Departamento de Ciencia de la Computación como Ayudante de Escuela Universitaria y abandoné mi trabajo en INESCOP. Durante ese año continué con el segundo curso del

Page 12: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 6 -

programa de doctorado tutelado por Francisco Escolano Ruiz, eligiendo la asignatura de proyecto que más se ajustaba a mi perfil: “Investigación en Visión y Robótica”. El trabajo realizado en dicha asignatura se relatará detalladamente en el segundo bloque de este informe. Parte de dicho trabajo (lo relativo a la técnica de mapeado) ha sido presentado en una ponencia [SÁE01] a la IX Conferencia de la Asociación Española para la Inteligencia Artificial (CAEPIA 2001), celebrada en Gijón en Noviembre de 2001.

A continuación, relataré resumidamente los contenidos de las cinco asignaturas que componen el primer curso del programa.

Page 13: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 1 Contenidos del programa

- 7 -

1.2 Agentes Inteligentes y Autónomos (AIAU)

Tipo

Optativa, 6 créditos

Profesor responsable

Dr. Domingo Gallardo López. Departamento de Ciencia de la Computación e Inteligencia Artificial. Escuela Politécnica Superior.

Descripción

Los contenidos de la asignatura se centran en la navegación de robots. En este sentido, se ahondan en las distintas técnicas clásicas que se engloban dentro de la navegación: desde las conductas reactivas hasta la planificación, mapeado, localización, etc...

Evaluación

La evaluación de la asignatura se realizó mediante la entrega de dos prácticas. En la primera se implementaron distintas conductas sobre el simulador de robots “saphira”. En la segunda, se diseñaron las conductas de un equipo de fútbol sobre el simulador “Robocup”. Cabe destacar que la evaluación se efectuó mediante una pequeña “liga” entre los equipos construidos por los alumnos de la asignatura (muy divertida).

Calificación

Superada en la convocatoria de Junio del 2000 con la calificación de Notable.

Contribuciones al proyecto de investigación

Esta es, sin duda alguna, una de las asignaturas que más conocimientos me ha aportado en el desarrollo del proyecto de investigación. Esto se debe a que mi aportación en el proyecto se basa en trasladar los conceptos de la navegación clásica basada en sónares que se expone en esta asignatura hacia modelos de sensor más avanzados basados en tecnologías 3D. En este sentido, resulta imprescindible partir de unas ideas sólidas sobre las técnicas que se pretenden adaptar.

Page 14: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 8 -

1.3 Neurobiología del Sistema Visual (NSV)

Tipo

Libre configuración (Programa de Biotecnología. Facultad de Ciencias), 3 créditos

Profesor responsable

Dr. Joaquín de Juan Herrero. Departamento de Biotecnología. Facultad de Ciencias.

Descripción

Los contenidos de la asignatura se centran en el estudio de la visión humana desde un punto de vista neurológico. Dicho de otro modo, se trata de una descripción física del proceso de la visión.

Evaluación

La evaluación de la asignatura se realizó teniendo en cuenta tanto la asistencia del alumno a clase como la entrega de un trabajo adicional. Dicho trabajo consistió, en la mayoría de los casos, en una documentación sobre alguno de los temas de investigación actuales en el campo de la visión humana. En mi caso, realicé un trabajo sobre el artículo "Three-dimensional object recognition based on the combination of views". Dicho artículo plantea un método para el reconocimiento de objetos basado en combinaciones de varias imágenes de los mismos. El autor realiza un símil entre la técnica descrita y el proceso de visión humana.

Calificación

Superada en la convocatoria de Junio del 2000 con la calificación de Sobresaliente.

Contribuciones al proyecto de investigación

El modelo de sensor planteado en el proyecto de investigación está basado en la tecnología estereoscópica. Dicha tecnología se basa en que es posible captar la información 3D de una escena a partir de dos o más vistas de la misma. Este modelo está inspirado en el proceso biológico de la visión. En este sentido, comprender el proceso de la visión ayuda a comprender las técnicas de visión estereoscópica.

Page 15: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 1 Contenidos del programa

- 9 -

1.4 Vida Artificial y Arquitecturas Paralelas (VAAP)

Tipo

Optativa, 8 créditos.

Profesor responsable

Dr. Juan Manuel García Chamizo. Departamento de Tecnología Informática y Computación. Escuela Politécnica Superior.

Descripción

Los contenidos de esta asignatura son ampliamente heterogéneos. Cada alumno fue asignado a un proyecto de investigación con un tutor responsable del departamento. La idea, por tanto, no consistía en aportar conocimientos particulares sobre una materia genérica sino en colocar al alumno en un ámbito investigador real.

Evaluación

La evaluación de la asignatura se basó en un informe presentado por el alumno describiendo su trabajo dentro del proyecto asignado. En mi caso, elaboré un informe titulado “Digitalización de Hormas por Computador”, tutelado por Andrés Fuster Guilló (Dpto. de Tecnología Informática y Computación). Dicho trabajo se enmarca dentro de la geometría computacional.

Calificación

Superada en la convocatoria de Junio del 2000 con la calificación de Notable.

Contribuciones al proyecto de investigación

La digitalización de objetos 3D tiene un importante paralelismo con las técnicas de visión estereoscópica. De hecho, el problema es el mismo: la captación y el modelado de un entorno 3D. En el trabajo se describen dos modelos, el modelo clásico del palpador y un nuevo modelo en experimentación basado en tecnologías ópticas (láser). Casualmente, en la experimentación actual en sensores 3D para la navegación de robots se vienen usando dos tendencias: la visión estereoscópica y los escáner de rango. Estos últimos están basados en la misma tecnología que los modelos de digitalización óptica. En este sentido, el trabajo me ha servido para poder comprender otras tendencias de navegación con sensores 3D distintas a la que planteo en el trabajo.

Page 16: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 10 -

1.5 Visión Artificial y Síntesis de Imagen (VASI)

Tipo

Optativa, 4 créditos.

Profesor responsable

Dr. Ramón Rizo Aldeguer. Departamento de Ciencia de la Computación e Inteligencia Artificial. Escuela Politécnica Superior.

Descripción

Los contenidos de esta asignatura abarcan el tratamiento de imagen (bajo, medio y alto nivel) y el modelado 3D. En este sentido, uno de los modelos estudiados en las técnicas de imagen de alto nivel es el de la visión estéreo.

Evaluación

La evaluación de la asignatura se realizó teniendo en cuenta la asistencia del alumno a clase y un trabajo adicional. En mi caso, presenté un trabajo propio de la parte de modelado 3D con el nombre de “Adaptación del PRM sobre superficies libres. Aplicación a entornos CAD/CAM”. Dicho trabajo fue presentado posteriormente al CEIG 2000 (ver apartado de introducción).

Calificación

Superada en la convocatoria de Junio del 2000 con la calificación de Sobresaliente.

Contribuciones al proyecto de investigación

Las contribuciones de esta asignatura sobre el proyecto de investigación son más que evidentes. En esta asignatura amplié mis conocimientos tanto de visión estereoscópica como de modelado 3D, imprescindibles en el desarrollo de este trabajo.

Page 17: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

11

Bloque 2 Período Investigador

Page 18: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

12

Page 19: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 2 Introducción y objetivos

- 13 -

Capítulo 2 Introducción y objetivos

En este capítulo comenzaremos resumiendo el marco histórico de las soluciones conocidas a los problemas de mapeado y localización (subproblemas básicos en la navegación de robots). Esta introducción se realizará desde el punto de vista del modelo de sensor, que como veremos, afecta directamente a la resolución del problema y a la calidad de los resultados. En este sentido, repasaremos desde las soluciones clásicas utilizando sensores de tipo sónar hasta las soluciones más actuales, basadas en tecnologías 3D.

Una vez definido el marco investigador en el que nos encontramos, concluiremos el capítulo detallando los objetivos y aportaciones que se pretenden cubrir con este trabajo.

Page 20: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 14 -

Page 21: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 2 Introducción y objetivos

- 15 -

2.1 Técnicas de navegación clásicas

La navegación es un problema clásico en la construcción de robots móviles operando en entornos desconocidos y no estructurados. Los primeros pasos hacia la resolución del problema consisten en construir un mapa del entorno desconocido (mapeado) para posteriormente localizarse dentro de dicho entorno (localización). La percepción es un elemento crítico en la resolución de estos problemas. En este sentido, la calidad de un mapa extraído de forma automática de un entorno así como la posterior utilización de dicho mapa, dependerán directamente de la cantidad y calidad de información percibida por el móvil.

Las soluciones tradicionales a los problemas de navegación se basan en la utilización sensores de tipo sonar (figura 1).

Figura 1: Sensor de tipo sonar.

Estos sensores poseen numerosas ventajas como por ejemplo su reducido coste y la elevada velocidad de respuesta. Además, como elementos de captación clásicos, existen multitud de soluciones a los problemas de navegación utilizándolos como elementos básicos de captura de entorno [KOR98] [GAL99].

En contrapartida, poseen numerosos inconvenientes:

• Las lecturas son poco fiables, debido a posibles rebotes de la señal (figura 2).

• La información que se obtiene es muy reducida, ya que solamente recoge la distancia sin mayor información sobre el obstáculo como por ejemplo el color o la textura.

• Se trata de sensores de corto alcance (3-4 mts) por lo que su marco de aplicabilidad se reduce a espacios cerrados (típicamente ambientes de oficina).

Figura 2: Distintos casos en los que un sonar provoca una lectura incorrecta.

Page 22: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 16 -

Por la propia naturaleza de este tipo de sensores, no es posible utilizarlos para obtener un mapa 3D realista de una escena. La información final del entorno se modela normalmente con un mapa de ocupación 2D (Figura 3).

Figura 3: Ejemplos de mapeado de entornos utilizando sensores de tipo sónar. Ejemplos extraídos de [DIE97] (izquierda) y de la aplicación MINERVA [THR00] (derecha).

El proceso de mapeado con sónares se puede resumir de la siguiente forma: Realizamos una trayectoria del móvil por el entorno, recogiendo el conjunto de lecturas de sus sónares en cada posición. A continuación se divide el entorno en un grid bidimensional. Cada casilla de dicho grid recoge el conjunto de lecturas que ha caído en esa porción de espacio. La probabilidad de ocupación de cada casilla es directamente proporcional al número de lecturas recogidas en ésta.

Este procedimiento de mapeado tiene sentido cuando se conoce el movimiento del móvil en cada uno de los momentos en los que se capturan los datos. En este sentido, cuando el movimiento es guiado, podemos almacenarnos todos los movimientos incrementales transferidos al móvil para conocer la posición relativa de cada toma y así construir el mapa. El problema de este procedimiento es que cada movimiento lleva consigo un cierto error. Dependiendo de la calidad de los dispositivos de movimiento este error se acentuará más o menos en todos los procesos de navegación. Un efecto muy común es que pasillos o paredes rectas aparezcan en nuestro mapa arqueadas o que una zona del mapa por la que pasemos dos veces aparezca la segunda vez trasladada. A estos efectos se les denomina errores de odometría y existen técnicas para corregirlos tales como el algoritmo EM [DEM77] aplicadas al problema en concreto del mapeado [GAL99].

Una vez construido el mapa, para poder movernos por el mismo, es necesario resolver el problema de la localización. Dicho problema consiste en estimar la posición del móvil dentro del mapa precalculado, únicamente con la información de sus sensores. Esto nos servirá tanto para saber dónde se encuentra el robot inicialmente como para que no pierda en ningún momento el conocimiento sobre su posición. Este segundo factor es tan importante como el primero puesto que, aunque sepamos a ciencia cierta la posición inicial del móvil, los errores de odometría hacen que después de varios movimientos, no podamos estimar con exactitud nuestra posición actual.

Page 23: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 2 Introducción y objetivos

- 17 -

Existen numerosas técnicas para solucionar el problema de la localización, entre las que podemos destacar las basadas en filtros de partículas. La idea consiste en esparcir por el mapa un conjunto de muestras que representan posiciones posibles de nuestro robot. De cada muestra se calcula la probabilidad con la que nuestro robot podría estar colocado en dicha posición. En función de la probabilidad de cada muestra, se eligen o no para formar parte de la siguiente generación, de forma que al final del proceso, solo las mejores muestras perduran, y se concentran sobre la posición del robot. El algoritmo más conocido para realizar este procedimiento es el de CONDENSATION [ISS98], el cual ha sido aplicado con éxito en varias ocasiones para la localización de robots utilizando mapas de ocupación 2D [BUR96][GAL98].

Figura 4: Ejemplo de localización usando filtros de partículas extraído de [BUR96]. Mapa de ocupación(izquierda), mapa de probabilidad tras 7 pasos (centro) y tras 12 pasos (derecha).

Como vemos, aunque existe un campo de investigación bastante desarrollado sobre la navegación utilizando sensores de tipo sónar, aún existen numerosos inconvenientes al respecto.

• Con el sónar no es posible capturar más información propia del entorno como es el color o la textura de los objetos.

• Con la información obtenida por el sónar solamente es posible construir mapas bidimensionales, cuando el entorno en el que se mueve el robot es tridimensional. En este sentido estamos perdiendo la información de altura de los objetos.

• El reducido alcance del sónar (3-4 mts) hace que no sea posible su utilización fuera de espacios in-door (típicamente espacios de oficina).

Estas deficiencias en la cantidad y calidad de información obtenida con el sonar producen deficiencias en todo el proceso de navegación:

• El proceso de mapeado resulta complicado y los errores de odometría se vuelven críticos.

• En la localización se producen profundas ambigüedades, puesto que al manejar poca información, suele pasar que la mayoría de los lugares “se parezcan” demasiado. Esto provoca que solo sea posible asegurar la localización llevando al robot hacia lugares singulares (esquinas, cuadrantes, etc...).

Page 24: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 18 -

Ante estos inconvenientes surge la necesidad de encontrar sensores más sofisticados que extraigan más y mejor información del entorno. En este sentido, podemos obtener información 3D de una escena con otro tipo de sensores, tales como la tecnología estéreo o los escáners de rango. Mediante la tecnología estéreo se obtiene, además, la información de color de los objetos.

Page 25: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 2 Introducción y objetivos

- 19 -

2.2 Navegación utilizando tecnologías 3D

En 1996, Moravec [MOR96] planteó la posibilidad de utilizar la visión estéreo para componer varias vistas 3D de una escena conociendo las transformaciones sufridas por la cámara. De esta forma se puede componer lo que él llamó un “3D evidence grid”, esto es, un mapa de ocupación clásico pero en tres dimensiones:

Figura 5: Ejemplo de composición de un mapa de ocupación 3D (derecha) a partir de varias vistas (izquierda). Figura extraída de [MOR96]

En el trabajo de Moravec se detalla un sistema completo de captación, desde el algoritmo estéreo utilizado (calibrado de cámaras y cálculo de disparidad) hasta la composición de mapas de probabilidad 3D. El trabajo concluye con una serie de conclusiones sobre las posibles repercusiones de este nuevo modelo de mapas en el campo de la robótica. El amplio desarrollo sobre las técnicas de visión estereoscópica con el que contamos en la actualidad [POL01] hace cada vez más lógica la utilización de esta tecnología en aplicaciones de la robótica.

La aparición de esta tercera dimensión en el elemento sensor hace que podamos contar con una cantidad de información mucho mayor, lo que presumiblemente ha de mejorar los procesos de navegación. Haciendo una metáfora con el ser humano, la visión del mundo utilizando sónares es similar a la de una persona moviéndose a lo largo de un entorno sin iluminación alguna, extendiendo sus brazos para palpar los objetos. La poca información facilitada hace que le sea más complicado hacerse una idea del entorno completo y que aún conociendo dicho entorno sea bastante tedioso localizarse en él. En contrapartida, mediante la tecnología estéreo, tenemos una información más cercana a la visión humana, lo que hace posible un mapeado más realista y robusto y una localización más rápida.

La aparición de este nuevo sensor hace que sea necesario replantearse las técnicas clásicas de navegación. En este trabajo presentamos unas primeras soluciones al problema del mapeado y la localización utilizando visión estereoscópica. Mediante experimentos realizados sobre entornos reales podremos contrastar qué ventajas aporta este nuevo modelo de sensor.

Page 26: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 20 -

La investigación actual sobre el mapeado de entornos usando información estéreo sigue distintas tendencias. Por un lado, existe la posibilidad de utilizar las técnicas conocidas de reconstrucción de mapas 2D utilizando información estéreo, reduciendo la vista 3D a un conjunto de puntos coplanares [MUR98] formando una especie de sónar de largo alcance. Para ello, se toma un representante por cada columna de la imagen de disparidad, que viene dado por el máximo. De esta forma se consigue un conjunto de lecturas con la misma naturaleza geométrica que un sonar. Con este modelado previo, podemos utilizar este sensor directamente con las técnicas existentes de navegación.

Figura 6: Ejemplo de modelado con un sónar de largo alcance. Extraído de [MUR98].

Las ventajas de este modelo son las siguientes:

• La cantidad de información, pese a ser del mismo tipo, es mayor, puesto que al utilizar, por ejemplo, imágenes de tamaño 320x200, el resultado es similar a utilizar 320 sónares.

• La fiabilidad de las lecturas es mayor a la de un sónar, puesto que cada lectura se obtiene a partir de todas las lecturas válidas de cada columna.

Pese a estas ventajas, los resultados obtenidos no difieren mucho de los trabajos realizados con sónar. La ventaja radica, principalmente, en la comodidad de contar con un modelo de sensor con menor error, lo cual facilita enormemente la implementación de los algoritmos de navegación. En el trabajo [CAS01] podemos observar un ejemplo de la facilidad con la que pueden implementarse determinadas conductas reactivas utilizando este modelo de sensor.

Otra tendencia significativa en este campo consiste en utilizar la información 3D para reconocer distintas primitivas geométricas del entorno,

Page 27: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 2 Introducción y objetivos

- 21 -

tales como paredes y suelos, utilizando la transformada de Hough [IOC00]. A partir del movimiento trasferido a los motores del robot, se realiza un ajuste geométrico con la información de las primitivas de cada escena, con el fin de eliminar los errores de odometría y así alinear correctamente el mapa. Posteriormente es posible obtener la textura original de cada primitiva, con lo que el resultado es sorprendente.

Figura 7: Ejemplos de mapeado mediante detección de primitivas geométricas simples. Imágenes obtenidas de [IOC00]

El problema del método es que es no puede aplicarse a cualquier entorno sino a espacios cerrados compuestos por planos (espacios de oficina) en los que pueden encontrarse primitivas que responden a un patrón fijo (techos, suelos y paredes).

La navegación de robots utilizando información 3D no solamente se centra en la tecnología estéreo. De hecho, una tendencia actual muy significativa en este campo es la utilización de escáners de rango:

Los escáners de rango son elementos de captación 3D basados en tecnologías ópticas (típicamente láser). Como elementos de captación son mucho más sofisticados que los basados en tecnología estéreo. En este sentido, tanto el alcance como la cantidad y calidad de información que proporcionan, es mucho mayor (lecturas más densas y más exactas). Además, no son sensibles a zonas poco texturizadas como ocurre con la tecnología estéreo aunque, en contrapartida, sí lo son a materiales reflectantes.

Existen trabajos relacionados con la utilización de escáners de rango para la construcción de mapas 3D realistas de una escena [LIU01] [SEQ99]. En general, el problema consiste en unir de forma exacta varias vistas de una escena conociendo el movimiento de cámara y corrigiendo el error de odometría mediante algoritmos como el EM [DEM77].

Page 28: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 22 -

Figura 8: Escáner de rango (izquierda) y una escena obtenida con esta tecnología (derecha). Imágenes extraídas de [SEQ99].

La información obtenida de un escáner de rango tiene paralelismos con la de un sistema estéreo. En este sentido, la información final que se obtiene es una nube de puntos con la misma naturaleza geométrica en ambos métodos. Sin embargo, en la visión estéreo existe una correspondencia entre cada punto y su píxel correspondiente en la imagen de referencia. Esto significa que, además de la información 3D de cada punto, tenemos su color. Esto no ocurre en un escáner de rango puesto que, por propia naturaleza únicamente capta las distancias a los distintos objetos. Como veremos más adelante, el color es un elemento distintivo que hace que los procesos de navegación sean mucho más robustos.

Además de este inconveniente, los escáners de rango son sumamente costosos en comparación con otras tecnologías como la visión estéreo. Este problema hace que su utilización se vea bastante restringida.

Además del mapeado, existen técnicas de localización en entornos 3D, que siguen políticas similares a las que se usaban en la localización con sónares. En este sentido, en el trabajo [THR01] se detalla un algoritmo de localización basado en filtros de partículas, llamado localización de Monte Carlo, el cual se pone a prueba utilizando distintos modelos de sensor: un anillo de sónares, una cámara digital y un escáner de rango.

En este sentido, se pone de manifiesto la posibilidad de utilizar una misma técnica de localización con distintos modelos de entrada datos. Lo que queda un poco en el aire es cómo aprovechar la información adicional de estos nuevos sensores, como por ejemplo la información de altura o la componente de color de los puntos.

Aunque estén fuera de nuestro estudio, es oportuno añadir que existen otros modelos de localización que no están basados en modelos geométricos sino en imágenes [KRÖ01]. Estos modelos, a grosso modo, consisten en obtener gran cantidad de imágenes del entorno (típicamente panoramas) y buscar entre ellas la más parecida a la que ve el robot para localizarlo. Aunque este tipo de técnicas son bastante novedosas y despiertan un gran interés, en este trabajo nos centraremos en técnicas geométricas, puesto que tienen una aplicación práctica mucho más directa.

Page 29: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 2 Introducción y objetivos

- 23 -

2.3 Objetivos

En este trabajo detallaremos una nueva solución a los problemas de mapeado y localización utilizando un modelo de sensor basado en la visión estereoscópica. En este sentido, las diferencias fundamentales con otros sistemas como los que se han relatado son las siguientes:

Con respecto al problema del mapeado, las técnicas conocidas parten del conocimiento sobre el movimiento real del robot. En este sentido, el problema consiste en eliminar el error de odometría producido en el movimiento. Por tanto, no podremos realizar el mapeado cuando, o bien el error de odometría sea excesivo (la diferencia entre el movimiento real y el requerido sea muy grande) o cuando, simplemente, no conozcamos el movimiento del robot (la cámara está guiada por una persona y no por un robot, por ejemplo).

El problema del mapeado y el de la localización están estrechamente ligados. En ambos problemas es necesario conocer la trayectoria del robot. Esto se debe a que la localización es un proceso dinámico, en el cual acumulamos el conocimiento sobre la posición del robot en base a una trayectoria por el mapa. Si no conocemos las transformaciones de la trayectoria no podremos localizarnos.

Para solucionar estos problemas, la técnica de mapeado que proponemos no utiliza en ningún momento información a cerca del movimiento real del robot. En su lugar, se estima dicho movimiento en base a la información obtenida por la cámara en cada paso de trayectoria, utilizando un esquema de minimización de energías. La estimación del movimiento de cámara nos servirá tanto para realizar el mapeado como para localizarnos posteriormente sobre dicho mapa.

Esta nueva visión de los problemas de mapeado y localización sin conocer el movimiento del robot, abre un nuevo marco de aplicación a los problemas de navegación. En este sentido, estas técnicas se podrían incorporar sobre sistemas móviles cuyo movimiento no podemos guiar. Imaginemos, por ejemplo, un sistema de localización que no está guiado por un robot sino por un ser humano. La persona es la portadora de la cámara y la que decide su libre movimiento por el entorno y el sistema tiene que informarle en cada momento de dónde se encuentra. En este ejemplo, el sistema no puede medir el movimiento del dispositivo móvil que alberga la cámara, por lo que la localización no podría efectuarse sin estimar dicho movimiento.

Otro factor a tener en cuenta es el tipo de entorno sobre el que queremos movernos. En este sentido, la mayoría de las técnicas existentes están construidas para operar en entornos in-door, esto es, espacios de oficina y similares. Esto se debe, o bien porque el sistema de captación tiene un alcance limitado, o bien porque el modelado del entorno se realiza detectando las primitivas geométricas que lo componen (paredes, techos, suelos, etc...). En ambos casos, las restricciones tanto del sistema de captación como de la propia técnica, impiden poder resolver el problema en un espacio abierto.

Page 30: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 24 -

Ante este problema, las soluciones que planteamos en este trabajo están libres de restricciones, esto es, que no se realizan asunciones sobre la geometría del terreno. Además, puesto que están basadas en la tecnología estéreo, el alcance del elemento sensor permite su utilización en espacios relativamente abiertos. Todo ello permite que las técnicas estén planteadas de forma genérica sobre cualquier entorno.

Los modelos que vamos a relatar utilizan, además de las coordenadas 3D, el color o nivel de gris como elemento discriminante entre dos puntos. Como veremos, este nuevo concepto permite que las técnicas se comporten de una forma mucho más robusta. Por otro lado, incluiremos distintas técnicas para que el procesado de los datos sea eficiente, tales como las vistas reducidas o los mapas de vecindad.

Resumiendo, nuestros objetivos son los siguientes:

1) Plantear un modelo de sensor eficiente basado en la visión estereoscópica.

2) Plantear un método de mapeado 3D de un entorno utilizando dicho sensor sin realizar asunción alguna sobre la geometría del mismo y sin información sobre el movimiento de cámara.

3) Plantear un método para resolver el problema de la localización en mapas 3D, utilizando el modelo de sensor propuesto.

4) Plantear los métodos y las estructuras de datos necesarias para poder trabajar con estas técnicas eficientemente desde el punto de vista del tiempo de cómputo.

5) Validar los métodos propuestos realizando experimentos sobre datos reales.

A lo largo de los siguientes capítulos detallaremos el modelo de sensor y las técnicas de mapeado y localización propuestos.

Page 31: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 3 Modelos de sensor y robot

- 25 -

Capítulo 3 Modelos de sensor y robot

En este capítulo hablaremos del modelo de sensor que utilizaremos en el desarrollo de las técnicas de mapeado y localización que se proponen. Como hemos visto, el modelo de sensor afecta directamente a la construcción y a los resultados de las técnicas de navegación. También hablaremos del modelo de robot utilizado, atendiendo sobre todo a su geometría de movimiento.

Page 32: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 26 -

Page 33: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 3 Modelos de sensor y robot

- 27 -

3.1 Modelo de sensor

En este apartado hablaremos del modelo de sensor propuesto. Dicho modelo se basa en la tecnología estereoscópica, por lo que comenzaremos realizando una introducción a dicha tecnología.

3.1.1 Introducción a la visión estereoscópica

Las técnicas de visión estéreo se basan en la posibilidad de extraer la información 3D de una escena a partir de dos o más imágenes obtenidas de la misma desde distintos puntos de vista. Nos centraremos en el caso básico con dos imágenes:

Dadas dos imágenes pertenecientes a una escena desde dos puntos de vista distintos, el problema consiste en calcular una función de correspondencia de cada píxel de una imagen con su correspondiente en la otra.

Situémonos en el caso de dos cámaras, perfectamente alineadas, cuyos objetivos se encuentran paralelos entre sí. En este caso, la zona de búsqueda de cada píxel de la cámara izquierda (en adelante referencia) se reduce a su misma fila en la cámara derecha. Esto puede hacerse siempre que ambas cámaras se encuentren rectificadas (eliminación del efecto “ojo de pez” que produce el objetivo).

Figura 1: Imagen en bruto obtenida por una cámara (izquierda) y su rectificación (derecha)

A una fila de una imagen y su correspondiente fila en la otra imagen se le denomina “línea epipolar”. Nuestro objetivo es calcular para cada píxel de la imagen de referencia su correspondiente en la otra imagen sobre su misma línea epipolar. Una vez encontrado, dichos píxeles se situarán sobre la misma fila pero en distintas columnas, debido a la separación de las cámaras. La diferencia absoluta entre las columnas se denomina disparidad. Cuanto mayor sea la distancia a la que se sitúa el objeto de la cámara, menor será la disparidad y viceversa (Figura 2).

Page 34: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 28 -

Figura 2: Ejemplo de un par estéreo obtenido de una escena. Puesto que las imágenes se han tomado desde distintas perspectivas, las figuras aparecen en distinta posición. La diferencia de

posición es mayor cuanto más cerca se encuentra el objeto.

Puesto que la disparidad es un valor entero, es posible representarla en forma de imagen (en adelante imagen de profundidad o de disparidad), asociando a cada píxel un valor de gris en función de su valor de disparidad (figura 3).

Figura 3: Imagen de disparidad obtenida del par de imágenes de la figura 2. Los niveles más claros representan disparidades más altas (cercanía) y los más oscuros más bajas (lejanía).

Conjugando la información geométrica de las cámaras (distancia focal, resolución, ángulo de distorsión, etc..) con el valor de disparidad, existe una relacción directa entre dicho valor y la distancia en metros a la que se encuentra el objeto de las cámaras. Al proceso de cálculo de las constantes geométricas de la cámara se le denomina calibrado.

Figura 4: Distintas perspectivas de una vista 3D obtenida a partir de la imagen de profundidad de la figura 3. El objeto rojo representa la propia cámara.

Línea epipolar

Page 35: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 3 Modelos de sensor y robot

- 29 -

De esta forma, la disparidad es una medida de profundidad, que en función de la geometría de la cámara, se puede traducir a coordenadas dentro de un espacio euclídeo donde el centro de coordenadas es el objetivo de la imagen de referencia (figura 4).

La pieza clave en un sistema estéreo es el algoritmo de cálculo de la disparidad. Actualmente existen tres tendencias entre las soluciones a este problema:

Algoritmos basados en el uso de primitivas: Realizan el cálculo de la correspondencia solamente para un conjunto significativo de puntos de la imagen, tales como bordes o aristas. Se trata normalmente de algoritmos bastante robustos, en el sentido de que las correspondencias encontradas son muy seguras. Además, suelen ser muy rápidos puesto que manejan poca información. En contrapartida, la densidad de la imagen de profundidad es muy baja (resultado pobre). Podemos encontrar un buen ejemplo de este tipo de algoritmos en el trabajo de Moravec [MOR96].

Algoritmos de correlación: La puesta en correspondencia de puntos en ambas imágenes se realiza utilizando un criterio de correlación de ventanas, para identificar zonas similares en ambas imágenes. Este tipo de algoritmos se ha desarrollado mucho en la actualidad, por lo que es muy común encontrarlos en distintas aplicaciones. El problema fundamental que presentan es que son muy sensibles a zonas poco texturizadas. Podemos encontrar claros ejemplos de este tipo de algoritmos en [MOR81] y [DAN00].

Algoritmos basados en minimización de energías: Se busca la función de correspondencia que hace mínima una determinada función de energía. De esta forma, se asegura que dicha función es lo más suave posible. Actualmente son los algoritmos que mejor resultado ofrecen, en el sentido de que la imagen de profundidad obtenida es altamente densa (muchas correspondencias). El problema de estos algoritmos es que, por lo general, son muy costosos desde el punto de vista del tiempo de cómputo. Podemos encontrar buenos ejemplos de este tipo de algoritmos en [AVL00] y [COX96].

3.1.2 La cámara Digiclops®

Para el desarrollo de este trabajo hemos utilizado como sistema de captura de imágenes estéreo la cámara Digiclops™, desarrollada por el UBC Laboratory of Computational Intelligence y distribuida por Point Grey Research Inc.

Figura 5. Sistema de captura de imágenes estéreo Digiclops™.

Page 36: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 30 -

Se trata de un sistema trinocular calibrado mediante el método [TSA87] en el que las cámaras se disponen formando un triángulo rectángulo. La resolución máxima de las cámaras es de 640x480 pixels y el sistema es capaz de extraer hasta 14 frames por segundo y por cámara.

El sistema contiene dos librerías: Digiclops API [POI00], y Triclops SDK [POI98]. Digiclops es la encargada del control directo de cámara y el tratamiento a bajo nivel de imagen (rectificación de imágenes, filtrados de iluminación y cálculo de aristas). Sobre las imágenes tratadas obtenidas de Digiclops, Triclops se encarga de proporcionar un conjunto de funciones de alto nivel para el tratamiento estéreo (cálculo de la disparidad, filtrado de disparidad e interpolación sub-pixel).

Figura 6: Ejemplos de operaciones sobre una imagen con Digiclops. Imagen de entrada (izquierda), rectificada (centro) y aristas (derecha).

La librería Triclops SDK ha sido desarrollada utilizando básicamente un algoritmo de correlación, pero ponderando cada imagen con sus aristas. De esta forma, se consigue que el algoritmo se comporte de una forma más robusta, del estilo de los algoritmos basados en primitivas, pero conservando la densidad de estéreo de un algoritmo de correlación. La disparidad d de un punto (x,y) de la imagen de referencia es aquella que hace mínima la expresión:

[ ][ ] [ ][ ]jydixIjyixI lr

m

mj

m

mi

d

dd+++−++∑∑

−=−==

2/

2

2/

2

max

min

min (3.1)

Donde:

• m es el tamaño de la ventana de correlación. • dmin y dmax son, respectivamente, las disparidades mínima y máxima

permitidas. • Ir e Il son, respectivamente las imágenes derecha e izquierda. La utilización de tres cámaras en vez de dos (como suele ser habitual)

hace posible que la disparidad pueda ser calculada en dos sentidos, horizontal (izquierda y derecha) y vertical (arriba e izquierda). Combinando las dos imágenes de disparidad resultantes se obtiene una imagen de disparidad final de mayor calidad. Esto se ha conseguido siguiendo el procedimiento descrito en [OKU93].

Además, el sistema proporciona varios filtros de validación de disparidad basados en ventanas de vecindad. Estos filtros tienen por objetivo eliminar posibles emparejamientos incorrectos del algoritmo (ruido estéreo).

Page 37: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 3 Modelos de sensor y robot

- 31 -

Los filtros implementados en el software de la cámara son los siguientes:

• Semejanza de textura. Se comprueba si los vecinos de los puntos emparejados poseen una textura similar. En caso contrario se desestima el emparejamiento

• Unicidad de emparejamiento. Se comprueba que hay un único candidato por píxel. En caso contrario se desestima el emparejamiento.

• Comprobación de superficie. Se comprueba si el emparejamiento hace que la superficie obtenida en 3D sea demasiado abrupta, en cuyo caso se desestima el emparejamiento.

Mediante estos filtros se consigue una imagen de disparidad bastante fiable.

Figura 7: Ejemplo del cálculo de la disparidad de una escena (izquierda) sin filtros (centro) y filtrada (derecha). Los píxeles totalmente negros simbolizan disparidades desestimadas.

Figura 8: Representación 3D de las imágenes de disparidad de la figura 7. Sin filtros (izquierda) y filtrada (derecha). Nótese la influencia de los filtros sobre los errores de

emparejamiento.

Además, el sistema permite marcar regiones de interés sobre las imágenes para evitar su procesamiento estéreo completo, aplicando el procesamiento solo a éstas.

En general se trata de un sistema bastante robusto que aisla al usuario de los problemas propios del procesamiento estéreo, ofreciéndole un interfaz de alto nivel con multitud de posibilidades. Sin embargo, puesto que los algoritmos de procesamiento estéreo se encuentran implementados mediante software, se deja abierta la posibilidad de que el usuario implemente un procesamiento propio con otras técnicas como las comentadas.

Page 38: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 32 -

3.1.3 Vistas 3D

En este trabajo, el procesamiento estéreo está considerado como un proceso a bajo nivel, puesto que lo que pretendemos demostrar es que se puede utilizar como modelo de sensor de forma directa.

En este sentido, nos aislaremos del proceso que lleva hacia la obtención de la imagen de profundidad, tomándolo como un procedimiento de “caja negra”, y trabajaremos directamente con el concepto de vista en 3D, que es el resultado geométrico del procesado estéreo.

Los resultados que nos interesan de la vista estéreo son, principalmente, dos imágenes: Vref (imagen de referencia) y Vdepth (imagen de disparidad o profundidad). En la imagen de referencia se encuentran los valores de intensidad (nivel de gris) de cada punto captado de la escena. En la imagen de profundidad se encuentra la disparidad asociada a cada píxel de la imagen de referencia. Por tanto, para cada píxel [i,j] de la imagen captada, encontramos su color o nivel de gris en Vref[i][j] y el valor de su disparidad en Vdepth[i][j].

El valor de la disparidad se normaliza típicamente entre 0 y 255. El valor 0 simboliza que no se ha podido obtener la profundidad para ese punto (distancia infinita). Existe una correspondencia directa entre el valor de disparidad y la distancia a la cámara, que depende de los parámetros geométricos de la misma, pero que normalmente responde a una función como la que sigue:

0

10

20

30

40

50

60

0 50 100 150 200 250 300

Disparidad

Dis

tanc

ia

Figura 9: Representación de la disparidad frente a la distancia de cámara

Aunque la distancia máxima que puede obtenerse con la cámara es de 52 mts, es necesario tener en cuenta que cuanto menor es la disparidad, mayor es el error que se produce en la estimación de profundidad. Este problema proviene de la propia discretización de la cámara (tamaño del píxel). Para que este error no se aprecie excesivamente, el software Triclops realiza una interpolación sub-pixel de la imagen, con el fin de estimar la métrica por debajo de dicha distancia. De una forma u otra, a partir de una determinada distancia (unos 7 mts) el error en la métrica resulta excesivo.

Page 39: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 3 Modelos de sensor y robot

- 33 -

Las componentes horizontal y vertical de cada punto se obtienen directamente a partir de la fila y la columna en la que se encuentra en la imagen, aplicándoles una proyección cónica acorde con la óptica de las cámaras.

Una vez llegados a este punto tenemos una forma de obtener, para cada posición de la imagen con disparidad válida las tres componentes espaciales y el color. Por tanto, una vista 3D Vi estará compuesta por un conjunto de Ki puntos de la forma:

{ }110 ,..., −=iKi PPPV (3.2)

Donde cada punto vendrá dado por las cuatro componentes obtenidas del procesamiento estéreo:

( ) 1,1,0,,,, −== ijjjjj KjczyxP K (3.3)

El origen de coordenadas de cada vista 3D se coloca en la propia cámara, por tanto, las posiciones de todos los puntos de la vista son relativas al centro de la imagen de referencia de la misma (figura 10).

Figura 10: Sistema de coordenadas de una vista 3D

Page 40: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 34 -

3.2 Modelo de robot

Para algunas de las pruebas reales realizadas a lo largo de este trabajo hemos utilizado el robot Pioneer 1 [ACT98]. Se trata de un robot de pequeño tamaño que incorpora varios puertos de entrada/salida para conectar algunos accesorios opcionales del usuario y un puerto serie RS232 para la comunicación entre el robot y otros ordenadores.

Figura 11: El robot Pioneer 1

Para realizar el control sobre el movimiento del robot hemos utilizado la librería Saphira [CAZ98]. Esta librería permite realizar un control directo sobre el movimiento del robot, así como sobre sus sónares, aunque en nuestro caso, no los hemos usado puesto que nuestro modelo de sensor se encuentra fuera de esta arquitectura. La librería, por tanto, solamente se ha utilizado para realizar el movimiento del robot.

Uniendo el sistema móvil al dispositivo sensor y añadiendo una unidad de proceso, el sistema tendría la forma:

Figura 12: diagrama de bloques del sistema (arriba). Imagen del robot con el CPU y la cámara Digiclops integrados.

Peticiones degrabación

Vistas 3D

Peticiones degrabación

Imágenes rectificadas

Peticiones demovimiento Robot

Pioneer 1 Librería Saphira

CPU

Librería Digiclops

Librería Triclops

Cámara Digiclops

Software Hardware

Page 41: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 3 Modelos de sensor y robot

- 35 -

Puesto que al lo largo de este trabajo no se utiliza en ningún momento la información sobre el movimiento real del robot, en realidad estamos utilizándolo como un dispositivo que simplemente da movilidad al sistema. En este sentido, podríamos substituir al robot por una mesita con ruedas. Lo importante de la utilización de este tipo de robots en este trabajo no es el modelo en cuestión sino las repercusiones de utilizar esta geometría de movimiento:

Si asumimos que el robot se mueve por un suelo recto, por la propia geometría de éste, la cámara no podrá cambiar de ángulo con respecto al suelo. Por tanto, los posibles movimientos del robot y, en consecuencia, las transformaciones posibles de la cámara, son las siguientes:

• Movimiento traslacional sobre el eje X (perpendicular a la cámara)

• Movimiento traslacional sobre el eje Z (profundidad) • Giro sobre el eje Y (eje de giro de cámara)

Figura 13: Geometría de movimiento del robot.

A lo largo de una determinada trayectoria, el robot realizará N tomas distintas, con lo que se obtendrán N vistas 3D:

{ } 1,2,1,0,..., 110 −== − NiPPPViKi K (3.4)

Puesto que el robot ha realizado las tomas en movimiento, cada vista presentará una transformación geométrica relativa a la vista anterior. En total, si tomamos como referencia fija la primera vista, tendremos N-1 transformaciones incrementales:

( ) 1,2,1,, −=∆∆∆= NiyxT iiii Kα (3.5)

Donde Ti es la transformación que sufre la cámara de la vista i-1 a la vista i. En este sentido, la geometría del movimiento del robot se reduce a un movimiento por un plano.

Figura 14: Secuencia de transformaciones a lo largo de una trayectoria del robot.

Page 42: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 36 -

Una vez conocida la secuencia de transformaciones, resulta sencillo componer la escena completa a partir de las vistas 3D aplicando las transformaciones pertintentes a cada vista: :

( ) ( )( ) ( )( )( ) ( )( )( )UUU U KKK 1113321221110 −−= NN VTTVTTTVTTVTVE (3.6)

Por su construcción, el origen de coordenadas del mapa coincide con el origen de coordenadas de la primera cámara. Puesto que hemos asumido que la cámara no cambia de altura, todos los centros de cámara se sitúan en el plano y=0. Midiendo físicamente la altura de cámara (hCam) y la altura del techo con respecto al suelo (hTecho) podemos determinar los planos de techo y suelo a partir del plano de cámara, puesto que los tres planos son paralelos entre sí y su separación es constante. De esta forma, el plano de suelo sería y-hCam=0 y el de techo y-hTecho+hCam=0. Estos datos podrán ser de gran utilidad como referencia en posteriores procesos de navegación.

Page 43: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 37 -

Capítulo 4 Mapeado 3D

En este capítulo detallaremos la técnica propuesta para construir un mapa 3D a partir de las vistas 3D extraídas por un robot de un entorno siguiendo una determinada trayectoria desconocida.

Comenzaremos relatando el proceso de mapeado desde un punto de vista global y después desglosaremos cada punto del mismo de forma detallada. Finalizaremos exponiendo distintos experimentos realizados sobre situaciones reales.

Page 44: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 38 -

Page 45: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 39 -

4.1 El proceso en general

El problema del mapeado consiste en extraer, a partir de un conjunto de lecturas obtenidas por un robot siguiendo una determinada trayectoria, una modelización del entorno que nos sirva para establecer posteriormente políticas de navegación por el mismo. El proceso es similar al que realizaría un ser humano al llegar, por ejemplo, a una casa desconocida: lo primero que tiene que hacer es recorrer todas las habitaciones para hacerse una idea mental de la disposición geométrica de la casa. De esta forma podrá posteriormente moverse de una habitación a otra basándose en el conocimiento previo de todo el entorno.

En nuestro caso, el mapa (modelado final del entorno) que pretendemos extraer estará formado por un conjunto de M puntos 3D, con la información de color o nivel de gris de cada uno:

{ }110 ,..., −= MPPPE , ( )iiiij czyxP ,,,= (4.1)

Para ello, partimos de una lista ordenada de vistas 3D extraídas por el robot a lo largo de su trayectoria por el entorno. La extracción de dichas vistas no tendrá que ser necesariamente homogénea.

En este sentido, lo que nos interesa conocer no es el conjunto de transformaciones del robot sino las transformaciones que ha sufrido la cámara entre cada par de vistas. Por tanto, a partir de N vistas de cámara (3.4) y conociendo las N-1 transformaciones incrementales sufridas entre cada par de vistas (3.5) podemos formar el mapa 3D definido en (4.1) uniendo todas las vistas en un conjunto aplicando las transformaciones de cámara pertinentes (3.6). Una vez obtenida la escena general, modelaremos el mapa final mediante un método similar al 3D evidence grid de Moravec [MOR96].

En nuestro planteamiento del problema, no nos basaremos en la información sobre el movimiento real del móvil, puesto que asumiremos que el proceso de movimiento está fuera de nuestro control. En este sentido, hemos de basarnos en la información geométrica obtenida de las vistas para estimar las transformaciones de éstas. El problema se reduce a encontrar, a partir de dos vistas consecutivas, la mejor transformación de la segunda con respecto a la primera. Dicha transformación será aquella que produzca el mayor solapamiento entre las zonas comunes de cada vista.

Para ello, necesitamos conocer una medida de distancia entre dos vistas y plantear un procedimiento que encuentre la transformación que minimice dicha distancia. En este sentido, el planteamiento se realiza como un problema de minimización de energías.

Como veremos más adelante, si utilizamos directamente las vistas 3D obtenidas del procesamiento estéreo, surgen varios problemas:

- El primero es que dichas vistas contienen un cierto error que afecta

Page 46: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 40 -

directamente a la calidad del emparejamiento. Dicho error proviene tanto de las condiciones de la escena como del algoritmo estéreo que estemos utilizando.

- Por otro lado, el número de puntos obtenidos de cada vista suele ser muy elevado, lo que hace que el tiempo de cómputo en el emparejamiento resulte prohibitivo.

Es por ello que, a la hora del calcular cada transformación, no vamos a utilizar la vista completa sino un subconjunto de la misma al que llamaremos vista característica. Dicha vista será lo suficientemente reducida como para realizar el proceso de forma rápida y contendrá la suficiente información como para asegurar un emparejamiento robusto, seleccionando de la vista original aquellos puntos con menor probabilidad de error.

En la siguiente figura podemos observar un ejemplo del procedimiento sobre una secuencia compuesta por tres vistas:

Figura 1: Ejemplo de estimación del movimiento de cámara sobre 3 vistas consecutivas.

Cálculo de la disparidad

V1 V0 V2

Visión 3D de la disparidad (nube completa)

Estimación del movimiento

V0 U T1(V1)

V1 U T2(V2)

Escena final V0 U T1(V1) U T1(T2(V2))

Vista característica

Page 47: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 41 -

4.2 Distancia entre dos vistas

Dadas dos vistas 3D consecutivas Vi-1 Vi pertenecientes a una secuencia tomada por el robot a lo largo de su trayectoria por el entorno, nos interesa conocer la transformación Ti que ha sufrido la cámara de una vista a la siguiente.

En este sentido, lo primero que ha de hacerse es encontrar una forma de evaluar la calidad de una posible transformación candidata. De esta forma, podremos comparar cuantitativamente distintas transformaciones posibles y quedarnos con la mejor de ellas.

Definimos la cantidad de energía asociada a una transformación posible Ti entre dos vistas Vi-1 y Vi como:

( )( )

1,1,0,)}({,

,,1

1

0

)()(1

)(1

1

1

−=−

=−

=−−

∑−

ii

K

k

jii

ki

ki

iii KjK

VTVMVTVVE

i

K (4.2)

Donde M es la distancia de )(1k

iV − (punto k-ésimo de la vista Vi-1) a su punto más cercano en Vi transformada. Como vemos, la energía se encuentra normalizada, o sea, se trata de la energía media por punto (división por el número de puntos de Vi-1, esto es Ki-1). Esto se hace para que el valor de la energía entre las dos vistas no dependa del número de puntos de la primera.

Dicho de otro modo, la energía entre dos vistas Vi-1 y Vi resulta de la suma de las distancias mínimas de cada punto de Vi-1 al conjunto de puntos Vi transformados (figura 2).

Figura 2: Cálculo de la energía entre dos vistas

De esta forma se consigue que dos vistas mal alineadas posean una energía alta y en contrapartida, que dos vistas bien alineadas posean una energía baja.

Entendemos por alineación como la cantidad de puntos comunes a ambas vistas que se encuentran solapados al hacer coincidir los orígenes de coordenadas.

d0 d1 d2

d3

d4 d6 d5

Vi-1

Ti(Vi)

( )7

,,

6

01

∑=

− = ii

iii

dTVVE

Page 48: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 42 -

La distancia entre cada par de puntos se calcula mediante la suma de la distancia euclídea entre ambos en el espacio 3D, mas una penalización que vendrá en función de la diferencia de color entre ambos:

( ) ( ) kColorcczyxzyxPP jijjjiiiji −+−=− ,,,, (4.3)

En este sentido, el color afecta en el cálculo de la distancia, de forma que dos puntos estarán más alejados cuanto más difieran en su componente de color.

Como vemos, la diferencia de color se encuentra ponderada con una constante reguladora a la que hemos llamado kColor. Dicha constante es necesaria para que las magnitudes de la distancia euclídea (medida en metros) y la diferencia de color (nivel de gris o color dentro de un determinado rango) sean equiparables y, por tanto, se puedan sumar. Para ello, realizamos el siguiente procedimiento:

El color o nivel de gris de un punto es un valor sobre un determinado rango numérico [Cmin , Cmax]. Por ejemplo, en las imágenes de gris dicho rango se especifica mediante un valor real normalizado entre 0 y 1 o bien un valor entero entre 0 y 255.

Por otro lado, la distancia a la que se puede encontrar un punto de una vista 3D a su origen de coordenadas (distancia de cámara) se encuentra en el rango [DCmin , DCmax]. Este rango de distancia se impone sobre los puntos obtenidos de la cámara recortando aquellos que se encuentren dentro para formar parte de la vista 3D. Este recorte es necesario puesto que, como vimos en el capítulo anterior, debido a las limitaciones del procesamiento estéreo, existe una cierta profundidad a partir de la cual el error métrico resulta inadmisible. En nuestro caso, dicho rango se encuentra entre 0.1 y 7.0 mts. Cualquier valor por encima de 7.0 mts o por debajo de 0.1 se considera no válido.

Una vez conocidos los rangos en los que se mueve tanto la distancia como el color, el valor de la constante reguladora kColor se calcula como un cambio del rango [Cmin , Cmax] al rango [DCmin , DCmax]:

minmax

minmax

CCDCDCkColor

−−= (4.4)

Sobre la expresión inicial de la distancia (4.3) podemos realizar una ponderación mediante una constante µ entre 0 y 1 para dar mayor peso a la componente de distancia euclídea o al color, dependiendo de las condiciones de la escena:

( ) ( ) ( ) kColorcczyxzyxPP jijjjiiiji −−+−=− µµ 1,,,, (4.5)

Cuando las condiciones de iluminación de la escena sean homogéneas es conveniente utilizar (4.3) directamente (el mismo grado de afectación).

Page 49: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 43 -

4.3 Determinación del emparejamiento entre dos vistas

Una vez determinado el cálculo de la energía entre dos vistas dada la transformación, el problema se reduce a encontrar la transformación óptima, esto es, el valor de la transformación que hace mínima dicha energía.

( ) ( )( )TVVEyxT iiT

iiii ,,minarg,, 1−=∆∆∆= α (4.6)

Donde los incrementos de x e y se miden en metros y toman valores en el intervalo [-∞,+∞] y el incremento de ángulo se mide en grados y toma valores en el intervalo [-180º , +180º]. Adicionalmente podemos recortar el espacio de búsqueda suponiendo que el robot realizará las lecturas en incrementos cortos, moviéndose una distancia máxima entre cada toma de Dismax metros y girando un ángulo máximo de Angmax grados. De esta forma, el espacio de búsqueda se vería recortado a [-Dismax, Dismax] en los incrementos translacionales y [-Angmax, Angmax] en el incremento angular. Estos valores han de ser pequeños, forzando al robot a que realice un conjunto de tomas denso (por ejemplo, 1 m y 20º respectivamente), de forma que cada par de vistas consecutivas tengan una zona de solapamiento alta y el emparejamiento se pueda realizar de forma unívoca.

Existen varias formas de encontrar la transformación óptima:

La más directa consiste en realizar un muestreado homogéneo, esto es, dividir el espacio de transformación en intervalos discretos y calcular la energía de las vistas para cada transformación posible, quedándonos con aquella que menor energía asociada tenga. Este método tiene varios inconvenientes. El primero es que si queremos trabajar con una cierta precisión es necesario dividir el espacio de parámetros en intervalos muy cortos, por lo que el número de evaluaciones de la energía que tendrían que realizarse sería excesivo. Por otro lado, estamos imponiendo una determinada precisión máxima en el procedimiento, que viene dada por el tamaño de división del intervalo.

Otra posible alternativa sería utilizar un algoritmo de descenso por gradiente. Para ello, utilizamos un esquema iterativo en el que, en cada paso, calculamos una nueva transformación añadiendo un valor aleatorio a cada componente de la transformación anterior:

( ) ( )),0(),,0(),,0(,, ασασσα NNyNxyxT iyixiiiii +∆+∆+∆=′∆′∆′∆=′ (4.7)

Si la energía asociada a la nueva transformación es menor a la energía de la transformación anterior, validamos la nueva transformación y la substituimos por la que teníamos. En otro caso, esto es, si la nueva transformación empeora la energía, se desestima y se sigue utilizando la transformación anterior. El algoritmo termina cuando acumule un determinado número de iteraciones sin validar ningún cambio (se encuentra un mínimo).

En el caso de encontrar una solución, el descenso por gradiente realizaría

Page 50: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 44 -

menos cálculos que el método anterior, puesto que en este caso, no muestreamos todo el espacio de parámetros. Además, la precisión de la solución no se ve acotada como en el caso anterior.

El problema de este esquema es que el la solución encontrada puede ser un mínimo local, por lo que nos anclaríamos en él y no encontraríamos el mínimo absoluto de la función de energía. Para evitar este problema, existe una variante del descenso por gradiente denominada Enfriamiento Simulado (traducido literalmente del término anglosajón Simulated Annealing) [KIR83]:

El enfriamiento simulado sigue el mismo esquema que el descenso por gradiente. La diferencia radica en la decisión de validar o no el cambio en cada iteración. Si la energía mejora, validamos el cambio directamente. En caso contrario, validaremos el cambio con una cierta probabilidad que viene dada por:

T

E

ep∆−

= (4.8)

La probabilidad de aceptar el cambio depende de la diferencia de energía entre la transformación anterior y la actual y de una variable T llamada temperatura, que responde a la expresión:

)log(1 k

CQT+

= (4.9)

Donde C es la energía de la transformación inicial, Q es la velocidad de descenso y k es el número de iteración actual.

Como vemos, la probabilidad de aceptar un cambio que empeora la energía decrece conforme aumenta el número de iteraciones. Esto significa que al principio, la solución va a oscilar mucho y conforme nos acerquemos a la solución dicha oscilación disminuirá. El criterio de paro del algoritmo es el mismo que en el descenso por gradiente.

Mediante el algoritmo de enfriamiento simulado conseguimos esquivar los mínimos locales de la función de energía, lo que permite en un número finito de iteraciones llegar al mínimo absoluto.

Veamos un ejemplo en el que hemos aplicado el algoritmo para emparejar dos vistas 3D:

Figura 3: Imágenes de referencia de las dos vistas que se van a utilizar en el ejemplo de ejmparejamiento. Primera imagen (izquierda) y siguiente (derecha).

Page 51: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 45 -

A partir de las dos vistas 3D obtenidas de las escenas, aplicamos el descendimiento simulado inicializando la transformación con el vector (0,0,0). En la siguiente gráfica podemos observar la evolución de la energía con respecto al número de iteraciones:

0,3

0,35

0,4

0,45

0,5

0,55

0,6

0,65

0,7

0 50 100 150 200

Iteración

Ener

gía

Figura 4: Evolución de la energía con respecto al número de iteraciones

Como vemos, aunque la evolución en general es descendente, se producen oscilaciones que van decreciendo conforme aumenta el número de iteraciones. La energía inicial toma el valor de 0.747. El algoritmo termina cuando la energía no mejora durante 25 iteraciones, quedándose la energía en el valor 0.348 al finalizar la iteración 198.

En la siguiente imagen podemos observar la disposición de las vistas antes y después de aplicar el algoritmo:

Figura 5: Disposición de las vistas antes (izquierda) y después (derecha) de aplicar el algoritmo de emparejamiento.

Aunque este proceso resulta bastante preciso, el tamaño de las vistas originales es excesivo. Esto hace que el tiempo de cómputo necesario resulte prohibitivo. En el siguiente apartado hablaremos de cómo acelerar el proceso utilizando distintas técnicas

Page 52: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 46 -

4.4 Optimización del proceso

Como hemos podemos observar, es necesario calcular la energía en cada iteración del algoritmo. Dicho cálculo posee una complejidad cuadrática con respecto al número de puntos que se manejen en las vistas (de cada punto Vi-1 tenemos que calcular el punto más cercano en Vi).

Utilizando imágenes con una resolución de 640x480 pixeles, una vista puede contener 307.200 puntos en el peor de los casos. En la mayoría de los casos, utilizando un algoritmo de correlación como el mencionado, suelen obtenerse vistas del orden de 10.000 puntos válidos (aquellos no eliminados por restricciones estéreo aplicadas por la cámara).

Operando directamente con estos puntos el tiempo de cómputo resulta prohibitivo. En este sentido, podemos aligerar el proceso de dos formas: disminuyendo el número de iteraciones del algoritmo de enfriamiento simulado o bien, disminuyendo el número de puntos por vista:

Cada par de vistas no se encuentra aislada, sino que pertenece a una determinada trayectoria seguida por el robot. Además, hemos comentado que la extracción de las vistas ha de ser suficientemente densa para que el proceso de emparejamiento pueda realizarse. Por tanto, la trayectoria ha de ser una función relativamente “suave”. En este sentido, para calcular cada transformación podemos realizar una estimación previa basándonos en las transformaciones calculadas hasta el momento. De esta forma, en la mayoría de los casos tendremos un valor de partida de la transformación más cercano a la solución y el algoritmo de enfriamiento simulado realizará menos iteraciones para llegar a ésta.

Para estimar el valor inicial de la transformación podemos, simplemente, tomar dicho valor como la transformación anterior. Si el movimiento es relativamente constante (por ejemplo si el robot está siguiendo un pasillo), esta asunción nos ahorrará muchas iteraciones. En los experimentos realizados sobre trayectorias reales hemos llegado a la conclusión de que utilizando esta mejora ahorramos una media del 20% en el número de iteraciones.

También podemos estimar la transformación inicial con técnicas más sofisticadas. Por ejemplo, utilizando un polinomio de aproximación de grado p a partir de las 2p transformaciones anteriores (normalmente a partir de p=2 se empeora el resultado). En los experimentos realizados no se han observado notables mejoras utilizando este criterio.

Otra vía para acelerar el proceso consiste en disminuir el tamaño de las vistas. Para ello, en vez de la vista completa, utilizamos lo que llamamos vista característica. Una vista característica de una vista 3D se forma por un subconjunto de puntos de la misma que se caracterizan por ser altamente significativos en la escena. Este conjunto será lo suficientemente reducido y característico como para asegurar un emparejamiento rápido y robusto. El cálculo de la vista característica se realiza de la siguiente manera:

Page 53: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 47 -

Para la obtención de una vista característica dividimos la imagen de disparidad en un conjunto de celdas del mismo tamaño y seleccionamos un representante por cada una de ellas. Dicho representante viene dado por la moda de las disparidades de todos los puntos que se encuentren dentro de la celda.

[ ]1,0,minarg),..,(1

0110 −∈

−= ∑

=− NddddddModa

N

ii

dN (4.10)

La imagen de disparidad estará compuesta por puntos válidos (el algoritmo estéreo ha sido capaz de resolver el emparejamiento en ese punto y asigna un valor de disparidad) o no-válidos (ocultaciones, ambigüedades que el procesado estéreo no puede resolver y por tanto, devuelven un valor de disparidad no válido). El criterio de la moda hace que si la mayoría de los puntos de la celda son válidos, el resultado sea un punto válido y el que más se ajusta a la media, eliminando puntos de pico que provengan de errores de estéreo. De igual forma, si la mayoría de puntos de la celda son no-válidos, el representante será no-válido, al no contar la celda con un número mínimo de puntos válidos.

La robustez estadística de un criterio como la moda permite eliminar gran cantidad de error de la vista inicial y que los puntos de la vista característica sean ciertamente significativos.

Con objeto de obtener una nube lo más compacta posible, a la vista característica se le aplica un segundo filtro de vecindad de puntos, eliminando aquellos que no posean un cierto número de vecinos válidos a una cierta distancia. Esto se puede realizar utilizando una máscara de correlación. De esta forma aseguramos que la vista característica no posee puntos aislados. Dicho mínimo se puede regular para obtener en cualquier vista un número mínimo de puntos.

En las pruebas realizadas hemos observado que los mejores resultados vienen dados por tamaños de rejilla de 8x8 y con un mínimo de 700 puntos por vista característica. La ventana de vecindad que se ha usado para la eliminación de puntos aislados es de 5x5. Mediante el uso de vistas características, pasamos de tener vistas con una media de 11.000 puntos a vistas con una media de 900, con lo que el tiempo de cómpunto necesario se reduce considerablemente.

En la siguiente figura podemos observar un ejemplo de construcción de una nube característica con los parámetros que hemos especificado:

Figura 6: Ejemplo de vista característica. Imagen de referencia (derecha), disparidad (centro) y puntos seleccionados (derecha)

Page 54: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 48 -

En el siguiente ejemplo mostramos dos vistas características pertenecientes una misma escena desde distintos puntos de vista.

Figura 7: Vistas características pertenecientes a una escena tomadas desde distintos puntos de vista. Imágenes de referencia (izquierda) y puntos seleccionados para la vistas características

(derecha).

Estimando la transformación inicial y utilizando vistas características, conseguimos realizar el emparejamiento entre cada par de vistas con un tiempo medio de 25 sg. El tiempo medio por transformación sin las mejoras se coloca en el orden de las 2,5 h. La diferencia es realmente considerable, por lo que podemos decir que utilizar estos (u otros) criterios de aceleración es necesario si queremos aplicar este método de forma flexible.

Page 55: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 49 -

4.5 Modelado final del mapa

Calculando las transformaciones entre cada par de vistas como hemos relatado, podemos formar una nube de puntos completa aplicando a cada vista 3D el conjunto de transformaciones pertinente de la forma (3.6) y uniendo los resultados sobre el mismo espacio.

En el siguiente ejemplo hemos realizado dicho procedimiento para reconstruir una habitación cerrada a partir de una trayectoria compuesta por 22 vistas. La escena final contiene 366.056 puntos.

Figura 8: Distintos puntos de vista de la reconstrucción de una habitación con el método propuesto formada por 22 vistas de cámara.

Como podemos ver en la reconstrucción, se captan solamente aquellas zonas donde la textura es significativa (marcos, mobiliario, etc..) quedando claros espacios vacíos zonas como paredes, suelos, etc. Este problema proviene del procesamiento estéreo, debido a que el algoritmo que estamos utilizando es muy sensible a zonas poco texturizadas. Este impedimento tendrá que tenerse en cuenta a la hora de aplicar estos métodos sobre determinados espacios.

Page 56: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 50 -

En el siguiente ejemplo hemos reconstruido una trayectoria formada por 187 vistas tomadas por el robot navegando a través de un conjunto de pasillos del departamento. La escena contiene 2.294.666 puntos:

Figura 9: reconstrucción de una escena de pasillos a partir de una trayectoria compuesta por 187 vistas de cámara.

Como vemos en el ejemplo, los pasillos no aparecen totalmente rectos, tal y como son realmente. Las pequeñas curvaturas se deben a que el criterio se aplica de forma local a cada par de vistas, calculando la transformación relativa de las mismas. De esta forma, los pequeños errores de ajuste de cada transformación se propagan a lo largo de toda la trayectoria. Al no contar con ninguna técnica global de ajuste, el error acumulativo se deja apreciar cuanto mayor sea el número de vistas y el volumen cubierto por la trayectoria.

Además del error local acumulado, es posible que el mapa contenga zonas de baja textura, con lo que el emparejamiento se ve directamente perjudicado. En el siguiente ejemplo hemos reconstruido un laboratorio de ordenadores del departamento utilizando para ello una trayectoria formada por 43 vistas. La habitación es rectangular y la trayectoria se ha realizado girando la cámara en sentido horario desde el centro de la habitación, de forma que las

Page 57: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 51 -

últimas vistas coinciden con las primeras:

Figura 10: Distintas perspectivas de la reconstrucción 3D de un laboratorio de ordenadores. Ejemplo de error de ajuste cuando el entorno posee zonas poco texturizadas.

Como vemos, las vistas que, puesto que comparten el mismo espacio, deberían de coincidir (inicio y final de trayectoria) aparecen separadas. Esto se debe a que sobre la pared superior de la escena (figura 10 superior), aparece una puerta blanca, la cual es un claro ejemplo de zona poco texturizada. Al llegar a este punto fallan varias transformaciones, produciéndose el resultado que aparece. El resto de la habitación responde a su disposición real.

Las nubes de puntos obtenidas con este proceso presentan varios problemas a la hora de utilizarlas como un mapa en procesos posteriores de navegación:

Por un lado, el número de puntos de los que constan las escenas resulta excesivo. Una escena con varios pasillos como la que presentamos en la figura 9 cuenta con 2.3 millones de puntos. Esto se debe a que hemos acumulado todos los puntos de cada vista, por lo que aquellos puntos obtenidos desde varias vistas aparecerán en el mapa repetidos y solapados en el mismo lugar.

Page 58: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 52 -

Por otro lado, puesto que a la hora de formar la escena hemos introducido las vistas 3D originales de la cámara, se puden observar gran cantidad de errores que provienen del procesamiento estéreo, sobre todo cuando manejamos distancias largas (ver figura 9).

Para solucionar estos problemas hemos construido una técnica para modelar el mapa final a partir de estas escenas, basándonos en el concepto del 3D Evidence Grid de Moravec [MOR96]:

A partir de la nube de puntos obtenida de la composición de vistas calculamos el paralelepípedo que la encierra y lo dividimos mediante una rejilla cúbica de tamaño constante. A continuación contamos el número de puntos que contiene cada vóxel de la rejilla y nos quedamos con aquellos que superen un cierto umbral (Tbox), descartando el resto (errores). Por cada vóxel válido calculamos un punto representativo, que vendrá dado por la media de los puntos que contiene. El mapa 3D estará formado por todos los puntos representantes obtenidos. En la idea original de Moravec, la representación final del mapa era una rejilla 3D de probabilidad calculada en función del número de puntos que contenía cada vóxel (la misma idea que los mapas de ocupación 2D). En nuestro caso hemos dado un tratamiento más geométrico al problema.

De esta forma, eliminamos los posibles puntos repetidos y eliminamos gran cantidad de puntos erróneos de la nube original. La fiabilidad de los puntos del mapa será directamente proporcional al umbral de puntos Tbox.

En la siguiente figura podemos observar dos ejemplos de este tipo de modelado de mapa aplicado sobre la escena de pasillos que aparecía en la figura 9, utilizando en cada caso un tamaño de rejilla distinto:

Figura 11: Mapas 3D pertenecientes a la escena obtenida en la figura 9 aplicando distintos tamaños de rejilla: 8cm (izquierda) y 15cm (derecha). El número de puntos obtenido en cada

mapa es de 25.637 y 19.809 respectivamente. En ambos casos, el número de puntos mínimo por vóxel es de Tbox= 3.

Page 59: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 4 Mapeado 3D

- 53 -

Como era de esperar, en el ejemplo podemos apreciar que la densidad de los puntos del mapa es inversamente proporcional al tamaño de la rejilla que empleemos. De una forma u otra, el número de puntos de los que consta cada mapa es mucho menor a los de la escena original. De igual forma, podemos observar que los puntos erróneos se han reducido drásticamente.

Los mapas obtenidos con esta técnica poseen numerosas ventajas:

1) Su reducido tamaño permite que puedan ser utilizados en procesos de navegación de una manera ágil. Esto se debe a que en los procedimientos que utilizan el mapa como herramienta principal (localización, planificación de trayectorias, etc…) el tiempo es un factor crítico (idealmente han de procesarse en tiempo real). Por tanto, es preferible que el mapa no sea excesivamente grande, para que no entorpezca dichas labores.

2) La información del mapa es lo suficientemente fiable como para poder utilizarlo en otros procesos posteriores sin preocuparnos excesivamente por los posibles errores métricos de cada punto. Esto se debe a que cada punto del mapa ha superado varios criterios de selección a varios niveles (desde los filtros estéreo iniciales hasta la validación de vóxels del propio mapeado).

3) Cada punto del mapa viene definido por sus tres dimensiones espaciales y el color. En este sentido, posee dos dimensiones más que un mapa de ocupación 2D (la altura y el color) y una dimensión más que un mapa de ocupación 3D (color). Esta información añadida ha de mejorar presumiblemente los procesos de navegación, puesto que el mapa presentado contiene más información propia del entorno.

Una vez planteada la técnica de mapeado, aparece un problema importante, esto es, cómo utilizar estos mapas para solucionar problemas de navegación. Como hemos visto, el mapa no es un producto final sino una herramienta, por tanto, plantear un modelo de mapeado sin ninguna aplicación no tendría sentido. En el siguiente capítulo plantearemos una técnica de localización utilizando este modelo para demostrar su posible uso en la navegación y veremos cómo afecta la naturaleza del mismo sobre este problema clásico.

Page 60: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 54 -

Page 61: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 5 Localización 3D

- 55 -

Capítulo 5 Localización 3D

En este capítulo presentamos una técnica para resolver el problema de la localización sobre el modelo de mapeado 3D propuesto en el capítulo anterior. Para ello, utilizaremos el algoritmo de CONDENSATION adaptándolo a este problema en particular. Para aplicar este algoritmo, tendremos que definir la función de densidad de probabilidad a posteriori sobre nuestro modelo 3D. Evaluaremos la eficiencia del método con un conjunto de experimentos utilizando datos reales.

Page 62: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 56 -

Page 63: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 5 Localización 3D

- 57 -

5.1 Introducción

El problema de localización consiste en estimar la posición y la orientación del robot sobre un mapa conocido a partir de los datos del entorno proporcionados por sus sensores. En este sentido, existen distintas variantes del problema, dependiendo de la información previa que tengamos a cerca de la posición inicial del robot. En este capítulo nos centraremos en el problema de la localización global, que es la variante más compleja del problema y que consiste en estimar la posición y la orientación del móvil sin datos previos sobre su posición y orientación iniciales. Con la solución al problema de la localización global podemos dar por resueltas las distintas variantes al problema.

La formulación bayesiana del problema de la localización global se basa en el cálculo de la función de probabilidad a posteriori. Esta función nos dice la probabilidad con la que el robot puede encontrarse en cada punto del mapa en función de la información que capta en el estado actual.

La solución clásica al problema del cálculo de la función de densidad de probabilidad a posteriori consiste en utilizar una rejilla de probabilidad, esto es, una discretización del espacio de posiciones en la que puede estar el robot en el mapa. Los algoritmos que utilizan esta técnica calculan la probabilidad de que el robot se encuentre en cada celdilla de la rejilla, en función de la información obtenida de sus sensores. Esta solución tiene un alto coste espacio-temporal y además obliga a definir las dimensiones de las celdillas a priori, acotando de esta forma la calidad de la localización.

La tendencia más actual en los algoritmos de localización son los filtros de partículas, los cuales representan la función de densidad por un conjunto de muestras extraídas de la distribución. Estas técnicas se han aplicado exitosamente en varias ocasiones para resolver el problema de la localización [THR01] [GAL98] [GAL99].

En este capítulo seguiremos esta tendencia para resolver el problema de la localización con nuestro modelo de mapa utilizando un algoritmo basado en filtros de partículas llamado CONDENSATION [ISS98] (en la literatura podemos encontrar este mismo enfoque bajo varios nombres distintos: Filtro Bootstrap, Monte Carlo, Importance Resampling Filtres, etc… aunque últimamente se está utilizando el término filtros de partículas para todos ellos).

A continuación veremos cómo calcular la probabilidad asociada a cada muestra sobre nuestro modelo de mapa, lo cual es necesario para aplicar el algoritmo propuesto.

Page 64: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 58 -

5.2 Probabilidad asociada a una muestra

Como hemos visto en el capítulo anterior, nuestro modelo de mapa es una nube de puntos 3D (4.1) modelada aplicando una rejilla cúbica de un determinado tamaño. En este sentido, la información que tenemos que utilizar para localizarnos ha de ser consistente con el mapa. Por tanto, las vistas 3D que utilizaremos para localizarnos se calcularán aplicando el mismo modelo de rejilla cúbica que hemos aplicado al mapa (el mismo tamaño de cubo y umbral) sobre las vistas 3D que obtengamos directamente de la cámara. En cualquier caso, tanto el mapa como las vistas que utilicemos estarán formados por un conjunto de puntos 3D (3.2).

Podemos definir la posición y orientación PO de una vista V dentro del mapa como la transformación absoluta de la vista con respecto al origen de coordenadas del mapa, que vendrá dada por una traslación sobre los ejes X y Z y un giro sobre el eje Y:

( )yzx ttPO α,,= (5.1)

En este sentido, para calcular la probabilidad de que una vista V se encuentre en la posición PO del mapa M utilizaremos la siguiente expresión:

( )

( )σ

POMVE

eMPOVp,,

,,−

= (5.2)

Donde ( )POMVE ,, es el cálculo de la energía entre la vista V y el mapa, colocando la vista en la posición y orientación PO. Este cálculo puede realizarse utilizando (4.2) suponiendo que V y M son vistas 3D y PO es una transformación sobre V sin variar la formulación de la energía. La constante σ ha de ajustarse según el problema y representa la desviación típica de la probabilidad.

En el modelo de localización que presentamos, el cálculo de la posición y orientación del robot en el momento actual VN-1 se realiza en base a la trayectoria que ha seguido hasta ahora, que viene dada por un conjunto de N vistas y las N-1 transformaciones incrementales que se han producido entre cada par:

( )11222110 −−−= NNN VTVVTVTVTR K (5.3)

Apoyándonos sobre una trayectoria completa podremos acumular suficiente información como para eliminar la ambigüedad de la función de densidad, que por naturaleza es multimodal. Esto se debe a que, para una sola vista, existen varias posiciones candidatas en el mapa con alta probabilidad. Acumulando la información de la trayectoria disminuimos dicha incertidumbre.

Una vez determinadas las herramientas de cálculo fundamentales, en el siguiente apartado detallaremos el funcionamiento del algoritmo CONDENSATION aplicado a nuestro problema de localización.

Page 65: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 5 Localización 3D

- 59 -

5.3 El algoritmo CONDENSATION

El algoritmo CONDENSATION se basa en representar la función de densidad de probabilidad por un conjunto de muestras extraídas de la distribución. En cada iteración del algoritmo se utiliza el movimiento del robot y la información sensorial del entorno (trayectoria) para mover el conjunto de muestras concentrándolo en la solución del problema, esto es, alrededor de la muestra más probable en función de dicha trayectoria.

El conjunto de muestras inicial MC vendrá dado por m transformaciones globales posibles, esparcidas aleatoriamente sobre el espacio de transformación (mapa):

{ }110 ,, −= mPOPOPOMC K (5.4)

En cada paso del algoritmo remuestrearemos dicho conjunto en función de la transformación producida por el robot y de la probabilidad de cada muestra sobre la nueva vista obtenida. En cada iteración se realizan tres pasos:

a) Movimiento muestral: Aplicamos la transformación incremental Tt producida en la trayectoria de la vista anterior Vt-1 a la actual Vt a cada muestra del conjunto MC, añadiéndole una cierta indeterminación.

( ) ( ) ( ) ( )( ){ } 11,0,,0,,0,,0 −=+== mkNNNPOTPOMC zxktk Kασσσ (5.5)

b) Cálculo de la probabilidad de cada muestra: Calculamos la probabilidad π de cada muestra de MC en función de la vista actual Vt :

( ) 11,0,,, −== mkMPOVp ktk Kπ (5.6)

c) Remuestreo: En este paso realizaremos un remuestreo del conjunto MC, basándonos en la probabilidad de cada muestra. Para ello, calculamos la probabilidad acumulada de cada muestra como:

11,0,

0−== ∑

=

mkk

iik Kπβ (5.7)

A continuación, normalizamos la probabilidad acumulada, de forma que la suma de todas ellas resulte 1:

11,0,1

0

−==∑

=

mkm

ik

kk K

β

ββ (5.8)

En este momento remuestreamos con substitución el conjunto MC seleccionando cada muestra POk con probabilidad βk. Para ello seguimos el siguiente procedimiento:

Page 66: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 60 -

Para i=0 hasta m-1 hacer

Calcular δ como un número aleatorio entre 0 y 1. Calcular POi como la muestra de MC cuya probabilidad normalizada βk es inmediatamente superior a δ

fpara

Aplicando iterativamente este procedimiento conseguimos acumular las muestras alrededor de la solución del problema.

Como podemos observar, en la fase de remuestreo se seleccionan las muestras en función de su probabilidad. Por tanto, es posible que una muestra se seleccione varias veces en el remuestreo, y por tanto, aparezca repetida varias veces en el conjunto. En este sentido, las muestras más probables se seleccionarán más veces.

Si aplicásemos el movimiento del robot de forma rígida a las muestras estaríamos exigiendo que el conjunto aleatorio inicial contuviese directamente la solución del problema. Por tanto, obligaríamos a utilizar conjuntos muy densos de muestras. Para evitar esto y que con un conjunto significativo se consiga llegar a la solución, al modelo de movimiento se le añade una cierta indeterminación en la fase de movimiento muestral.

El problema de localización se realiza de forma continuada a lo largo de la navegación. Esto significa que nunca dejamos de localizarnos. Una vez superadas las primeras iteraciones del algoritmo y asegurada una cierta localización podremos establecer políticas de trayectorias por el mapa. Para determinar cuándo estamos localizados tenemos que estudiar la dispersión del conjunto muestral:

2

1

0

1

0)(m

POPOMCDisp

m

i

m

jji∑∑

=

=

−=

(5.9)

Donde la distancia euclídea entre cada par de muestras se puede calcular en dos sentidos: sobre la traslación en el plano XZ, o bien sobre el valor del la orientación del robot.

Cuando la dispersión muestral sea alta significará que estamos sobre las primeras fases de localización. Por tanto, la incertidumbre sobre nuestra posición será alta, debido a que la información recogida hasta el momento podría pertenecer a varias posiciones distintas en el mapa.

Cuando la dispersión muestral sea baja, significará que las muestras se han concentrado, eliminando la incertidumbre sobre nuestra posición, por lo que podremos decir que estamos localizados. Para extraer nuestra posición en el mapa seleccionamos la muestra actual del conjunto con mayor probabilidad asociada.

Page 67: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 5 Localización 3D

- 61 -

También se puede dar el caso de que el conjunto presente una baja dispersión y por el contrario no estemos bien localizados. Esto puede ocurrir cuando el número de muestras resulta demasiado bajo o bien cuando la desviación típica de la función de probabilidad es demasiado alta. Por tanto, para asegurar la localización, tendremos que asegurar además que la probabilidad asociada a la mejor muestra es suficientemente alta.

Page 68: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 62 -

5.4 Optimización del proceso

Como hemos visto, en cada paso de CONDENSATION es necesario calcular la probabilidad asociada a cada muestra (5.6). Dicha probabilidad ha sido definida en función de la energía entre la vista transformada y el mapa (5.2). Como vimos en el capítulo anterior, el cálculo de la energía posee una complejidad cuadrática.

Puesto que nuestro modelo de mapa posee una gran cantidad de puntos y el cálculo de la energía se realiza continuamente, podemos imaginar que el tiempo de cálculo del algoritmo aplicando directamente la función de energía resultará excesivo. En este apartado plantearemos un método sencillo para calcular la energía de cada muestra de forma rápida.

En el proceso de cálculo de la energía tenemos que calcular, para cada punto de la vista actual Vi el punto más cercano en el mapa M. Por tanto, siendo np el número de puntos de los que consta el mapa y ki el número de puntos de los que consta la vista, tendremos que realizar npki operaciones para calcular la energía de la vista al mapa. Dicho procedimiento puede considerarse de complejidad cuadrática con respecto a la media de los elementos de ambos conjuntos.

Para acelerar este proceso, podemos formar una estructura a partir del mapa que determine de forma directa para cualquier punto de la vista Vi su punto más cercano en el mapa M. De esta forma, realizaríamos únicamente ki iteraciones para calcular la energía (complejidad lineal). Para formar dicha estructura hemos realizado el siguiente procedimiento:

Como recordaremos, la nube de puntos que forma el mapa proviene de una discretización cúbica de la nube densa inicial (capítulo anterior). Por tanto, cada punto del mapa determina una región espacial de tamaño Tlbox X Tlbox X Tlbox, siendo Tlbox el tamaño de arista de la rejilla 3D.

Siendo (hx,hy,hz) las dimensiones del box que encierra al mapa, formamos una malla 3D de tamaño (hx/Tlbox, hy/Tlbox ,hz/Tlbox), donde cada casilla contendrá el punto del mapa más cercano al centro geométrico de la casilla.

Para formar dicha rejilla, seguiremos un procedimiento iterativo basado en crecimiento de regiones:

Inicialmente colocamos cada punto del mapa en su posición correspondiente en la rejilla, asignando a cada una de las celdas implicadas el punto que le corresponde como mínimo y dejando el resto vacías. Para cada casilla vacía calculamos el punto que está a menor distancia dentro de sus 26 casillas vecinas. Realizamos este procedimiento mientras exista alguna casilla vacía en el mapa.

En la siguiente figura presentamos varios pasos de la secuencia de

Page 69: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 5 Localización 3D

- 63 -

cálculo de la rejilla para el mapa de la figura 9 del capítulo anterior, utilizando un tamaño de rejilla de 15cm. En el ejemplo se puede apreciar la evolución del algoritmo calculando cada casilla siguiendo el procedimiento descrito hasta cubrir todo el vóxel original del mapa:

Mapa inicial Iteración 1 Iteración 5

Iteración 10 Iteración 20 Iteración 30

Iteración 40 Iteración 79 (última)

Figura 1: Distintas iteraciones pertenecientes al cálculo de la rejilla de puntos mínimos a cada vóxel de un mapa. El tamaño de la rejilla es de 15 cm y han sido necesarias 79 iteraciones.

Como vemos, siguiendo un procedimiento relativamente sencillo obtenemos una estructura de datos que nos permite consultar el punto más cercano del mapa mediante un cálculo de complejidad constante, dejando el cálculo de la energía con una complejidad lineal. De esta forma, el punto del mapa que se encuentra más cercano a un punto Pi(xi,yi,zi,ci) de la vista Vt vendría dado por la posición [(xi-minx)/Tlbox , (yi-miny)/Tlbox , (zi-minz)/Tlbox] de la rejilla, siendo (minx, miny, minz) las coordenadas de la casilla [0,0,0].

En el siguiente punto relataremos una colección de experimentos con el fin de comprobar el funcionamiento de esta técnica sobre datos reales.

Page 70: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 64 -

5.5 Experimentos: validación del método

En este apartado presentamos una colección de experimentos con datos reales con el propósito de validar el método propuesto. En todos los casos hemos utilizado el mapa de referencia de la figura 11 del capítulo 4.

Experimento 1

En el siguiente experimento hemos procesado el mapa con un tamaño de rejilla de 15 cm y hemos realizado una trayectoria a lo largo de la esquina superior izquierda. Se trata de una zona altamente característica puesto que no existe otra esquina parecida dentro del mapa. Se han utilizado 1500 muestras colocadas aleatoriamente sobre las posiciones “transitables” del mapa.

En la siguiente figura se pueden observar distintos pasos pertenecientes a la evolución del algoritmo:

Figura 2: Primeras 6 iteraciones del algoritmo de localización (ordenadas de izquierda a derecha y de arriba abajo) aplicadas a una trayectoria sobre una zona altamente característica.

Como vemos, hemos dibujado cada muestra asociándole un nivel de gris en función de su probabilidad asociada (más blanco cuanto más probable).

La flecha simboliza la posición real del robot. En la sexta iteración, la estimación de la posición y orientación del robot es (tx=2.0138mts, tz=-17.9447mts, αy= 276.7047º), siendo su posición y orientación reales (tx = 2.0534mts , tz = -17.9711mts , αy = 277.6608º).

En la siguiente figura hemos representado el valor de la dispersión de las muestras en cada iteración, con objeto de apreciar cuándo podemos decir que el

Page 71: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 5 Localización 3D

- 65 -

robot se ha localizado:

0

1

2

3

4

5

6

7

8

0 2 4 6 8 10

Iteración

Dis

pers

ión

XY

Figura 3: Representación de la dispersión de las muestras en cada iteración.

Como vemos, la dispersión de las muestras disminuye rápidamente durante las tres primeras iteraciones.

El tiempo total consumido por el proceso de localización durante estas 11 iteraciones ha sido de 28.05 sg , lo que nos da un tiempo medio por iteración del algoritmo de 2.55 sg

Como vemos, hemos conseguido una estimación realmente precisa en solamente cuatro iteraciones. Esto se debe a que la trayectoria por la que nos movíamos era altamente significativa (zona de alta verosimilitud), por lo que la convergencia resulta rápida.

Experimento 2

En este caso vamos a realizar un experimento bajo las mismas circunstancias que el anterior pero sobre una trayectoria que se mueve por un espacio de gran ambigüedad.

En este sentido, vamos a colocar al robot en el pasillo derecho, moviéndonos hacia arriba a lo largo del mismo. Como vemos, los tres pasillos son similares, por lo que la indeterminación sobre las posibles zonas en las que podemos encontrarnos es muy alta.

En la siguiente figura se pueden observar distintos pasos pertenecientes a la evolución del algoritmo:

Page 72: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 66 -

Figura 4: Iteraciones 1,2,3,4,5 y 9 del algoritmo de localización (ordenadas de izquierda a derecha y de arriba abajo) aplicado a una trayectoria sobre una zona con alta ambigüedad.

Como vemos, en este caso se han necesitado 9 iteraciones para agrupar completamente las muestras. La solución de la localización se estima en (tx=1.1767mts , tz=-10.1822mts , αy=193.7008º), siendo la posición y orientación reales (tx = 1.1477mts , tz = -10.2139mts , αy = 193.7866º).

La dispersión de las muestras en este caso es la siguiente:

0

2

4

6

8

10

12

0 5 10 15 20

Iteración

Dis

pers

ión

XY

Figura 5: Representación de la dispersión de las muestras en cada iteración.

Como referencia con el experimento anterior, para alcanzar el valor de dispersión 0.228 (dispersión en la iteración 3 del experimento 1), en este caso hemos tenido que llegar a la iteración 6.

Page 73: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 5 Localización 3D

- 67 -

Como podemos recordar, estamos utilizando el color como elemento característico de los puntos de la escena. En este sentido, el color afecta en el cálculo de la distancia, como se vio en el capítulo anterior. Para comprobar cómo afecta al problema, hemos repetido el experimento bajo las mismas circunstancias pero eliminando la información de color. La localización es similar, pero la convergencia de la dispersión se produce mucho después:

0123456789

10

0 5 10 15 20

Iteración

Dis

pers

ión

XY

Figura 6: Representación de la dispersión sin utilizar información de color.

En este sentido, podemos comprobar que el color es un elemento altamente discriminante en el problema. Paralelamente hemos realizado el mismo experimento sin utilizar la tercera dimensión (Y) ni el color, obteniendo:

0123456789

10

0 5 10 15 20

Iteración

Dis

pers

ión

XY

Figura 7: Representación de la dispersión sin utilizar ni la información de color ni la tercera dimensión (Y).

Como vemos, tanto la dimensión como el color son altamente relevantes a la hora de localizarnos, lo cual dice mucho de la efectividad de este tipo de mapas.

Page 74: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 68 -

Experimento 3

En el siguiente experimento vamos a intentar localizar la misma trayectoria que en el ejemplo anterior pero utilizando únicamente 500 muestras.

En la siguiente figura se pueden observar distintos pasos pertenecientes a la evolución del algoritmo:

Figura 8: Iteraciones 1, 5 y 10 (de izquierda a derecha) aplicando el algoritmo de localización con 500 muestras

Como vemos, al utilizar un número de muestras bajo, el error de localización resulta muy alto. En los experimentos realizados hemos llegado a la conclusión de que es aconsejable utilizar un mínimo de 1000 muestras para este tamaño de mapa.

Experimento 4

También es posible, aunque resulta más costoso, distribuir las muestras iniciales a lo largo de todo el vóxel del mapa, en vez de por las zonas físicamente posibles. Eliminando esta restricción es necesario utilizar un número de muestras mucho mayor, puesto que el espacio de búsqueda se incrementa. En este experimento hemos aplicado el algoritmo de localización utilizando 3000 muestras esparcidas sobre todo el espacio del mapa.

En la siguiente figura se pueden observar distintos pasos pertenecientes a la evolución del algoritmo:

Figura 9: Iteraciones 1, 3 y 11 (de izquierda a derecha) aplicando el algoritmo de localización con 3000 muestras sobre todo el vóxel del mapa.

Page 75: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 5 Localización 3D

- 69 -

Como vemos, aunque finalmente hemos conseguido localizarnos, hemos tenido que utilizar 3000 muestras, por lo que el tiempo de cómputo se encarece, consumiendo 4,54 sg por iteración.

Además la localización es más tardía puesto que la concentración inicial de las muestras resulta excesivamente dispersa:

0

1

2

3

4

5

6

7

8

9

0 2 4 6 8 10

Iteración

Dis

pers

ión

XY

Figura 10: Representación de la dispersión de las muestras en cada iteración.

Como podemos contrastar en estos experimentos, hemos conseguido dar una solución al problema de la localización utilizando los modelos de mapa y sensor propuestos, obteniendo unos resultados más que prometedores.

Cabe destacar que en las técnicas similares de localización desarrolladas utilizando sensores se obtiene una función de densidad de probabilidad excesivamente homogénea. En este sentido, la localización es mucho más costosa, por lo que se tienen que implementar políticas especiales de navegación para converger hacia espacios significativos del mapa y así lograr la convergencia.

Como vemos, la función de densidad de probabilidad obtenida en nuestro caso es altamente característica puesto que se calcula sobre un mapa con mucha más información. Esto provoca que la convergencia de la localización se produzca más rápidamente. La incorporación del color y la tercera dimensión en mapa provoca que cada zona del mismo se distinga más del resto.

Page 76: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 70 -

Page 77: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 6 Conclusiones y trabajo futuro

- 71 -

Capítulo 6 Conclusiones y trabajo futuro

Todo proceso de investigación en el que se trate un problema amplio como este, suele ser un trabajo continuado que en raras ocasiones puede darse por concluido. En este sentido, finalizaremos este texto resumiendo las conclusiones que hemos extraído del trabajo realizado, seguido de las líneas de investigación que, si las circunstancias lo permiten, desarrollaremos en el futuro.

Page 78: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 72 -

Page 79: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Capítulo 6 Conclusiones y trabajo futuro

- 73 -

6.1 Conclusiones

En este trabajo hemos desarrollado una metodología para el tratamiento del problema de la navegación de robots autónomos utilizando la tecnología estereoscópica como elemento sensor, aprovechando toda la información que nos proporciona (información 3D y color).

Para ello, hemos planteado una solución basada en este modelo de sensor a los dos problemas básicos de navegación: mapeado y localización, que forman el punto de partida hacia problemas de mayor nivel, como por ejemplo la planificación de trayectorias.

Con respecto al mapeado, hemos planteado un método basado en minimización de energías con el que es posible construir mapas 3D con información de color de entornos desconocidos a partir de trayectorias del robot, incluso sin contar con la información real del movimiento del mismo. La modelización final del mapa utilizando un grid 3D permite un ágil manejo del mismo sin que esto repercuta sobre la información que contiene.

Finalmente, con respecto a la localización 3D, hemos planteado una técnica adaptando el algoritmo clásico de CONDENSATION, con la que hemos podido demostrar la utilidad del modelo de mapas presentado.

Mediante experimentos utilizando datos reales, hemos podido comprobar la eficacia del modelo propuesto. De esta forma, hemos podido contrastar la repercusión de la información de color y la tercera dimensión sobre el problema de la localización, llegando a la conclusión de que son elementos altamente significativos de la escena, y que por lo tanto, mejoran el proceso sensiblemente.

El avance realizado sobre estas técnicas abre un nuevo marco de investigación que nos permitirá resolver otros problemas de mayor nivel relacionados con la navegación de robots autónomos.

Page 80: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 74 -

6.2 Trabajo futuro

Aunque las técnicas propuestas son bastante prometedoras, también son mejorables. A nuestro entender, las distintas líneas futuras de desarrollo de este trabajo, son las siguientes:

Con respecto al sensor, en el trabajo se expone un único modelo. En este sentido, sería muy interesante contrastar las distintas técnicas presentadas utilizando variaciones del modelo, como por ejemplo, utilizando algoritmos más avanzados de cálculo de disparidad. Posiblemente, con un algoritmo basado en minimización de energías contaríamos con más y mejor información sobre la escena, lo cual podría mejorar los métodos propuestos.

Con respecto a la técnica de mapeado propuesta, nos queda pendiente la solución al problema crítico del ajuste global del mapa. Para ello estamos manejando la posibilidad de realizar un postproceso sobre el mapa también basado en minimización de energías pero aplicado de forma global. Para ello, tendremos que formular un modelo de energía que nos mida la alineación del mapa.

Otro factor a mejorar sobre la técnica de mapeado es la extracción de las vistas características. En el trabajo hemos presentado una sola técnica, que puede no ser la óptima. Actualmente manejamos la posibilidad de calcular las vistas características basándonos en técnicas clásicas de extracción de elementos invariantes de imagen (detectores de esquinas, bordes, etc…)

Con respecto a la técnica de localización, sería interesante incorporar una conducta de movimiento inteligente que guiase al robot hacia los puntos de máxima verosimilitud del mapa, con lo que reduciríamos drásticamente el número de iteraciones necesarias para localizarnos. Para ello, sería necesario formular una métrica de similitud sobre las distintas regiones del mapa.

Para poder dar por terminado el trabajo, sería necesario estudiar el problema de cómo implementar conductas de navegación basadas en el mapeado y la localización propuestos, como por ejemplo, ir de un punto a otro del mapa. Para resolver este problema podríamos adaptar distintas técnicas actuales basadas en el uso de landmarks (puntos singulares del entorno).

Page 81: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Bibliografía

- 75 -

Bibliografía

[ACT98] Activ Media Inc. "Pioneer Mobile Robots. Operation manual 2nd edition".1998.

[ALV00] L. Álvarez, J. Sánchez. "Reconstrucción 3D a partir de un par estéreo de imágenes en color utilizando ecuaciones en derivadas parciales". X Congreso Español de Informática Gráfica (CEIG ’2000). Castellón, Junio del 2000.

[BUR96] W. Burgard, D.Fox, D.Hennig, T. Schmidt “Estimating the absolute position of a mobile robot using position probability grids”. Fourteenth National Conference on Artificial Intelligence (AAAI) 1996

[CAS01] M.A. Castillo “Implementación de conductas para el control de robots con visión estereoscópica” Proyecto final de carrera en Ingeniería Informática. DCCIA. Universidad de Alicante. Septiembre 2001.

[CAZ98] M.A. Cazorla, D. Gallardo. "Introducción a Saphira". Universidad de Alicante, Octubre de 1998.

[COX96] I.J. Cox, S.L. Hingorani, S.B. Rao. "A maximum likelihood stereo algorithm". Computer Vision and Image Understanding. May 1996.

Page 82: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 76 -

[DAN00] K. Daniilidis, J.Mulligan, R.McKendall, D.Schmid “Real-time 3d-tele-inmersion” Confluence of Vision and Graphics, A. Leonardis et al. (Ed.), Kluwer Academic Publishers, 2000.

[DEM77] A. Dempster, A. Laird, D. Rubin. “Maximum likelihood from incomplete data via the EM algorithm”. Journal of the Royal Statistical Society, Series B 39, 1 38. 1977

[DIE97] F.Dieter, W. Burgard, S. Thrun “The dynamic window approach to collision avoidance” IEEE Robotics and Automation Magazine 1997

[GAL98] D.Gallardo, F.Escolano, R.Rizo, O. Colomina, M. Cazorla “Estimación bayesiana de características en robots móviles mediante muestreo de la densidad a posteriori” I Congrés Català d’Intel.ligència Artificial. Tarragona. Octubre de 1998

[GAL99] D. Gallardo. “Aplicación del muestreo bayesiano en robots móviles: estrategias para localización y extracción de mapas de entorno”. Tesis doctoral. Universidad de Alicante, Junio de 1999.

[IOC00] L. Iocchi, K. Konolige, M. Bajracharya. "Visually realistic mapping of planar environment with stereo". Seventh International Symposium on Experimental Robotics (ISER’2000). Hawaii 2000.

[ISS98] M. Isard, A. Blake. “CONDENSATION. Conditional Density Propagation for Visual Tracking”. International Journal on Computer Vision 1998.

[KIR83] S. Kirkpatrick, C.D. Gellatt, M.P. Vecchi. “Optimization by simulated annealing”. Science, 220:671-680. 1983.

[KOR98] D. Kortenkamp, R. Peter, R. Murphy. “Artificial intelegence and mobile robots”. The AAAI Press / The MIT Press 1998.

[KRÖ01] B. Kröse, R. Bunschoten, N. Vlassis, Yoichi Motomura “A probabilistic model for appearance based robot localization” Image and Vision Computing. April 2001

[LIU01] Y. Liu, R. Emery, D. Chakrabarti, W. Burgard, S. Thurn. “Using EM to learn 3D models of indoor enviroments with mobile robots”. Eighteenth International Conference on Machine Learning. Williams College, June 2001.

[MOR81] H.P. Moravec “Robot Rover Visual Navigation”, UMI Research Press, Ann Arbor, Michigan, 1981.

Page 83: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Bibliografía

- 77 -

[MOR96] H.P. Moravec. "Robot spatial perception by stereoscopic vision and 3D evidence grids". The Robotics Institute Carnegie Mellon University. Pittsburgh, Pennsylvania, 1996.

[MUR98] 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.

[OKU93] M. Okutomi, T.Kanade. “A multiple-baseline stereo”. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1993.

[POI98] “Triclops Stereo Vision System Manual. Version 2.3” Copyright© 1998, Point Grey Research Inc.

[POI00] “DigiclopsTM Stereo Vision System. Installation Guide and Camera Control API Command Reference. Version 1.1” Copyright © 2000 Point Grey Research Inc.

[POL01] M. Pollefeys “3D Modeling from images. Tutorial notes” Tutorial organized in conjuntion with 3DIM 2001, Quebec, Canada, May 2001.

[PUC99] J.A. Puchol, J.M. Sáez, R. Molina “Postproceso de Rectificación de Metapolígonos” IX Congreso Español de Informática Gráfica (CEIG’99) Jaén Junio 1999.

[SÁE99] J.M. Sáez, J.A. Puchol, R. Molina “Poligonalización de Blobs con Rectificación de Precisión” IX Congreso Español de Informática Gráfica (CEIG’99) Jaén Junio 1999.

[SÁE00] J.M. Sáez, J.A. Puchol, R. Molina “Adaptación del PRM sobre superficies libres. Aplicación a entornos CAD/CAM” X Congreso Español de Informática Gráfica (CEIG’2000) Castellón, Junio 2000.

[SÁE01] J.M. Sáez, F. Escolano, E. Hernández “Reconstrucción de mapas 3D a partir de información estéreo utilizando un enfoque de minimización de energía” IX Conferencia de la Asociación Española para la Inteligencia Artificial (CAEPIA 2001) Gijón, Noviembre 2001.

[SEQ99] V. Sequeira, K.C. Ng, E. Wolfart, J.G.M Gonçalves, D.C. Hogg “Automated 3D reconstruction of interiors with multiple scan-views” Electronic Imaging '99, IS&T/SPIE's 11th Annual Symposium, San Jose, California, USA, January 1999.

[THR00] S. Thrun et al. “Probabilistic Algorithms and the interactive museum tour-guide robot Minerva” International Journal of Robotics Research Vol 19 Nº11. November 2000.

Page 84: Memoria del programa de doctorado Ingeniería Informática y …jmsaez/Publicaciones/OtrosTrabajos/... · 2003-09-19 · Gallardo y Miguel Ángel Cazorla, por el tiempo que les he

Memoria del programa de doctorado

- 78 -

[THR01] S. Thrun, D. Fox, W. Burgard, F. Dellaert “Robust Monte Carlo localization for mobile robots” Artificial Intelligence Journal 2001.

[TSA87] R. Y. Tsai. “A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses”. IEEE Journal of Robotics and Automation, 1987.