Práctica 2: Obstacle Avoidance
Published in
2 min readDec 12, 2020
Descripción
- Lo que queremos conseguir con esta práctica es hacer que un coche sea capaz de completar una vuelta al circuito esquivando todos los obstáculos.
Sistema
- Para realizar esta practica solo haremos usa del mapa y el láser.
- El funcionamiento principal del coche es: Avanzo hasta el target, lo elimino y fijo mi siguiente target. Por el camino voy esquivando obstáculos.
Hardware
- Como actuadores tendremos las ruedas del coche las cuales podrán moverse de forma lineal y angular.
- Como sensores disponemos de dos: Un láser LIDAR 180º para saber la distancia con todas las paredes y obstáculos del circuito.
Software
Como ya he nombrado anteriormente, disponemos del mapa donde tendremos que seguir los siguientes pasos:
Fuerza atractiva
- En nuestro mapa tendremos diferentes target por los cuales iremos pasando uno a uno. Para empezar lo que haremos es que la orientación del coche sea dirija hacia el target por lo que usaremos la posición del robot y del target para calcular la mínima distancia hacia ella que será una linea recta. Con esto conseguiremos la fuerza atractiva hacia el primer target.
Fuerza de repulsión
- La fuerza de repulsión es la que se produce al detectar el láser un obstáculo cercano y esta se dirigirá en dirección contraria al obstáculo.
- Esta fuerza lo que hará es modificar nuestra dirección para indicarnos que nos estamos acercando a un obstáculo. Cuanto mas cerca estemos mayor sera esta fuerza.
Fuerza resultante
- Es tan simple como realizar una media entre la fuerza atractiva y la fuerza de repulsión. Con ello lo que conseguiremos es que nuestro coche este pendiente de las dos e intente corregir ambas para así poder llegar a su destino sin chocarse con nada.
Conclusiones
- Este algoritmo es bastante útil para el tema de navegación sin fijar una ruta. El coche simplemente va avanzando siguiendo la distancia mínima (linea recta) y adaptándose a las circunstancias que en este caso serian las paredes y diferentes obstáculos.
- Uno de los detalles que tuve que tener en cuenta es que el siguiente goal puede estar muy lejano y en una dirección muy mala y al equilibrar fuerzas el coche se acababa chocando con un obstáculo. Limitando cuanto puede hacer que gire el coche en función de su fuerza de atracción me ayudo a solucionarlo.