Ir al contenido

Ejercicio — Mejorar actividad de cuadrados

En la semana 12 el robot hizo cuadrados contando las vueltas de las ruedas, y vimos que nunca vuelve exactamente al punto de partida. En este ejercicio vamos a mejorar ese cuadrado en dos etapas:

  1. Primero, el cuadrado solo con los encoders: 4 lados y 4 giros, para medir cuánto se equivoca el robot.
  2. Después, corrigiendo la odometría con marcadores ArUco puestos en las esquinas, con lo que vimos en la práctica 4.

La pregunta que queremos responder es: ¿cuánto mejora el robot cuando puede ver dónde está?

  • Ponga 4 marcadores ArUco en las esquinas de un cuadrado de 50 cm, medido de centro a centro, todos con la misma orientación, como en el paso 6 de la práctica 4.
  • El robot parte con el centro del eje sobre el primer marcador, mirando hacia el segundo, y recorre el cuadrado girando a la izquierda.
  • En el simulador: abra worlds/ejercicio_cuadrado.wbt del proyecto del simulador. El robot ya está sobre el marcador 1, mirando hacia el 2; el cuadrado es 1 → 2 → 9 → 8 → 1, con marcadores de 3 cm.

Suba un video al canal del curso mostrando y explicando las mejoras, junto con un documento donde compare las trayectorias reales y las que calcula el programa, antes y después de cada mejora.

Este ejercicio no tiene puntuación directa, pero es excelente preparación para el Parcial 2 (semana 14).

Paso 1 — Línea base: el cuadrado con encoders

Parta de C09-square-encoder.py: hace 3 vueltas al cuadrado de 50 cm con drive_straight y drive_turn, y después de cada esquina imprime la pose que da la odometría (vehicle.position).

  1. Llene el bloque del inicio con la MAC de su ladrillo y con el radio (RADIUS_WHEEL) y la trocha (TREAD_DISTANCE) medidos con regla.
  2. En el simulador, cambie la importación por import ev3_sim as ev3: el programa imprime también la pose real y el error en cada esquina. En el laboratorio, mida la pose real con la regla.

Anote en una tabla, para cada esquina, la posición según la odometría, la posición real y la distancia entre las dos.

Preguntas para orientarse:

  • ¿Qué dice la odometría al final de cada vuelta? ¿Y qué muestra la regla? ¿Por qué el robot “cree” que cerró el cuadrado?
  • ¿El error crece igual en cada vuelta? ¿Cuánto cambia la orientación del robot en cada vuelta?
  • ¿Qué parte del error viene de los giros y qué parte de las rectas? ¿Cómo lo puede averiguar con los datos de la tabla?
Paso 2 — ¿Dónde estoy según el marcador?

La cámara mira al piso un poco delante del eje de las ruedas. Mida esa distancia en su robot: es la distancia entre el centro del eje y el punto del piso que aparece en el centro de la imagen. En el simulador es de 22 cm.

  1. Haga que el robot avance desde el marcador 1 hasta que el marcador 2 quede en el centro de la imagen, y deténgalo.
  2. Con lo que hizo en C07, calcule dónde está el marcador visto desde el robot: cuántos metros adelante y cuántos a la izquierda.
  3. Sabiendo dónde está ese marcador en el mapa, calcule la posición y la orientación del robot en el mapa.
  4. Compare su resultado con la odometría y con la pose real.

Preguntas para orientarse:

  • Después de rotar la imagen como en C02, ¿hacia dónde queda el frente del robot en la imagen? ¿Y su izquierda?
  • ¿Cómo convierte los píxeles a metros? ¿Necesita saber a qué altura está la cámara?
  • Si el robot está girado 10° hacia la izquierda, ¿cómo se ve el borde superior del marcador en la imagen? ¿Cómo obtiene de ahí la orientación del robot?
  • Si conoce la posición del marcador en el mapa y la posición del marcador vista desde el robot, ¿cómo despeja la posición del robot? Repase la diapositiva “Corregir la odometría con una marca”.
  • ¿Qué está más cerca de la pose real: lo que dice la odometría o lo que dice el marcador?
Paso 3 — Corregir la odometría en cada esquina

Ahora repita las 3 vueltas, pero en cada lado deténgase donde la cámara vea el marcador de la esquina, corrija la pose del robot con lo que calculó en el paso 2, y termine el lado y el giro usando la pose corregida.

Preguntas para orientarse:

  • ¿A qué distancia de la esquina debe detenerse el robot para que el marcador quede en el centro de la imagen?
  • Los encoders siguen contando como siempre. ¿Conviene cambiar los valores de la odometría o guardar aparte una corrección? ¿Cómo combina la pose que midió con el marcador con lo que la odometría avance después?
  • Con la pose corregida, ¿cuánto debe avanzar todavía para llegar a la esquina? ¿Cuánto debe girar para quedar mirando a la siguiente?
  • ¿Qué debe hacer el programa si en alguna esquina no ve el marcador?
  • Imprima cuánto corrige en cada esquina, en centímetros y en grados. ¿Las correcciones se acumulan de vuelta en vuelta, como el error del paso 1?
Paso 4 — Usar los parámetros calibrados

Repita el paso 3 con el radio y la trocha que calibró en la semana 12.

Preguntas para orientarse:

  • En el paso 3, ¿las correcciones de ángulo tenían casi siempre el mismo signo? ¿Qué le dice eso sobre los giros?
  • ¿Cuánto cambian las correcciones con los parámetros calibrados? ¿Por qué?
  • ¿Se podrían usar las correcciones de los marcadores para calibrar la trocha sin hacer las 10 vueltas?
Paso 5 — Comparar y concluir

Arme una tabla con el error final después de 3 vueltas, en posición y en orientación, para el paso 1, el paso 3 y el paso 4.

Preguntas para orientarse:

  • ¿Por qué con los marcadores el error ya no crece con las vueltas?
  • ¿Qué pasaría si los marcadores estuvieran a 2 m uno de otro en lugar de 50 cm?
  • La medida del marcador también tiene un poco de error. ¿Conviene creerle siempre por completo, o mezclarla con la odometría? Lo veremos con el filtro de Kalman en la semana 15.