viernes, 6 de mayo de 2011

La segunda práctica: navegación local usando campos de potencial

La segunda práctica consiste en hacer bastante más inteligente nuestro robot. En lugar de limitarse a detenerse y girar aleatoriamente cuando va a chocar, ahora queremos que sea capaz de ir hasta un punto destino esquivando obstáculos que pueda haber en el camino. Para ello usaremos un método relativamente simple: el de campos de potencial generalizados.

Se trata de un método de navegación local, es decir, no basada en mapa sino en sensores, que sirve para objetivos cercanos.

El método consiste en considerar que nuestro robot está sometido a una fuerza atractiva, que depende de la distancia al destino, y de un campo de fuerzas repulsivas, que depende de las distancias a cada obstáculo.

Haremos la fuerza atractiva proporcional a la distancia, con un máximo. Es decir, más allá de una determinada distancia la fuerza atractiva es constante.

La fuerza repulsiva de cada obstáculo percibido es inversamente proporcional a la distancia. La fuerza repulsiva total será la suma vectorial de todos los obstáculos. En el caso del robot Pioneer usaremos el sensor detector de distancias laser, que nos proporciona la distancia a obstáculos con resolución de 1º, de en toda la mitad frontal de nuestro horizonte. Es decir, tendremos 180 distancias a obstáculos con las que calcular nuestra fuerza repulsiva.

La fuerza total se calcula combinando la atractiva y la repulsiva con dos parámetros cuya razón da el grado de timidez  o prudencia (avanzamos lentamente hacia el objetivo, nos dan "miedo" los obstáculos) contra temeridad (avnzamos hacia el objetivo ignorando los obstáculos). Una vez calculada la fuerza total, será la que guíe nuestra navegación. Es decir, le daremos órdenes a los sensore en función de su valor y dirección.

Nos recomienda el profesor que primero usemos las rutinas del simulador para dibujar el vector de la fuerza atractiva con origen en el robot. Luego, que pintemos alguna componente repulsiva, luego la suma. Finalmente podemos pintar también la resultante.

Lo hago mientras mantengo las rutinas de navegación choca-gira, y eso me permite familizarizarme y ajustar los parámetros para que las fuerzas tengan un balance razonable.

En la figura se aprecia solo la fuerza atractiva, en rojo, en diagonal hacia el puntero del ratón. Las otras líneas son los ejes de coordenadas del robot.

No hay comentarios:

Publicar un comentario