Anteriormente se completó la vuelta en 4:56 minutos y avanzando sobre lo implementado esa vez, se ha podido conseguir un tiempo de 2:20 como se puede observar en el vídeo Vuelta completa en 2:20 min.
Para ello se han añadido más variables self. como las siguientes:
-self.nh, para controlar el número de iteraciones que el Formula 1 no encuentra la línea donde debería haber.
-self.w, para controlar la velocidad de rotación ya que anteriormente se utilizaban constantes.
-self.state, para poder visualizar en que estado se encuentra el Formula 1. Se han determinado 5 estados:
-Stop: Cuando se inicia el script My_Algorithm.py.
-Run: Cuando el coche se encuentra dentro del umbral de recta.
- +rot: Cuando el coche se encuentra rotando hacia la izquierda.
- -rot: Cuando el coche se encuentra rotando hacia la derecha.
- Search: Cuando el coche se encuentra buscando la línea.
-self.t, para almacenar el tiempo total actual en segundos. Para esto se ha utilizado el self.iteration y el tiempo de ciclo (80ms)
Como se puede observar estas variables son de control y en el vídeo Vuelta completa en 2:20 min, se puede observar que la imagen filtrada derecha tiene escrito algunas de ellas. En concreto se ha realizado un control de:
-self.iteration, para saber en que iteración se encuentra.
-self.v, para saber en que velocidad se encuentra.
-self.w, para saber en que velocidad de rotación se encuentra.
-x1, para saber en que posición x se encuentra.
-self.state, para saber en que estado se encuentra.
-self.t, para saber cuanto tiempo tarda en dar una vuelta.
A parte de estos cambios también se han realizado los siguientes cambios:
-Se ha fijado una constante para self.xf, que se ha comprobado que es la ideal para el circuito probado.
-El umbral de recta se ha modificado a: self.xf*0.85<x1<self.xf*1.15. El cual corresponde al estado Run. Pero interiormente se han creado subestados cuando self.xf*0.85<x1<self.xf*0.9 pasando al estado +rot y self.xf*1.1<x1<self.xf*1.15 pasando al estado -rot, dándole respectivamente una velocidad de rotación de 0.3 o -0.3. Pero manteniendo la velocidad obtenida en el umbral de recta.
-Se ha modificado la aceleración del coche a múltiplos de 15, pero se mantiene el aumento de 3 puntos en la velocidad.
-Fuera de estos umbrales, aparecen los estados de +rot y -rot ambos con una velocidad de rotación de 0.5 y -0.5 respectivamente. Y una velocidad de 3.
-Se ha comprobado si hay una recta en la imagen para pasar al estado search en caso de no ser así. Dentro de este estado el coche tiene una velocidad de 0.5 y una velocidad de rotación de 0.3.
Finalmente en el vídeo se comprueba que efectivamente se cumplen los 2:20 de velocidad.
Vuelta completa en 2:20min
No hay comentarios:
Publicar un comentario