1 minute read

Week 35 – Pipeline con CARLA Recorder, Extracción Síncrona, PilotNet y Optimización para AMD ROCm

Trabajo realizado

  • Optimización de Recolección de Datos: Se refactorizó el script de recolección de telemetría (DAgger) para utilizar el CARLA Recorder (.log), eliminando el cuello de botella de escritura a disco de imágenes cuadro por cuadro durante la simulación activa. Se solucionaron problemas de captura de eventos unificando la visualización mediante Pygame.
  • Resolución de Errores de Entorno (Linux/Vulkan): Ante errores de Segmentation fault (Signal 11) por sobrecarga de VRAM al intentar cargar mapas masivos (Town 12), se fue la recolección hacia Town 03 para garantizar estabilidad se grabo un dataset con 46mil muestras.
  • Post-Procesamiento y Extracción Síncrona: Se desarrolló un script de Replay capaz de leer los .log de CARLA y extraer pares exactos de imagen-telemetría a 20 FPS garantizando sincronía. En este paso se integró una máscara (ROI) automatizada en memoria para eliminar la mitad superior de la imagen (cielo), enfocando el dataset en la calzada.
  • Entrenamiento con PilotNet y AMD ROCm: Se implementó la arquitectura clásica PilotNet utilizando PyTorch. Se optimizó el flujo de los DataLoaders (workers, pin_memory, batch size).
  • Inferencia Desacoplada (Control Lateral vs. Longitudinal): Se diseñó e implementó el script de inferencia o closed-loop. El control lateral (steer) fue delegado completamente al modelo PilotNet entrenado, mientras que la velocidad longitudinal se controló mediante la implementación de un Controlador Proporcional (P-Controller), manteniendo una velocidad de crucero constante para aislar y evaluar el rendimiento de la red neuronal.

Visualizaciones

Inferencia PilotNet con P-Controller
GIF de ejecución autónoma: PilotNet controlando la dirección y P-Controller manteniendo velocidad constante.