- El calculo del ángulo de la fuerza total (gracias al cual decidimos cuanto debemos girar) lo hemos hecho con la función atan2 de C. Esta función nos devuelve el ángulo formado entre el robot y la fuerza total y nos lo da en el rango (-pi, pi). Antes lo teníamos con la funcion cos, pero esta función devuelve el resultado entre (0,pi) por lo cual pude dar problemas para ciertos ángulos ya que hay un mismo ángulo puede ser dado por distintos vectores, esto con la función atan2 no ocurre.
- Para el movimiento hemos considerado diferentes rangos y el signo del ángulo devuelto por la función atan2. Para evitar que el robot oscile continuamente cuando tiene que ir de frente hemos decidido que en el rango [-5,5] el robot no gire. Además entre [155,180] y [-180,-155] hemos decidido que el robot solo gire en un sentido, de esta forma cuando encontramos un obstaculo que hace que la fuerza total apunte hacia el opuesto al frontal, el robot no oscilará continuamente y girará hacia un lado esquivando el obstaculo.
- Hemos aumentado la velocidad lineal maxima hasta 800.
Recorrido del circuito sin poner obstáculos:
Tarda en dar la vuelta completa más o menos 3'15''
Si no puedes ver el video pincha puedes pinchar aqui
Recorrido del circuito con obstaculos:
Se puede observar en la imagen y en el video que nuestro robot apura bastante para esquivar el robot pero finalmente lo consigue y no se para. Los círculos verdes marcan donde ha sido colocado el obstáculo para ser esquivado.


