A continuacion explicaremos como hemos calculado cada una de estas fuerzas:
Fuerza de Atraccion (Fa)
Fa=Katraccion (origen-destino)(origen-destino)= Xf-Xo+ Yf-Yo
Si Xo,Yo=0
(origen-destino)= Xf - Yf
Fa=Katraccion (Xf-Yf)
Fuerza de Repulsion (Fr)
Detectamos una fuerza de repulsion cuando el laser detecta una barrera a una distacia de 1000, si el obstaculo está más lejos, éste no generará ninguna fuerza de repulsión.
El cálculo de la fuerza de repulsion lo hemos realizado a traves de la siguiente formula:
Fr=sum(Fr(i))K/dist_obstaculo
La constante K ha sido elegida a través de las prueba realizadas con el entorno, el valor de K es 18000
Fuerza Total (Ft)
Ft=Katraccion*Fa + Krepulsion*Fr ------ Katraccion= 1-Krepulsion [0-1]

Algoritmo del movimiento
El algoritmo de movimiento lo hemos calculado basándonos en la diferencia entre el ángulo formado por la fuerza total y el que formal a posición del robot. Si esta resta es positiva el giro será positivo y en otro caso será negativo.
Las velocidades del robot también las hemos dado en función de la resta de ángulo, es decir, cuanto más lejos del robot nos encontremos, más rápido será el giro y cuanto más nos acerquemos al destino más despacio nos moveremos
Videos
Acontinuacion podeis observar un video del funcionamiento del VFF. En el video el robot va más rápido de lo que va en realidad.
Podeis ver el video con mayor calidad pinchando en este enlace

Hola! estoy cursando una asignatura de robots autónomos y tengo que implementar el algoritmo VFF, como voy un poco perdido, te importaria publicar o envimarme el código fuente? gracias igualmente!
ResponderEliminarrvcastellano@gmail.com