Mejorar El Código De Solución Del Laberinto - Pololu 3pi Guía De Usuario

Tabla de contenido

Publicidad

8.f Mejorar el código de solución del laberinto
Hemos ido por las part
función
display_path
encontrar con todo lo demás en la carpeta
código trabajando y de entenderlo bien deberías tratar
ser tan rápido como el viento. Hay muchas ideas que se pueden trabajar para descubrir y mejorar
el código:
• Incrementar la velocidad de seguimiento de la línea.
• Mejorar las variables PID.
• Incrementar la velocidad de giro.
• Identificar situaciones cuando al robot se "pierde" para reencontrar la línea.
• Ajus
te de la velocidad en base a lo que se viene, por ejemplo, conducción recta a través de
una 'S' aumentar la velocidad.
El video muestra un prototipo de
de la versión final y que ha sido progr
código utilizado es muy avanzado (y complicado) mientras que el del ejemplo es
por lo tanto está en tus manos desarrollarlo. La mejoras al programa de ejemplo podrían incluir
la velocidad y las variables de seguim
axiales, así como el aumento de velocidad en los tramos rectos.
Cuando estábamos tratando de mejorar el rendimiento del 3pi en el laberinto, nuestro primer
paso fue mejorar la línea de seguimiento mejorando las variables PID con lo que se aumenta
lentamente la velocidad máxima del robot, y el segundo paso fue mejorar los giros para que
fuesen más rápidos y suaves.
Pronto nos dimos cuenta de que la mejora de la velocidad está limitada por las intersecciones. Si
el robot se mueve demasiado rápido cuando se las encuentra una intersección puede salirse de
pista y perder la referencia de línea. Si va lento en las intersecciones en las rectas deben
recuperar la velocidad perdida.
Podemos pensar en que la solución está entonces en el tiempo que tarda en recorrer la longitud
de cada segmento durante la fase de aprendizaje. El código puede restablecer el temporizador en
una intersección y luego se detenerse cuando el 3pi encuentra la siguiente intersección. El
programa no solo almacena una serie de intersecciones visitadas, sino que también almacena los
tiempos de una a la otra, produc
{ L, S, S, R, L,. . . . }
{ 3, 3, 6, 5, 8,. . . . }
La matriz superior representa la acción realizada en cada intersección visitada (L = giro a
izquierda, S = recto, R = vuelta a la derecha), y la m
transcurr
ido a lo largo de cada tramo hasta llegar
Las unida
des de la serie han sido elegidas para da
de maner
a significativa diferenciar entre los segm
superar los 255 (máximo byte entero) para cualquier segmento del laberinto.
Esta segundo restricción significa que los valores pueden ser almacenados en una matriz de
caracteres sin signo (es decir, el tiempo de cada segmento ocupa sólo una byte de m
ayuda a mantener el uso de memoria mínima.
El ATmega168 lleva 1024 bytes de memoria RAM, por lo que es importante almacenar datos de
forma eficiente y dejar suficiente espacio para la pila de instrucciones, que tam
almacenan en la RAM. Una buena regla es dejar 300 a 400 bytes de RAM disponibles para la
es más importantes del código; las otras piezas de código (como la
, la secuencia de puesta en marcha y calibración, etc.) se pueden
()
3pi con un solo led azul de encendido, pero funciona igual al
amado completamente con LVBots Challenge 4.0. El
iento de línea PID para producir rápidos y cortos giros
iendo algo así como:
examples\3pi-mazesolver
de mejorarlo o adaptarlo a tu robot para
atriz de abajo indica la cantidad de tiempo
a la siguiente intersección.
r con los números que pueden permitir al robot,
entos más largos y más cortos, pero que nunca
. Después de tener el
tá resumido y
emoria), que
bién se

Publicidad

Tabla de contenido
loading

Productos relacionados para Pololu 3pi

Tabla de contenido