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:
- Primero, el cuadrado solo con los encoders: 4 lados y 4 giros, para medir cuánto se equivoca el robot.
- 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á?
Montaje
Sección titulada «Montaje»- 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.wbtdel 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.
Entrega
Sección titulada «Entrega»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 a Paso
Sección titulada «Paso a Paso»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).
- Llene el bloque del inicio con la
MACde su ladrillo y con el radio (RADIUS_WHEEL) y la trocha (TREAD_DISTANCE) medidos con regla. - 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.
- Haga que el robot avance desde el marcador 1 hasta que el marcador 2 quede en el centro de la imagen, y deténgalo.
- 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.
- Sabiendo dónde está ese marcador en el mapa, calcule la posición y la orientación del robot en el mapa.
- 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.