domingo, 13 de mayo de 2012

Nuevo algoritmo de clasificación de residuos


Conociendo ya como funciona el algoritmo de detección, vamos a explicar ahora el de clasificación de residuos, definido en el Behavior ProcessData().

Hay que tener en cuenta que, para poder llevar a cabo la clasificación, necesitamos partir de un ArrayList de objetos de la clase Container que se han creado durante la fase de detección. En él tendremos almacenados la posición de los 4 contenedores (tanto la distancia como el ángulo) y su color.


Behavior ProcessData()

En la entrada titulada “Software básico del robot (parte III)” mencionamos que este comportamiento todavía no se estaba usando, pero lo habíamos creado pensando que en el futuro lo necesitaríamos. El código de comando que lleva asociado es el “c2 c1 c0 = 100”.

El funcionamiento de este algoritmo es mucho más sencillo que el de detección de contenedores:

  1. El sensor de color que apunta a las pelotas comprueba de qué color es la que tiene preparada para disparar.
  2. Accedemos al ArrayList de contenedores y buscamos en qué posición respecto al polo Norte magnético se encuentra el contenedor del mismo color que esta pelota.
  3. El robot gira hasta que la brújula indica que ha llegado a la posición del contenedor.
  4. Se dispara la pelota.
  5. Comprueba con su sensor de color si todavía le queda en el cargador alguna pelota roja, amarilla, azul o verde. En caso de que queden, la variable “quedanBolas” será “true” y volveremos al punto 1. Si ya se han clasificado todos los residuos (“quedanBolas=false”), se termina el proceso de clasificación y el robot se para.
En la aplicación Android, este algoritmo se inicia accionando el botón de “Procesar” en la página de “Comandos”.


Con la implementación de estos dos algoritmos, damos por terminada nuestra práctica básica. Ahora estamos trabajando en mejoras para controlar el robot mediante reconocimiento de gestos.

No hay comentarios:

Publicar un comentario