Saltar al contenido

Construye la estrategia del Obstacle

Programa paso a paso el reto Obstacle de la WRO: ubicarse con los muros, ver y recordar las señales rojas y verdes, planificar la línea y las esquinas, seguirla y aparcar en paralelo, con pruebas y un laboratorio rápido.

Nivel: AvanzadoUnas 12 horas10 pasos

Qué vas a construir

Un programa que conduce el mismo coche del Open por el campo del reto Obstacle: tres vueltas pasando cada señal roja por la derecha y cada verde por la izquierda, sin tocarlas, y después un aparcamiento en paralelo en un hueco de 35 × 20 cm. Solo con lo que tiene el coche real: LiDAR, giroscopio y cámara, con ruido y con los retrasos medidos del servo y del motor.

Cada paso aporta una pieza con números medidos, ejercicios con pruebas automáticas y una solución de referencia que puedes comparar con la tuya.

Antes de empezar

  • Haz antes laguía del Open: aquí se dan por sabidos ROS 2, el modelo del coche, el giroscopio y el LiDAR.
  • Python con NumPy: arreglos, funciones y clases.
  • El mismo entorno del Open (Ubuntu, WSL2 o macOS con RoboStack).

Qué tan buena es la solución

Esta guía enseña la estrategia v2 del equipo tal como está hoy, no una versión terminada. En el laboratorio da tres vueltas válidas en 88 de 100 campos y aparca con 55 puntos en 11 de 20 rondas; en Gazebo ya hizo 40 puntos en 115,6 s, pero el aparcamiento todavía no termina dentro de los 3 minutos. El paso 9 cuenta qué falla y por qué. La guía se irá actualizando con cada mejora.

Código y herramientas

El código vive engithub.com/renzodamgo/robotek-learn. La rama solutions-obstacle tiene una etiqueta por paso (obstacle-step-1, obstacle-step-2…) para que veas en un diff qué cambia de un paso al siguiente.

Los pasos

  1. PreparaciónPreparar el paqueteUsa el entorno del Open, crea el paquete my_obstacle y corre una ronda del Obstacle en Gazebo.
  2. Paso 1El campo y las reglasQué pide el reglamento y cómo describir el carril, el progreso y los asientos de las señales con unas pocas funciones.
  3. Paso 2Ubicarse con los murosEstima la pose del coche ajustando el escaneo a los muros conocidos, y elige el sentido de la ronda con el primer escaneo.
  4. Paso 3Ver las señales y recordarlasEl LiDAR dice dónde está una señal y la cámara de qué color es; una memoria por asiento guarda las dos cosas toda la ronda.
  5. Paso 4La línea: un lado por señalConvierte la memoria de señales en una línea: un desplazamiento lateral sostenido junto a cada señal y rampas entre ellas.
  6. Paso 5Las esquinas: recta, arco, rectaPlanifica cada esquina como una recta, un arco y otra recta, y busca la que deja más margen con las señales de los dos lados.
  7. Paso 6Seguir la líneaUn volante que anticipa la curvatura de la línea y corrige la distancia y el rumbo respecto al punto de la línea que tiene al lado.
  8. Paso 7La misión: salir, mirar, tres vueltasUne las piezas en la estrategia: la salida con una señal encima, mirar las señales cuyo color falta, tres vueltas y parar.
  9. Paso 8Aparcar en paraleloTras las tres vueltas: acercarse alineado, parar, planificar las maniobras con una búsqueda A* y ejecutarlas despacio, una a una.
  10. Paso 9Puntuar y medirMide la estrategia con el juez en el laboratorio y en Gazebo, compara versiones con números y conoce los límites de la solución actual.