Práctica final de Lego NXT - Navegación con rádar

Bien!! Wall·E, bien!! por fin le llegó la hora de aprender algo nuevo, y lo más importante, lo aprendió bien.




Lo primero que hicimos fue colocar el sensor de ultrasonidos en un sitio adecuado para su movimiento, permitiéndonos obtener una buena información. Eso nos llevo una clase, pero conseguimos un excelente resultado. Tras algún retoque más, también fue posible conseguir una buena estabilidad a través de engranajes.



Es el momento de crear el algoritmo que permita a nuestro robot encaminarse por el hueco más amplio que observe. Para ello hemos programado un código en el que damos puntuaciones a los valores guardados en el array (las medidas obtenidas por el ultrasonido). En esta puntuación no tenemos en cuenta solo el ángulo que estamos tratando. También influyen los ángulos adyacentes siempre y cuando la distancia obtenida por el ultrasonido en ellos se encuentren entre la distancia del ángulo que puntuamos y un 15% menos.

import lejos.nxt.*;
import lejos.navigation.Pilot;;
public class usoRadar {

/**
* @param args
*/
final static int amplitud = 180;
final static int resolucion = 10;
final static int velocidad = 500;
private static int Puntuar(int[] distancias){
int puntos[] = new int[amplitud/resolucion];
int mayor, pos;
for (int i=1; i<(amplitud/resolucion -1);i++){ puntos[i] = distancias[i]; if (distancias[i-1]>=127){
puntos[i]+=distancias[i-1];
}else{
puntos[i]-= (125-distancias[i-1])*(1.5);
}
if (distancias[i+1]>=127){
puntos[i]+=distancias[i+1];
}else{
puntos[i]-= (125-distancias[i+1])*(1.5);
}
}

mayor=puntos[0];
pos=0;
for (int j=1; j < (amplitud/resolucion); j++) { if (mayor < mayor="puntos[j];" pos="j;" sonic =" new" radar =" new" pilot =" new" data =" new" data =" radar.newScan();" giro =" Puntuar(data)*resolucion;">90){
pilot.rotate(-(giro-90));
}else{
pilot.rotate(90 - giro);
}
Button.waitForPress();

pilot.travel((int)(-data[giro/resolucion]/1.5));

}
}

}


Y aquí van algunos videos de como se maneja nuestro robot. Pero donde mejor se va a notar su comportamiento va a ser en el circuito creado por los profesores.



0 comentarios:

Publicar un comentario