Oferta de PFC

From Robotica

Jump to: navigation, search

Contents

Percepción visual

Navegación por pasillo utilizando flujo óptico

El flujo óptico mide el movimiento de los objetos en la imagen. Los objetos cercanos generan mucho flujo, mientras que los lejanos apenas se mueven en la retina. Muchos animales emplean flujo óptico para navegar por su entorno de modo seguro. Por ejemplo, las moscas utilizan una técnica similar para controlar su vuelo, y giran hacia izquierda o derecha tratando de igualar el flujo óptico medido en sus ojos izquierdo y derecho. De esta manera se alejan de los objetos cercanos y se mantienen centradas en un pasillo, que es la posición en la que el flujo en ambos lados se iguala. José Antonio Santos ha trabajado en su PFC con flujo óptico con la biblioteca IPP y ha creado un componente dentro de la plataforma jdec que calcula el flujo de manera muy eficiente. Este proyecto consiste aprovechar ese componente y materializar con él una técnica similar a las que hemos comentado para que un robot Pioneer navegue de forma segura por un pasillo.

  • Conocimientos previos: Conocimientos previos: saber programar.
  • Conocimientos adquiridos: C, visión computacional, flujo óptico, control en velocidad, cámaras firewire.
  • Hablar con: JoseMaría

Sistema de videovigilancia para un entorno de oficinas o para una casa

En la aplicación visual de seguridad de Antonio Pineda [[1]] conseguimos un prototipo de un sistema de vigiliancia para una habitación, capaz de proteger una zona 3D y hacer saltar la alarma cuando alguien irrumpía en ella. En este proyecto se pretende extender la zona vigilada a toda una planta de una zona de despachos u oficinas, por ejemplo la zona GSyC del departamental-II. Para ello se repartirán un conjunto de cámaras por la zona a monitorizar. Una aplicación concreta puede ser grabar las imágenes cuando se detecte movimiento, o almacenar la mejor foto de cada una de las personas que han entrado en la zona a lo largo de un dia. Otra orientación de la misma tecnología es conseguir la aplicación capaz de monitorizar (por toda la casa) las caidas de personas mayores que viven solas, extendiendo también el alcance respecto del prototipo eldercare [[2]].

  • Conocimientos previos: saber programar.
  • Conocimientos adquiridos: C, visión artificial, tracking, filtro de partículas.
  • Hablar con: JoseMaria

image:disposicion_piso.pngimage:monitor.png

Robot que mueve los ojos para mirar las cosas con atención

Los ojos de los mamíferos tienen una zona central de la retina muy precisa y una periferia donde no se aprecian los detalles, pero que también es útil. Además, estos sistemas visuales tienen la capacidad de mover los ojos a voluntad para fijar la mirada en las cosas interesantes. El objetivo de este proyecto consiste en realizar un sistema similar para un robot móvil dotado de dos cámaras. Este proyecto parte de la experiencia acumulada con los PFCs Marta Martínez de la Casa [[3]] y Olmo León[[4]]. En ellos se usaban una y dos cámaras montadas sobre un cuello móvil y la mirada se fijaba alternativamente en los diferentes objetos de color interesante que hubiera alrededor del robot y en los bordes del suelo. En este proyecto se explorará el uso de imágenes en formato logpolar (como las de la figura: zona central rica en detalles, zona periferica con menos "píxeles") y de una memoria visual de corto plazo. También llamarán la atención del robot las cosas que se muevan por sí mismas.

  • Conocimientos previos: saber programar.
  • Conocimientos adquiridos: C, visión computacional, sistema de atención.
  • Hablar con: JoseMaria

image:stereologpolar.pngimage:stereopioneer.jpg

Seguimiento de posición y velocidad de objetos en 3D

El seguimiento de objetos en 3D es una tarea importante dentro de las aplicaciones de la visión por computador. Las imágenes únicamente proporcionan información bidimensional de nuestro entorno por lo que es necesario encontrar alguna manera de extraer información útil tridimensional. En particular, en una aplicación genérica, la primera información que debe extraerse es la posición y velocidad de un objeto en 3D. Como alternativa a las aproximaciones tradicionales que trabajan sobre métodos de triangulación, se pueden emplear filtros de partículas con el fin de comprobar varias hipótesis sobre la posición y velocidad del objeto, con el fin de mantener un ritmo ágil de la aplicación. El objetivo de este proyecto consiste en realizar una aplicación capaz de proporcionar una estimación de posición y velocidad en tiempo real para el movimiento de un objeto dentro de un entorno tridimensional.

  • Conocimientos previos: C/C++, Java o C#, geometría y estadística básica.
  • Conocimientos adquiridos: Procesamiento visual con varias cámaras y técnicas de Monte Carlo.
  • Hablar con: Pablo Barrera, barrera@gsyc.es


Control de tráfico

El control automático del tráfico de nuestras calles o carreteras es una aplicación de mucha utilidad hoy en día. Con él se pueden construir sistemas capaces de anticiparse a la formación de atascos o facilitar y acelerar el peaje en las carreteras. Para conseguir automatizar el proyecto se han seguido varias alternativas diferentes, desde el uso de radares hasta la colocación de sensores bajo el pavimento. Estas técnicas tienen en común su alto precio. La utilización de cámaras, mucho más baratas, podría suponer un importante descenso en el coste de automatización, con la consecuente mejora del servicio. El objetivo de este proyecto consiste en desarrollar un sistema de monitorización del tráfico rodado de una calle cualquiera, empleado una o más cámaras para ello. La información que se desea obtener es la posición y velocidad de los vehículos que circulen por dicha calle.

  • Conocimientos previos: C/C++, Java o C#, geometría y estadística básica.
  • Conocimientos adquiridos: Procesamiento visual, técnicas de Monte Carlo.
  • Hablar con: Pablo Barrera, barrera@gsyc.es


Calibración de cámaras automática

Para la correcta utilización de las cámaras en las aplicaciones de visión computacional es necesario describir de manera correcta la geometría propia de la cámara. Esto incluye parámetros internos de la cámara, como puede ser la distancia focal y, para aplicaciones más avanzadas, los parámetros externos, como la posición y la orientación dentro de un entorno 3D. El objetivo de este proyecto consiste en desarrollar un aplicación de calibración automática de cámaras.

  • Conocimientos previos: C/C++, Java o C#, geometría, estadística básica y álgebra.
  • Conocimientos adquiridos: Procesamiento visual con varias cámaras, calibración y métodos de resolución numéricos de ecuaciones.
  • Hablar con: Pablo Barrera, barrera@gsyc.es


Seguimiento visual de objetos articulados

Hasta ahora hemos usado filtros de partículas y algoritmos evolutivos para localizar objetos en 3D desde información visual (tesis de Pablo Barrera, PFCs de Antonio Pineda, Sara Marugán) o para que un robot se autolocalice (PFCs Angel Cortés, Redouane Kachach, Alberto López). Con este proyecto se pretende utilizar esos mismos algoritmos cuando el objeto en si no es "puntual", sino que tiene estructura (articulaciones) y tamaño. Esto permite, por ejemplo, seguir los brazos y piernas en secuencias de personas (como en la siguiente figura del trabajo del Dr Timothy J. Roberts, púlsala para ver el video), o la posición de los dedos de una mano.

  • Conocimientos previos: saber programar.
  • Conocimientos adquiridos: C, visión artificial, tracking, filtro de partículas.
  • Hablar con: JoseMaría (codirigido con Juanjo Pantrigo).

Localización 3D de los perritos Aibo desde 4 cámaras externas

El objetivo de este proyecto es construir una aplicación de localización en 3D de objetos relevantes que integre y afine varias de las técnicas de visión usadas en el grupo (filtro de partículas, algoritmo de las moscas...). Los filtros de partículas ya los usamos con exito en el Trabajo Tutelado de Pablo Barrera para la localización 3D de un objeto. El sistema se usará para estimar con precisión la posición y orientación de los jugadores y la pelota en un campo de futbol robótico con perritos Aibos. Para ello el sistema contará con varias cámaras apuntando al terreno de juego.

  • Conocimientos previos:Programación sobre GNU/Linux.
  • Conocimientos adquiridos: C, visión computacional, cámaras firewire, stereotracking, filtro de particulas, algoritmo de las moscas.
  • Hablar con: Jose María


Reconstrucción 3D visual de escena desde varias cámaras usando voxel coloring

Se tiene enfocada una misma zona del espacio con cuatro cámaras. El objetivo del proyecto es construir una representación tridimensional de esa zona partiendo de las imágenes de las cuatro cámaras. Esta técnica se basa en el algoritmo "Voxel Coloring" de Steven Seitz, que divide el espacio en pequeños cubos (voxels) y se pregunta de qué color es cada uno de esos cubitos. Si las proyecciones de un cubo en las imágenes son todas del mismo color, todo apunta a que ese cubito tridimensional es de ese color. Estimando el color de todos los cubitos de la zona de interés se tiene una reconstrucción tridimensional de esa zona.

  • Conocimientos previos: saber programar.
  • Conocimientos adquiridos: C, visión computacional, espacios de color, rejilla tridimensional, modelo de cámara.
  • Hablar con: Jose María

image:trains.jpgimage:train-big.jpg

Joystick visual para videojuegos

Juegos como Eyetoy nos muestran las posibilidades de interacción que tiene la visión por computador en el mundo de los videojuegos. El objetivo de este proyecto de fin de carrera es emplear un sistema de seguimiento 3D con dos cámaras para controlar un videojuego con los movimientos de las manos. Al mover las manos el jugador podrá controlar la dirección de un avión o mover un personaje dentro del Quake3.

  • Conocimientos previos: C/C++, Java o C#, geometría y estadística básica.
  • Conocimientos adquiridos: Procesamiento visual con varias cámaras, técnicas de Monte Carlo, revisión de código y modificación de videojuegos.
  • Hablar con: Pablo Barrera, barrera@gsyc.es


Animación de personajes virtuales mediante visión 3D

Personajes virtuales como Gollum en las películas del Señor de los Anillos nos muestran las posibilidades que tiene el control de la animación por parte de actores. Para conseguir la animación debe existir un método automático de extraer la información del mundo real, a través de una o más imágenes, para posteriormente trasladarla a la animación por computador. En este proyecto se pretende crear un sistema de extracción automática, a través de las imágenes de varias cámaras, de la posición de una persona con el objetivo de crear una animación en tiempo real de la misma.

  • Conocimientos previos: C/C++, Java o C#, geometría y estadística básica.
  • Conocimientos adquiridos: Procesamiento visual con varias cámaras, técnicas de Monte Carlo, animación 3D en tiempo real.
  • Hablar con: Pablo Barrera, barrera@gsyc.es


Comportamiento de robots

Robot guía del departamental-II

El objetivo de este proyecto fin de carrera es programar un robot Pioneer para que haga de guía del departamental-II. Este robot debe esperar a los visitantes en la puerta del ala del GSyC, y en su tablet PC mostrar una foto y nombre de cada profesor. El visitante pulsará con su dedo en la pantalla tactil del tablet PC a qué profesor busca y el robot debe navegar por el departamental hasta la puerta del despacho del profesor seleccionado, guiando al visitante. Este proyecto utiliza navegación híbrida: por un lado es deliberativa en cuanto a que tiene un mapa del departamental que usa para calcular la ruta óptima y por otro lado es reactiva en cuanto que el robot debe ser capaz de sortear obstáculos imprevistos y/o dinámicos que le puedan aparecer. Este proyecto se apoya en trabajos anteriores en el grupo sobre navegación (como el pfc de Raúl Isado (Navegación global utilizando método del gradiente) y Alejandro López (Navegación global utilizando grafo de visibilidad) ) y sobre algoritmos de localización para que el robot sepa en todo momento en qué punto del mapa se encuentra (como los pfcs de Alberto López ([[5]]), Redouane Kachach ([[6]]) y Angel Cortés).

  • Conocimientos previos: Programación sobre GNU/Linux. Cursillo de JDE.
  • Conocimientos adquiridos: C, algoritmos de navegación.
  • Hablar con: Jose María

image:robotguia.pngimage:tabletpc.jpg

Navegación visual de un robot siguiendo balizas de colores

Este proyecto tiene por objetivo que el robot Pioneer navegue por el entorno sin chocar con ningún obstáculo y siguiendo una serie de cartulinas de colores que conforman una ruta. En vez de tener una ruta metrica fija (avanza dos metros, gira 30 grados, avanza 4 metros...), el robot sabe que tiene que seguir una baliza roja hasta que aparezca una verde, y despues buscar una azul... etc. El objetivo de este comportamiento es materializar una navegación visual en la cual el robot tiene que estar pendiente de no chocar con nada y de atender a las posibles balizas de colores que le van apareciendo por el mundo. El PFC de Pedro Díaz puede servir de base para identificar visualmente objetos con una sola cámara.

  • Conocimientos previos: saber programar.
  • Conocimientos adquiridos: C, atención visual, cámaras firewire.
  • Hablar con: Jose María


Relacionados con la Robocup

Sonar visual en un jugador

El objetivo de este proyecto es el de dotar al sistema de visión del software usado por el Teamchaos en su equipo de fútbol robótico con robots Aibo, con un método visual para detectar los obstáculos que tiene a su alrededor y poder esquivarlos. El sistema funcionará como el tradicional "sonar", pero a partir de las imágenes que obtiene de la cámara.

  • Conocimientos previos: Programación sobre GNU/Linux, Cursillo de Aibo y Open-R
  • Conocimientos adquiridos: C/C++, Java, sistemas de localización.
  • Hablar con: Paco


Herramienta de gestión y depuración de comunicaciones para la Robocup

Dentro del entorno de la Robocup, una parte muy importante de todo equipo es un buen manejo de las comunicaciones. Gracias a ellas se puede compartir información entre los robots y lograr una mejora sustancial del comportamiento del equipo. El proyecto persigue programar una herramienta visual para visualizar toda la información intercambiada por el equipo y depurar posibles fallos, obtener estadísticas, etc.

  • Conocimientos previos: Programación sobre GNU/Linux, Cursillo de Aibo y Open-R
  • Conocimientos adquiridos: C/C++, Java, comunicaciones
  • Hablar con: Carlos


Otros proyectos

Localización de un robot real mediante el algoritmo evolutivo usando visión y laser

El robot pioneer necesita saber en qué posición del mundo está para poder utilizar mapas y navegar autónomamente, por ejemplo, de un despacho a otro remoto. En los PFC de Redouane Kachach (Localización del robot Pioneer basada en láser) y Alberto López (Localización visual del robot Pioneer) resolvimos ese problema con filtros de partículas, usando como datos de entrada las medidas del sensor laser y de la cámara, respectivamente. Ambos funcionaban en el robot real, como prueba de concepto. En el PFC de Angel Cortés probamos un algoritmo más potente, uno evolutivo multimodal, para aumentar la robustez del sistema localizador. Se probó exhaustivamente en entornos difíciles, con alta simetría, como el departamental-II de la figura derecha, y funcionó bastante bien. En la figura se aprecian razas de posiciones tentativas (pintadas de colores diferentes) que finalmente convergerá a la posición real del robot. Pero siempre se probó en el simulador Stage. En este PFC se trata de utilizar el algoritmo evolutivo multimodal y todos los sensores posibles: la visión, el láser, la odometría, etc para localizar al robot real en el entorno del departamental-II de manera robusta y fiable.

  • Conocimientos previos: saber programar.
  • Conocimientos adquiridos: C, filtro de partículas, algoritmo de las moscas.
  • Hablar con: Jose María

image:apioneer.jpgimage:locmusimok.jpg

Personal tools