viernes, 26 de marzo de 2010

práctica navegación vff

Hola,
este post describe los pasos realizados para la implementación del algoritmo de navegación vff(virtual force fields). Dicho algoritmo se basa en la utilización de campos virtuales de fuerzas, fuerzas atractivas en dirección al objetivo del robot y fuerzas repulsivas en sentido contrari a los obstáculos, de manera que el robot sea capaz de crear una fuerza resultante que le permita alcanzar el objetivo sorteando todos los obstáculos.

Para facilitar la navegación del robot utilizamos "vectores" de fuerza atractiva máxima que permitan hacer equitativas las fuerzas de atracción y repulsión en cada momento. La intensidad de las fuerzas repulsivas se calcula de manera inversamente proporcional a la cercanía de los obstáculos para que el robot sea capaz de calcular una fuerza resultante que le aleje de dichos obstáculos. Adjunto un vídeo que muestra el funcionamiento del algoritmo:


Los principales componentes del algoritmo de navegación VFF implementado son:
* fuerzas repulsivas inversamente proporcionales a la distancia
* fuerzas atractivas constantes (max_fza = 800) salvo cerca que es proporcional a la distancia
* Suma ponderada de la fuerza resultante:
Fresultante = alpha*Fatractiva + (1-alpha)*Frepulsiva
alpha = se utiliza para dar más peso a Fa ó Fr. En nuestro algoritmo, alpha=0.5, es decir se les da el mismo peso.
* Traducir Fresultante a órdenes para los motores (basado en casos). Casos posibles:
- distancia al objetivo < 300 --> objetivo alcanzado
- distancia al objetivo > 300 y robot girando
- distancia al objetivo > 300 y robot avanzando

Saludos

No hay comentarios: