jueves, 5 de mayo de 2011

Afinando el choca-gira

Una vez programado el comportamiento base del choca-girar, es decir, los tres estados y la transición entre ellos, me encontré con un problema: el robot tiene mucha inercia, y es relativamente fácil tanto chocar con la pared como volcarlo.

El choque con la pared se produce porque la velocidad adelante que le asignamos no la adquiere instantáneamente, por lo que si la distancia a la que comenzamos a dar orden de retroceder es corta, no le dará tiempo a hacerlo y chocará.

El problema del vuelco típicamente pasa cuando para resolverlo hacemos la velocidad de retroceso más alta. Pasar de golpe una velocidad de ~700 mm/s a una velocidad de -500 mm/s, por ejemplo, volcará el robot.

Para estos problemas hay soluciones posibles:
• aumentar la distancia a la que cambiamos de estado hará más difícil el choque
• reducir las velocidades de avance/retroceso también
• algo más sofisticado, se puede hacer que la velocidad adelante dependa de la distancia al obstáculo, siendo menor cuando nos acercamos a la distancia a la que cambiaremos de estado

Presento una imagen de la simulación.

No hay comentarios:

Publicar un comentario