Ir al contenido

Cuadrados con encoder

Hagamos que el robot realice un cuadrado de 50cm de lado con giros de 90 grados en las esquinas 4 veces. Esta vez usaremos los encoders: se define la distancia a recorrer en metros y los ángulos a girar en grados.

with ev3.TwoWheelVehicle(
0.0152, # radius_wheel_measured
0.1400, # tread_measured
protocol=ev3.BLUETOOTH,
host=MAC,
speed=20,
) as vehicle:
lado = vehicle.drive_straight(0.5) + vehicle.drive_turn(90, 0.0)
cuadrado = lado + lado + lado + lado
for i in range(4):
cuadrado.start(thread=False)

Al terminar cada cuadrado, el programa imprime dos poses. La primera es la de la odometría, es decir, dónde cree el robot que está según sus encoders. La segunda es la real, la que en el laboratorio mediría con una regla. Compárelas.

  1. ¿Cómo mejoran los encoders la precisión del movimiento comparado con el control por tiempo?

    Considera las ventajas de medir la rotación real de las ruedas versus estimar basándose en tiempo.

  2. ¿Por qué la odometría dice que el robot volvió al origen, pero la pose real muestra otra cosa?

    Piensa en qué parámetros usa el programa para convertir grados del motor en metros y en grados de giro.

  3. ¿Por qué aún puede haber errores de posicionamiento incluso usando encoders?

    Piensa en factores como la diferencia de diámetro entre las ruedas y la precisión de los encoders (1° en el EV3).

  4. ¿Cómo afecta la resolución del encoder en la precisión del cuadrado?

    Reflexiona sobre la relación entre la resolución y la exactitud de la medición: ¿cuánto avanza la rueda por cada grado?

  5. ¿Qué diferencias observas en la repetibilidad entre cuadrados usando encoders?

    Analiza si los errores se acumulan de la misma manera que con control por tiempo.

  6. ¿Por qué es importante calibrar la relación entre grados del encoder y distancia real recorrida?

    Piensa en las variables que afectan esta conversión: el diámetro efectivo de la rueda y la distancia efectiva entre ruedas.

  • Calibración de encoders: Medir y ajustar la conversión entre grados del encoder y distancia real recorrida (siguientes prácticas).
  • Compensación de diferencias: Calibrar las diferencias entre las ruedas izquierda y derecha para el movimiento recto.
  • Corrección acumulativa: Implementar algoritmos que corrijan los errores de posicionamiento acumulados.