Week 95 - Robustez del piloto, Caso Canónico, 15 Casos y Pruebas de Velocidad
En esta entrada reporto los resultados de robustez en CARLA Town02 comparando tres políticas/datasets bajo el mismo circuito de prueba, con 6 repeticiones por condición (valores reportados como promedio de las repeticiones).
Circuito base
- Caso canónico: recorrido siguiendo la malla externa (outer loop) de Town02, manteniéndose en el carril derecho.
- Casos 1–15: se ejecuta el mismo circuito, pero cambiando las condiciones iniciales (posición y orientación) para evaluar recuperación.
- Pruebas de velocidad (30/60/80 km/h): mismo circuito. Se impone manualmente una velocidad inicial; cuando el vehículo alcanza la velocidad objetivo, inicia la inferencia del modelo.
- Casos aleatorios: se seleccionan tres posiciones aleatorias de inicio dentro de la malla externa, manteniendo el mismo punto final.
Datasets / políticas evaluadas
El dataset original (~95k imágenes) estaba dominado por conducción recta y aceleración constante, por lo que se aplicó una estratificación 5×4 (steer × throttle), generando 20 clases balanceadas y reduciendo el dataset a 50k muestras equilibradas, denominado Burbuja. Luego, Burbuja se combinó con DAgger y Noise Injection para entrenar un PilotNet modificado (salidas: steer y throttle).
Como entrada, se utilizó la imagen segmentada procesada: se extrajo únicamente la calzada para generar una máscara binaria, se recortó la región superior, se redimensionó a 66×200, y se normalizó tipo ImageNet. Esto permite que el modelo aprenda directamente la geometría de la vía, reduciendo distracciones visuales y complejidad perceptual.
Políticas evaluadas
- Burbuja (Baseline): dataset de 50k muestras de conducción humana natural balanceada.
- Noise Injection: Burbuja + perturbaciones artificiales controladas. Se inyecta ruido gaussiano en steering, generando pequeños offsets laterales con label humano. Objetivo: aprender tolerancia a perturbaciones pequeñas.
- DAgger: Burbuja 50k + muestras DAgger con intervención estructural de recuperación. Introduce estados fuera del manifold y correcciones activas.
En las tablas se usan estos nombres
- Burbuja: dataset de 50k muestras de conducción humana natural.
- Noise: Burbuja + perturbaciones artificiales controladas.
- DAgger: Burbuja 50k + muestras DAgger con recuperación estructural.
Métricas y unidades
- Route completed (%):
percentage_completed_ideal_mean— más alto es mejor. - Average speed (km/h):
average_speed_mean— más alto es mejor. - Dev mean (m):
position_deviation_mean_mean— más bajo es mejor. - Lane invasions (eventos): número de invasiones de carril — más bajo es mejor.
- Collisions (eventos): colisiones — más bajo es mejor.
- Suddenness throttle (1/s):
suddenness_distance_throttle_mean— más bajo es mejor. - Suddenness steer (1/s):
suddenness_distance_steer_mean— más bajo es mejor.
Nota sobre suddenness (1/s): throttle/steer son comandos normalizados (adimensionales). Al expresarse “por segundo”, la unidad queda como 1/s.
Caso Canónico
Descripción: recorrido estándar en la malla externa de Town02, pensado como “trayecto nominal” para comparar desempeño sin perturbaciones iniciales.
Tabla resumen (Caso Canónico)
| Métrica | Burbuja | Noise | DAgger | Mejor |
|---|---|---|---|---|
| Route completed (%) | 100.000 | 98.975 | 100.000 | Empate |
| Average speed (km/h) | 55.108 | 61.757 | 56.731 | Noise |
| Dev mean (m) | 0.478 | 0.585 | 0.619 | Burbuja |
| Lane invasions (eventos) | 7.167 | 11.167 | 15.500 | Burbuja |
| Collisions (eventos) | 0 | 0 | 0 | Empate |
| Suddenness throttle (1/s) | 0.0175 | 0.0180 | 0.0165 | DAgger |
| Suddenness steer (1/s) | 0.0051 | 0.0078 | 0.0076 | Burbuja |
En condiciones nominales, Burbuja y DAgger completan la ruta al 100%, mientras que Noise no lo logra (98.975%). Burbuja muestra la mejor precisión lateral (Dev mean 0.478 m) y el menor número de invasiones de carril (7.2), indicando que el entrenamiento con datos naturales balanceados produce el seguimiento más limpio en escenarios sin perturbaciones. DAgger, a pesar de completar la ruta, genera significativamente más invasiones de carril (15.5), probablemente por la mayor reactividad introducida por las muestras de recuperación en un entorno ya estable.
Casos 1–15 (robustez por condición inicial)
Descripción: se definieron 15 posiciones iniciales para evaluar la robustez del modelo en Town02. Las configuraciones combinan:
5 posiciones laterales dentro del carril (≈ 4 m de ancho)
- Duro izquierda: −1.8 m
- Suave izquierda: −0.9 m
- Centrado: 0 m
- Suave derecha: +0.9 m
- Duro derecha: +1.8 m
3 orientaciones respecto al carril
- −15°: desviado a la izquierda
- 0°: alineado al carril
- +15°: desviado a la derecha
En total:
\[5\;\text{posiciones laterales} \times 3\;\text{orientaciones} = 15\;\text{configuraciones}\]Por cada caso se realizan 6 repeticiones para un total de 90 experimentos.
Estas posiciones permiten evaluar:
- Corrección lateral (volver al centro del carril),
- Corrección angular (alinear yaw),
- y errores combinados (offset + yaw).
Tabla resumen (Casos 1–15)
| Métrica | Burbuja | Noise | DAgger | Mejor |
|---|---|---|---|---|
| Route completed (%) | 97.822 | 100.000 | 99.077 | Noise |
| Average speed (km/h) | 53.525 | 61.729 | 55.782 | Noise |
| Dev mean (m) | 0.840 | 0.796 | 0.808 | Noise |
| Lane invasions (eventos) | 8.489 | 10.022 | 14.556 | Burbuja |
| Collisions (eventos) | 0.022 | 0.011 | 0.233 | Noise |
| Suddenness throttle (1/s) | 0.0171 | 0.0180 | 0.0167 | DAgger |
| Suddenness steer (1/s) | 0.0052 | 0.0081 | 0.0078 | Burbuja |
Ante perturbaciones iniciales, Noise Injection lidera en completado de ruta (100%) y desviación media (0.796 m), lo que revela que las perturbaciones artificiales durante entrenamiento mejoran efectivamente la capacidad de recuperar el carril desde estados desviados. Burbuja muestra la menor tasa de invasiones (8.5) y los comandos más suaves en steer (0.0052), pero no logra completar todos los casos (97.8%). DAgger presenta el mayor número de invasiones (14.6) y colisiones (0.233), sugiriendo que la recuperación agresiva introduce inestabilidad cuando las perturbaciones iniciales son moderadas.
Pruebas de velocidad (30, 60, 80 km/h)
Descripción: se aplica manualmente una velocidad inicial de 30, 60 y 80 km/h. Cuando el vehículo alcanza la velocidad objetivo, el modelo inicia la inferencia y el control. Para cada velocidad se realizan 6 repeticiones.
Tabla resumen (Velocidades 30, 60, 80 km/h)
| Métrica | Burbuja | Noise | DAgger | Mejor |
|---|---|---|---|---|
| Route completed (%) | 100.000 | 100.000 | 91.647 | Empate |
| Average speed (km/h) | 58.595 | 64.184 | 53.938 | Noise |
| Dev mean (m) | 0.471 | 0.575 | 0.870 | Burbuja |
| Lane invasions (eventos) | 7.222 | 9.000 | 11.611 | Burbuja |
| Collisions (eventos) | 0 | 0 | 0.500 | Empate* |
| Suddenness throttle (1/s) | 0.0176 | 0.0180 | 0.0154 | DAgger |
| Suddenness steer (1/s) | 0.0052 | 0.0080 | 0.0075 | Burbuja |
* Empate entre Burbuja y Noise (0 colisiones). DAgger registra 0.5 colisiones promedio.
Detalle por velocidad
| Velocidad | Métrica | Burbuja | Noise | DAgger |
|---|---|---|---|---|
| 30 km/h | Route completed (%) | 100.00 | 100.00 | 100.00 |
| Dev mean (m) | 0.474 | 0.589 | 0.574 | |
| Lane invasions | 7.5 | 9.3 | 13.3 | |
| 60 km/h | Route completed (%) | 100.00 | 100.00 | 87.67 |
| Dev mean (m) | 0.488 | 0.573 | 0.826 | |
| Lane invasions | 7.0 | 9.7 | 11.8 | |
| 80 km/h | Route completed (%) | 100.00 | 100.00 | 87.27 |
| Dev mean (m) | 0.452 | 0.563 | 1.209 | |
| Lane invasions | 7.2 | 8.0 | 9.7 |
Este grupo de pruebas es particularmente revelador: Burbuja y Noise mantienen 100% de completado en las tres velocidades, mientras que DAgger colapsa a partir de 60 km/h (~87.7%) y su desviación se dispara a 1.209 m a 80 km/h. Burbuja domina en precisión lateral en todas las velocidades y mantiene el menor número de invasiones, lo que confirma que su distribución de entrenamiento, aunque sin recuperación explícita, produce un seguimiento estable y robusto ante el incremento de velocidad. Noise mantiene 100% de completado con mayor velocidad media (64.2 km/h), a costa de mayor desviación y más invasiones.
Casos Aleatorios
Descripción: tres posiciones de inicio seleccionadas aleatoriamente dentro de la malla externa de Town02, manteniendo el mismo punto final. Se realizan 6 repeticiones por caso.
Tabla resumen (Casos Aleatorios)
| Métrica | Burbuja | Noise | DAgger | Mejor |
|---|---|---|---|---|
| Route completed (%) | 97.238 | 95.395 | 100.000 | DAgger |
| Average speed (km/h) | 45.010 | 47.403 | 43.075 | Noise |
| Dev mean (m) | 0.498 | 0.534 | 0.618 | Burbuja |
| Lane invasions (eventos) | 1.944 | 2.000 | 2.067 | Burbuja |
| Collisions (eventos) | 0.056 | 0.111 | 0.189 | Burbuja |
| Suddenness throttle (1/s) | 0.0164 | 0.0186 | 0.0123 | DAgger |
| Suddenness steer (1/s) | 0.0051 | 0.0086 | 0.0055 | Burbuja |
En escenarios con inicio completamente arbitrario, DAgger es el único modelo que completa la ruta al 100%, lo cual constituye su resultado más relevante del conjunto de experimentos. Sin embargo, presenta la mayor desviación (0.618 m) y más colisiones (0.189). Burbuja, aunque no completa siempre la ruta (97.2%), mantiene el mejor control lateral, menor número de invasiones y la menor tasa de colisiones. Noise es el peor en completado (95.4%) y presenta la mayor brusquedad en throttle y steer.
Interpretación de Resultados: Robustez, Control y Recuperación
Tras ejecutar el conjunto completo de experimentos (caso canónico, 15 condiciones iniciales, pruebas de velocidad y escenarios aleatorios), es posible extraer conclusiones claras sobre el comportamiento de cada política.
El objetivo del análisis no es únicamente identificar quién completa más porcentaje de ruta, sino determinar qué modelo ofrece:
- Mayor robustez estructural
- Mejor control lateral
- Mejor capacidad de recuperación
- Menor brusquedad en los comandos
- Estabilidad ante velocidades altas
1. Robustez Global
Los resultados muestran un comportamiento marcadamente diferente entre las tres políticas según el tipo de perturbación:
- Caso canónico: Burbuja y DAgger completan al 100%; Noise no lo logra (98.97%).
- Casos 1–15: Noise lidera con 100% de completado promedio; Burbuja cae a 97.8%.
- Velocidades 30–80 km/h: Burbuja y Noise mantienen 100%; DAgger colapsa a ~87.3–87.7% a partir de 60 km/h.
- Casos aleatorios: DAgger es el único que completa el 100%; Noise cae a 95.4%.
Este patrón indica que ningún modelo domina en todas las condiciones: Noise es más robusto ante perturbaciones de posición inicial, Burbuja es más estable ante variaciones de velocidad, y DAgger muestra mayor generalización en inicios completamente arbitrarios.
2. Control Lateral
El control lateral, medido por position_deviation_mean e invasiones de carril, revela una jerarquía consistente: Burbuja > Noise > DAgger en prácticamente todos los escenarios.
- Burbuja presenta la menor desviación en el caso canónico (0.478 m), en velocidades (0.471 m) y en aleatorios (0.498 m).
- Noise mejora ligeramente sobre Burbuja en los casos 1–15 (0.796 vs 0.840 m), siendo su único escenario de ventaja.
- DAgger presenta la mayor desviación en todas las condiciones, especialmente a 80 km/h (1.209 m), lo que sugiere que la exposición a maniobras de recuperación introduce reactividad excesiva en escenarios estables.
En términos de invasiones de carril, Burbuja lidera consistentemente: 7.2 en canónico, 8.5 en casos 1–15, 7.2 en velocidades y 1.9 en aleatorios.
3. Recuperación ante Estados Fuera del Manifold
Los Casos 1–15 son la prueba más directa de recuperación desde estados desviados.
- Noise Injection es el modelo más robusto ante perturbaciones de posición inicial, completando el 100% de los casos con la menor desviación promedio (0.796 m). Las perturbaciones artificiales en entrenamiento simulan efectivamente los pequeños offsets que ocurren al inicio de cada caso.
- Burbuja no logra recuperarse en todos los casos (97.8%), confirmando la limitación conocida del aprendizaje por imitación puro: sin exposición a estados fuera del manifold, el modelo falla ante desviaciones iniciales suficientemente grandes.
- DAgger completa el 99.1% de los casos pero introduce una alta tasa de colisiones (0.233) e invasiones (14.6), indicando que la recuperación estructural mejora el completado pero genera inestabilidad lateral durante el proceso correctivo.
4. Estabilidad Dinámica a Alta Velocidad
Las pruebas de velocidad confirman que DAgger no escala bien con la velocidad:
- A 30 km/h, los tres modelos completan el 100%.
- A 60 km/h, DAgger cae a 87.67% y su desviación sube a 0.826 m.
- A 80 km/h, DAgger cae a 87.27% con una desviación de 1.209 m y 0.5 colisiones promedio.
Burbuja y Noise mantienen 100% de completado en todas las velocidades. La mayor precisión lateral de Burbuja a 80 km/h (Dev mean 0.452 m, el valor más bajo de todo el experimento) sugiere que su distribución de entrenamiento, basada en conducción estable y balanceada, es particularmente adecuada para el control a alta velocidad. Noise opera con mayor velocidad media (64.2 km/h vs 58.6 km/h de Burbuja), lo que puede explicar sus mayores invasiones de carril.
5. Suavidad de Comandos (Suddenness)
En términos de suavidad de comandos existe un patrón claro:
- Burbuja produce los comandos de steer más suaves en todos los escenarios (0.0051–0.0052 1/s), reflejando la conducción humana natural de su dataset.
- DAgger produce los comandos de throttle más suaves (0.0154–0.0167 1/s), posiblemente porque sus maniobras de recuperación entrenan principalmente el canal de steer, dejando el throttle más conservador.
- Noise presenta consistentemente los valores más altos de suddenness en steer (0.0078–0.0086 1/s), probablemente por el ruido inyectado en steering durante el entrenamiento, que introduce mayor variabilidad en los comandos.
Existe un trade-off evidente: Burbuja logra suavidad porque no aprende recuperación agresiva; DAgger y Noise sacrifican suavidad para ganar robustez o completado.
Conclusión General
Considerando todos los experimentos de forma integrada, no existe un modelo dominante en todas las condiciones, sino tres perfiles complementarios:
| Fortaleza | Mejor modelo |
|---|---|
| Control lateral y suavidad | Burbuja |
| Recuperación desde offset inicial | Noise |
| Generalización en inicios arbitrarios | DAgger |
| Estabilidad a alta velocidad | Burbuja |
| Completado en casos perturbados | Noise |
Burbuja es el modelo más preciso y suave en condiciones nominales y a alta velocidad, pero su capacidad de recuperación es limitada por la ausencia de exposición a estados fuera del manifold.
Noise Injection mejora significativamente la robustez ante perturbaciones de posición inicial (100% en casos 1–15) sin comprometer la estabilidad dinámica, pero a costa de mayor desviación lateral y más invasiones de carril en condiciones nominales. Es la estrategia de augmentación más eficiente: sin recolección adicional de datos, mejora la recuperación real del modelo.
DAgger demuestra la mejor generalización en escenarios con inicios completamente arbitrarios (100% en aleatorios), pero presenta el peor control lateral, más colisiones y un colapso claro a partir de 60 km/h. Esto sugiere que el conjunto de muestras DAgger disponible introduce recuperación a costa de inestabilidad, posiblemente por acciones demasiado reactivas en el dataset de corrección.
Los resultados son consistentes con la teoría de Imitation Learning:
- Noise Injection mejora la tolerancia local a perturbaciones sin alterar la distribución global.
- DAgger introduce recuperación real desde estados fuera del manifold, pero su efectividad depende críticamente de la calidad y agresividad de las acciones de corrección.
- Una distribución de entrenamiento balanceada y de conducción natural (Burbuja) produce el mejor seguimiento nominal pero no generaliza ante perturbaciones estructurales.
El punto óptimo en este conjunto de experimentos depende del escenario de despliegue: si se prioriza control preciso y estabilidad a alta velocidad, Burbuja es la elección; si se prioriza robustez ante condiciones iniciales variables, Noise Injection ofrece la mejor relación costo-beneficio.