Estos tiempos dejaban bastante que desear, así que, tras meditar el problema llegué a la conclusión de que el algoritmo del VFF es bastante apropiado cuando se quiere superar un obstáculo pero para navegar fluidamente por el circuito habrá que desarrollar un algoritmo distinto al del VFF.
- El primer algoritmo que se me ocurrió fue que el robot siguiera la pared de su izquierda en el sentido que le indicara la fuerza de atracción, y cuando se encontrara con algún obstáculo lo solventará mediante VFF para mas tarde volver a seguir la pared de la izquierda.
También el VFF se activará cuando el robot pierda la referencia de la pared izquierda, cosa que suele pasar cuando el robot se encuentra con curvas hacia la izquierda.
El resultado de este algoritmo fue todo un éxito, el robot acababa el circuito en 2 minutos y pocos segundos. Aunque aún los tiempos eran un poco malos.
Estos tiempos "altos" se debían a que cuando el robot perdía su referencia con la pared izquierda (generalmente en las curvas hacia la izquierda) se activaba el VFF por lo que se perdía tiempo. - Tras meditar el nuevo problema, le di una vuelta mas de tuerca a la idea de seguir la pared y modifique el algoritmo anterior de forma que cuando perdiera la referencia de la pared de la izquierda siguiera la pared de la derecha hasta volver a encontrar la pared izquierda. De esta forma el VFF solo se activaría cuando tuviera que solventar un obstáculo.
El resultado de esta nueva idea fue que, como era de esperar, el VFF no se activaba tantas veces por lo que los tiempos bajaron a1 minuto 40 y pocos segundos.
Tras conseguir estos tiempo me centré en intentar mejorar el VFF ya que solventaba obstáculos, pero lo hacía de una forma poco eficiente (a veces tenía un hueco muy grande a la derecha y decidía ir hacia la izquierda).
Así que pensé en otro nuevo algoritmo para solventar obstáculos de manera más eficiente y, si en última instancia, el robot se encuentra muy cerca de un obstáculo se activará el VFF.
Por lo que la idea que tuve fue que cuando el robot se encontrará con un obstáculo buscará cual es el hueco mas grande que hay para seguir con su camino y avanzar hacia él.
Tras implementar mi nueva idea me di cuenta que cuanto más funcionalidades se le dan al robot mas difícil es hacer un gestor de estas funcionalidades. Había veces que ante un obstáculo se activaba el VFF y otras no, o saltaban funcionalidades del robot que no quería que saltarán en ese momento.
Tras este inconveniente, decidí que lo mejor era hacer dos funcionalidades una para hacer la navegación fluida y otra para solventar obstáculos.
Por casualidad se me ocurrió probar mi nueva idea de buscar el hueco mas grande y avanzar hacia él como funcionalidad para hacer la navegación mas fluida. Cual fue mi sorpresa cuando vi que los tiempos habían bajado a 1 minuto y 18 , 19 segundos, y además el algoritmo consumía mucho menos capacidad de procesamiento.
Por ultimo tras realizar algunas modificaciones en el VFF para que fuera más seguro (había veces que se chocaba con las esquinas) el robot completaba el circuito en 1 minuto y 23, 24 segundos de forma totalmente segura.
A continuación se muestran fotos y videos con el robot recorriendo el circuito.
Foto 1: Robot recorriendo el circuito sin obstaculos.
video 1: Robot recorriendo el circuito sin obstaculos
Para ver el video con mejor calidad pulsa aqui
Foto 2: Robot recorriendo el circuito con obstaculos.
video 2: Robot recorriendo el circuito con obstaculos
Para ver el video con mejor calidad pulsa aqui
video 1: Robot recorriendo el circuito sin obstaculos
Para ver el video con mejor calidad pulsa aqui
Foto 2: Robot recorriendo el circuito con obstaculos.
video 2: Robot recorriendo el circuito con obstaculos
Para ver el video con mejor calidad pulsa aqui


No hay comentarios:
Publicar un comentario