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
