Post

Nodo navegación reactiva y evitar derrapes

Nodo navegación reactiva

Esta semana estuve trabajando en un nodo para que el robot navegue por un entorno de forma reactiva sin ningún tipo de mapa. La idea es simple: cuando el obstáculo frontal está bastante lejos, avanza normal; si el obstáculo empieza a estar cerca, corrige hacia donde tenga más espacio; si el obstáculo está muy cercano, el robot se detiene y gira sobre su eje de forma aleatoria. El objetivo de este nodo:

  • Poder usar este nodo para navegar por el entorno y probar a hacer un mapa de segmentos con el robot.

  • Poder mover el robot por el entorno sin el mapa, muy despacio para evitar derrape de ruedas.

Evitar que robot derrape: ground truth

Para poder generar un mapa de segmentos aceptable, precisamos que el robot no derrape y genere falsas mediciones. Así, si odom coincide con el movimiento real, podremos confiar en él para mapear. Para lograrlo hemos:

  1. Bajado aceleraciones en el plugin DiffDrive.
    • Aceleración lineal: 5 m/s^2 -> 0.5 m/s^2
    • Aceleración angular: 4 rad/s^2 -> 0.8 rad/s^2
  2. Aumentado la fricción de las ruedas.

  3. Aumentado fricción del suelo.

Con esto no nos aseguramos que el robot no derrape, pero bajamos mucho la probabilidad de que ocurra.

La idea es continuar haciendo un nodo que detecte si ha derrapado el robot. Crearemos un nodo que compare lo que debería moverse el robot con lo que se ha movido en concreto. Si no difiere, entonces estos cambios habrán surtido efecto.

This post is licensed under CC BY 4.0 by the author.

Trending Tags