Showing posts with label Practica 1. Show all posts
Showing posts with label Practica 1. Show all posts

Saturday, April 13, 2013

Practica 1: Primeros pasos

Como ya se había avanzado el planteamiento principal va a ser encontrar donde esta la linea como primer objetivo. Para ello tiramos 9 lineas en bloques de 3 como se muestra en la imagen.


Con dichas lineas buscaremos donde se cortan con los bordes de la linea "roja" y de ahí obtendremos el centro la linea que es lo que buscamos.

Como novedades es interesante que debido a que OpenCV utiliza BGR en lugar de RGB la linea y el cielo son rojos y no azules como creia en un primer momento. Realmente es algo que da un poco igual pero es curioso.


Una vez tenemos las lineas encontramos el centro de la linea roja. Como se puede ver hay ciertos problemas cuando la linea se sale de la imagen. Esto puede hacer que tenga que replantar mi estrategia o que busque una solución.

Sunday, April 7, 2013

Practica 1: Retos y Planteamiento

Una vez tenemos ya el entorno completamente preparado para el desarrollo solo nos falta empezar a programar. Pero antes es importante analizar el objetivo de la practica, que retos podemos encontrarnos y que soluciones proponemos.

El objetivo principal de la practica es conseguir que el robot pioner con el uso de una única cámara sea capaz de dar una vuelta completa al mapa "jaramaSigueLinea.world" siguiendo la linea azul que hay pintada en el suelo. El objetivo "secundario" es que dicha vuelta la de lo mas rápido posible.

Los problemas que nos podemos encontrar son de diversos tipos y con mayor o menor importancia y los listare a continuación.
  • Problemas del entorno:
    • Linea azul del mismo color que el cielo.
    • Cámaras con ruido.
    • Linea azul interrumpida por lineas de otros colores.
    • Inercia.
    • Curvas .
  • Problemas de desarrollo:
    • Como detectar la linea.
    • Decisión de la velocidad/dirección.
    • Perdida de la linea por parte del robot.
    • Tiempo de ejecución (FPS).
Hay que plantearse las diversas soluciones e ideas para estos problemas y los que surgirán en el futuro.
  • Soluciones a problemas del entorno:
    • Afortunadamente el cielo esta arriba y la linea abajo, solo analizaremos lo que nos interesa.
    • Con el ruido poco se puede hacer excepto un PID que sea robusto.
    • Se tratara de rellenar los huecos o ver el tamaño de esas lineas y coger varios puntos.
    • Para la inercia y las curvas hará falta bajar la velocidad a su llegada.
  •  Soluciones a problemas de desarrollo:
    • Tomaremos puntos en tres zonas diferentes de la mitad inferior de la imagen. En cada zona tomaremos 3 puntos separados por 2px o 3px para asegurarnos no caer en una linea negra. Con ello sabremos donde esta la recta y en que dirección apunta.
    • Se tratara de ir mas rápidos en las rectas y frenar a tiempo para las curvas.
    • Se implementara un modulo que en el caso de perder la linea sea capaz de encontrarla de nuevo.
    • Se tratara de ser todo lo eficiente posible, por ejemplo no utilizando toda la imagen y solo procesando "x" puntos.
En la próxima entrada hablaremos de el primer intento y  pondremos algunas imagenes del proceso de desarrollo.