PRACTICA 3 OBSTACLE AVOIDANCE
Silvia Calvo Cabello
Se desarrolló un programa en Unibotics para un vehículo de Fórmula 1 autónomo, utilizando navegación local. Este programa tiene como objetivo alcanzar puntos específicos (waypoints) definidos en coordenadas globales, y para evitar colisiones se aplica la técnica de Virtual Force Field (VFF).
La técnica VFF consiste en un enfoque de navegación local que utiliza fuerzas virtuales. Estas fuerzas incluyen componentes atractivos hacia los objetivos y componentes repulsivos generados por obstáculos, orientados en dirección opuesta. La fuerza total se calcula de la siguiente manera:
Fuerza resultante = α * Fuerza atractiva + β * Fuerza repulsiva
Fuerza atractiva: Esta se determina calculando la posición relativa del robot con respecto a las coordenadas globales. Para controlar el módulo de esta fuerza, se establecen límites máximos a los que puede llegar.
Fuerza repulsiva: Se calcula a partir de los datos obtenidos mediante un láser de 180 grados, el método usado ha variado durante todo el proceso de programación (los cuales se explican en el campo de pruebas) pero el resultante consiste en: Filtrar todas las medidas por debajo de una distancia (5 m ) y de cada uno de los puntos restantes calcular sus respectivas fuerzas, y por último, para hayar la final, hacer la media de esas fuerzas dando más valor a las que se encuentran delante del coche.
- Equilibrio de fuerzas: Por la manera de calcular las fuerza resultante es posible que esta sea nula. Esto se debe a que la fuerza atractivo y repulsivo son iguales y opuestos (multiplicados por su alpha correspondiente). Por ello En mi codigo si eso llega a pasar se hace que la fuerza restante total sea más osado, dando mas fuerza al atrayente
Primer intento: Se calculó el vector repulsivo utilizando solo un punto del láser, el más cercano al vehículo. Aunque funcionó, resultó frágil e inestable.
Segundo intento: Se calculó el vector repulsivo asignando pesos a las distancias más cercanas al frente del vehículo. La primera prueba no fue exitosa debida a un mal cálculo de los pesos ya que se calculaban a la inversa, al corregir ese error, la prueba funcionaba correctamente menos en un caso en concreto que habia un coche y se chocaba con él
Tercer intento: Hacer que solo tuviese en cuenta las distancias dentro de un cuadrado al rededor del coche para intentar solucionar el error anterior del coche. Pero se acercaba mucho a las paredes asique volvi al anterior.
Tener el cuenta que estos son intentos de algoritmos para calcular la fuerza repulsiva total, pero n cada uno de estos intentos se hicieron pruebas con distintos alphas y betas, y distancias maximas, asi como la veloidad del coche.
En el siguiente video se puede observar el fucionamiento del coche, aunque en este no se vea el caso singular de la anulacion de fuerzas a veces se daba, sobretdo cuando al resetear la pagina, no se reseteaban los objetivos por lo que en vez de ir a por el primero, iba al segundo, yendo al lado de la pared hasta anularse las fuerzas.
Un inconveniene es que gira muy bruscamene para evitar a los coches