- Hemos hecho el calculo de las fuerzas repulsivas teniendo en cuenta lo que se ha explicado en el foro. Es decir, hacer los cálculos en el sistema de referencia que es más amigable con el robot. A continuación pondremos la fórmula utilizada:
fRepulsion.x=(cos(auxiliar2)*K)/(dist_Obstaculo);
fRepulsion.y=(sin(auxiliar2)*K)/(dist_Obstaculo);
donde auxiliar2 no es directamente el indice del laser que nos ha dado un posible obstaculo, sino que aplicamos un pequeña modificación para obtener directamente las fuerzas repulsivas en el mismo sistema de referencias que el robot. Esta pequeña modificación del ángulo es: (indice-90+180)*DEGTORAD;
A continuación pondremos dos videos, uno del vff en el circuito simple y otro en el de Cheste.
El tiempo que tardamos en dar la vuelta completa al circuito de Cheste es 3'35''
CIRCUITO SIMPLE:
fRepulsion.y=(sin(auxiliar2)*K)/(dist_Obstaculo);
donde auxiliar2 no es directamente el indice del laser que nos ha dado un posible obstaculo, sino que aplicamos un pequeña modificación para obtener directamente las fuerzas repulsivas en el mismo sistema de referencias que el robot. Esta pequeña modificación del ángulo es: (indice-90+180)*DEGTORAD;
- Otra modificación que hemos hecho es no considerar todos las zonas del robot iguales a la hora de calcular la fuerza repulsiva. Cuando detectamos un obstáculo en el frontal de robot hacemos que se tenga muy en cuenta, para evitar que nos estrellemos contra él. A estos valores de fuerza de repulsión le damos 5 veces más valor. También consideramos de forma especial a los obstaculos que encontremos a los lados del robot, hacemos algo parecido que con el frontal, pero aumentando la fuerza de repulsión 3 veces
- Otra cosa que hemos tenido en cuenta es si nos encontramos muy cerca de un obstaculo disminuiremos la velocidad lineal, de esta forma, evitamos que por ir muy rápido no nos de tiempo a esquivar un obstáculo. Lo que hacemos es multiplicar la velocidad lineal por 0.7
- El algoritmo de movimiento lo seguimos calculando en función del ángulo. Si el frontal del robot está centrado (entre 85º y 95º) nos moveremos recto, sin giros, en otro caso, giraremos más o menos en función del ángulo.
A continuación pondremos dos videos, uno del vff en el circuito simple y otro en el de Cheste.
El tiempo que tardamos en dar la vuelta completa al circuito de Cheste es 3'35''
CIRCUITO SIMPLE:
CIRCUITO CHESTE:

Este comentario ha sido eliminado por el autor.
ResponderEliminarHola Celeste,
ResponderEliminarestoy empezando con Player/Stage, y he intentado implementar el algoritmo VFF pero no hay manera de que funcione bien.
¿Podrías pasarme tus códigos para así echarle un vistazo? Te lo agradecería muchísimo si me lo enviaras a monjak11@hotmail.com
Muchas gracias