jueves, 25 de marzo de 2010

PRACTICA 4

Modelo de movimiento mediante la clase MCLParticleSet

Este apartado ha sido el mas complicado de la práctica. Nos ha costado encontrar como inicializar las partículas en el punto indicado pero al final lo conseguimos!!!!Para ello hemos creado un objeto de tipo particulas y hemos aplicado el siguiente comando:
Comando para modificar la posición de la partícula:
particulas.getParticle(i).getPose().setLocation(new Point(30,30));
Comando para modificar la orientacióno de la partícula:
particulas.getParticle(i).getPose().setHeading(0));

Una vez inicializado todas las partículas las hemos ido actualizando poco a poco mediante el comando applymove.
Luego simplemente hemos mostrado cada partícula con un punto negro en la pantalla. Para obtener la posicion de cada partícula hemos usado el siguiente comando:
Pose p= new Pose();
p= particulas.getParticle(i).getPose();
posx=p.getX();
posy=p.getY();
LCD.setPixel(1,posx,posy);

El resultado lo mostramos en el siguiente video. Las partículas mostraran la posicion del robot al hacer un cuadrado:



Cálculo de trayectorias

Este apartado nos ha parecido más facil que el anterior. Lo más dificil ha sido calcular el ángulo para orientarse hacia el punto que queremos que fuese.
En el primer basta con calcular la hipotenusa que producen los dos puntos y recorrer esa distancia. Tras llegar al punto se orienta.
En el segundo apartado realizamos una media circunferencia. Para ello calculamos el radio que es la hipotenusa/2. El recorrido que tendrá que hacer será Pi*R.

MEDIDAS QUE HEMOS PROBADO PARA LOS VIDEOS

1º Cuadrante 30,30,180
2º Cuadrante -30,30 -90
3º Cuadrante -30,-20,0
4º Cuadrante 30,-20,90


pathfollow1



pathfollow2


jueves, 11 de marzo de 2010

PRACTICA3

Para esta practica hemos tenido que cambiar el look de CAJA11 para que pueda realizar las tareas. Le hemos colocado el sensor de contacto adelante, le hemos incorporado unos sensores de luz y el vector de ultrasonido lo hemos puesto mas abajo.





Comportamiento de evitación de obstáculos usando sensores de contacto

Para este apartado hemos aplicado el método rotate y el método travel para esquivar el obstáculo. Este apartado no ha sido muy complicado. El resultado lo mostramos en el siguiente vídeo:




Comportamiento de evitación de obstáculos usando el sensor de ultrasonidos

Este apartado sin duda es el más difícil que hemos realizado hasta ahora, de hecho CAJA11 no se comporta de forma adecuada para esquivar el obstáculo. El comportamiento de CAJA11 "perdido" se muestra en el siguiente vídeo:



Comportamiento ir hacia la luz

En este apartado tiene que ir hacia la luz, para ello usamos dos sensores de luz para que CAJA11 sepa donde se encuentra la luz. Con este comportamiento podemos hacer que CAJA11 nos siga. El resultado lo mostramos en el vídeo:




Comportamiento ir hacia la luz evitando obstáculos

Este es una mezcla de dos comportamientos, el de esquivar obstáculos y el de seguir la luz. En este ejercicio CAJA11 se encargará de seguir a la luz y no chocarse con obstáculos(latas). El resultado se muestra en el siguiente vídeo: