Week 55 - Evaluación de Modelos de Conducción Autónoma en CARLA: Métricas MSE/MAE y Behavior Metrics
Tabla resumen de pruebas (con métricas MSE/MAE)
Prueba | Comparativa | Modelo | Dataset utilizado | MSE Steer | MAE Steer | MSE Throttle | MAE Throttle |
---|---|---|---|---|---|---|---|
1 | Monolítico vs. Mixture of Experts (MoE) | PilotNet (monolítico) | DAgger | 0.0311 | 0.0847 | 0.1698 | 0.4010 |
1 | Monolítico vs. Mixture of Experts (MoE) | ResNet18 (monolítico) | DAgger | 0.0466 | 0.1237 | 0.1961 | 0.4078 |
1 | Monolítico vs. Mixture of Experts (MoE) | EfficientNetV2-S (monolítico) | DAgger | 0.0544 | 0.1630 | 0.1669 | 0.3963 |
1 | Monolítico vs. Mixture of Experts (MoE) | MoE basado en ResNet18 (curva) | DAgger | 0.0583 | 0.1523 | 0.1981 | 0.4104 |
1 | Monolítico vs. Mixture of Experts (MoE) | MoE basado en ResNet18 (recta) | DAgger | 0.0527 | 0.1282 | 0.1826 | 0.3959 |
2 | Dataset convencional (burbuja) vs. DAgger | ResNet18 monolítico (dataset burbuja) | Dataset burbuja | 0.0544 | 0.1465 | 0.1879 | 0.4017 |
2 | Dataset convencional (burbuja) vs. DAgger | EfficientNetV2-S monolítico (dataset burbuja) | Dataset burbuja | 0.0478 | 0.1124 | 0.1966 | 0.3997 |
2 | Dataset convencional (burbuja) vs. DAgger | EfficientNetV2-S monolítico (DAgger) | Dataset DAgger |
Tabla resumen metricas BehaviorMetrics
Métrica | pilotnet_dagger.pth | resnet_dagger.pth | efficientnet_dagger.pth |
---|---|---|---|
completed_distance [m] | 426.95 | 127.46 | 127.49 |
average_speed [m/s] | 10.91 | 7.83 | 8.07 |
max_speed [m/s] | 18.63 | 18.50 | 21.53 |
min_speed [m/s] | -1.15 | -0.61 | -0.38 |
collisions | 0 | 0 | 0 |
lane_invasions | 0 | 0 | 0 |
effective_completed_distance [m] | 407.5 | 97.0 | 97.0 |
position_deviation_mean [m] | 0.480 | 1.278 | 1.260 |
position_deviation_total_err [m] | 1352.46 | 1448.11 | 1430.96 |
position_dev_mean_per_km [m/km] | 1.179 | 13.054 | 12.986 |
suddenness_distance_speed | 0.173 | 0.197 | 0.207 |
suddenness_distance_control_cmd | 0.116 | 0.163 | 0.173 |
suddenness_distance_throttle | 0.108 | 0.145 | 0.138 |
suddenness_distance_steer | 0.021 | 0.101 | 0.086 |
suddenness_distance_brake_command | 0.0 | 0.0 | 0.0 |
suddenness_ctrl_cmd_per_km | 0.284 | 1.682 | 1.787 |
suddenness_throttle_per_km | 0.264 | 1.494 | 1.426 |
suddenness_steer_per_km | 0.052 | 0.998 | 0.886 |
suddenness_brake_cmd_per_km | 0.0 | 0.0 | 0.0 |
suddenness_speed_per_km | 0.425 | 2.003 | 2.137 |
completed_laps | 0 | 0 | 0 |
experiment_total_real_time [s] | 291.54 | 134.77 | 135.50 |
Tabla resumen metricas BehaviorMetrics (Corrección)
Métrica | pilotnet_dagger.pth | resnet_dagger.pth | efficientnet_dagger.pth |
---|---|---|---|
completed_distance [m] | 405.39 | 666.80 | 378.28 |
average_speed [m/s] | 11.34 | 10.01 | 10.89 |
max_speed [m/s] | 21.87 | 24.04 | 26.82 |
min_speed [m/s] | -19.23 | -0.27 | -4.26 |
collisions | 0 | 0 | 0 |
lane_invasions | 0 | 0 | 0 |
effective_completed_distance [m] | 287.0 | 398.0 | 319.5 |
position_deviation_mean [m] | 1.591 | 2.894 | 0.809 |
position_deviation_total_err [m] | 2622.24 | 9245.48 | 1380.47 |
position_dev_mean_per_km [m/km] | 5.544 | 7.271 | 2.533 |
suddenness_distance_speed | 0.256 | 0.217 | 0.235 |
suddenness_distance_control_cmd | 0.100 | 0.174 | 0.152 |
suddenness_distance_throttle | 0.092 | 0.148 | 0.133 |
suddenness_distance_steer | 0.018 | 0.067 | 0.055 |
suddenness_distance_brake_command | 0.000 | 0.000 | 0.000 |
suddenness_ctrl_cmd_per_km | 0.347 | 0.437 | 0.476 |
suddenness_throttle_per_km | 0.319 | 0.371 | 0.416 |
suddenness_steer_per_km | 0.063 | 0.169 | 0.168 |
suddenness_brake_cmd_per_km | 0.000 | 0.000 | 0.000 |
suddenness_speed_per_km | 0.892 | 0.544 | 0.735 |
completed_laps | 0 | 0 | 0 |
experiment_total_real_time [s] | 124 | 237 | 124 |
Nota: Para esta comparación se repitió el experimento utilizando exactamente las mismas condiciones de simulación, pero se modificó la frecuencia de inferencia establecida en el archivo de configuración de Behavior Metrics.
Discrepancias de Comportamiento al Usar BehaviorMetrics sobre ROS 2
Actualmente estoy revisando BehaviorMetrics. En esta herramienta, el modelo no parece presentar el mismo comportamiento que cuando se prueba directamente en ROS 2. En BehaviorMetrics se ralentiza en ocasiones y pierde reactividad, lo cual es contrario a lo que sucede en ROS 2, donde alcanza mayores velocidades y responde mejor en las curvas.
Estoy revisando el parámetro PilotTimeCycle: 50 definido en el archivo YAML de configuración. Sin embargo, en el módulo utils/configuration, que es donde se carga este parámetro, parece que no se está utilizando posteriormente.
También estoy revisando los parámetros MaxV: 25 y MaxW: 5, correspondientes a los actuadores, pero al parecer tampoco están siendo usados en el lugar donde se cargan en el código.