El camino hacia los 240 millones de kilómetros virtuales: El viaje de BMW hacia la conducción autónoma con Unity

Antes de que la tecnología de conducción autónoma (AD) de BMW esté lista para la producción en serie, tendrá que recorrer 240 millones de kilómetros virtuales. Unity Learn está ayudando a BMW a poner cada día más en su cuentakilómetros. En nuestro primer post, explicamos cómo un equipo de BMW Fully Autonomous Driving & Driver Assistance Systems ha utilizado Unity para desarrollar herramientas personalizadas para la visualización de simulaciones y la creación de escenarios. Con estas herramientas, el Grupo BMW está bien equipado para hacer frente a los retos diarios más abrumadores en el desarrollo de AD. Veamos algunas áreas en las que Unity está ayudando de forma importante.



Combinando la simulación con indicadores clave de rendimiento (por ejemplo, mantener continuamente una distancia de seguridad con los vehículos en circulación), BMW puede evaluar hasta qué punto son realmente completas sus prestaciones. A medida que los componentes individuales de su función AD dominan los escenarios básicos, BMW puede llevar a cabo la validación masiva de todo su sistema AD en situaciones más complejas.
Estas pruebas se presentan en múltiples formas:
- Pruebas de características a pequeña escala - Estas pruebas son el tipo más común de pruebas, y permiten a BMW evaluar rápidamente partes de su sistema AD, como la planificación de la trayectoria del vehículo. En un día normal, el equipo de BMW registra decenas de miles de kilómetros virtuales; la mayoría de ellos son pruebas de corta distancia (de cientos de metros a 1 kilómetro) en incrementos de menos de un minuto.
- Pruebas del sistema a gran escala: en lugar de una serie de minipruebas para una función específica, este tipo de simulación está diseñado para probar el sistema AD en su conjunto. Se desarrolla como un escenario ampliado que puede durar horas y trata de reproducir situaciones del mundo real; por ejemplo, un viaje por autopista entre las ciudades alemanas de Múnich y Stuttgart. Estas simulaciones son más complejas y a menudo implican un mundo virtual con vehículos en movimiento, peatones y condiciones meteorológicas variables, así como datos cartográficos, modelos de sensores como entradas para algoritmos de percepción, planificación de trayectorias de vehículos, dinámica de vehículos y mucho más.
Dado que las situaciones de conducción pueden repetirse tantas veces como sea necesario en la simulación, BMW realiza pruebas a lo largo de cada día, incluidos los "trayectos nocturnos". Después de utilizar el editor de escenarios basado en Unity para configurar las pruebas, los desarrolladores pueden revisar los resultados a la mañana siguiente, aprovechar Analytics para determinar exactamente cuándo fallaron las funciones y mostrar el punto exacto del fallo en un fotograma renderizado desde Unity. El equipo puede extraer automáticamente esas situaciones problemáticas como escenarios a pequeña escala, y luego visualizarlas para entender mejor por qué la situación era problemática.
Por ejemplo, en este escenario, un vehículo de tráfico se cruza de repente, pero el vehículo anfitrión no desacelera inmediatamente, lo que provoca un casi accidente. El escenario puede reproducirse posteriormente tras cada actualización incremental del código hasta que la función AD reaccione correctamente.
Tras un fallo inicial en este escenario, las mejoras aseguran que este vehículo frena correctamente en respuesta a un vehículo de tráfico que se incorpora a su carril de forma agresiva.

Para alcanzar el alto nivel de automatización de sus vehículos, los desarrolladores de BMW tienen que identificar las limitaciones de sus funciones AD en el mayor número posible de situaciones. Sin embargo, escenarios como los que se simulan en el vídeo siguiente son demasiado prohibitivos, difíciles o peligrosos para reproducirlos en el mundo real.
Gracias al editor de escenarios basado en Unity, los desarrolladores pueden idear situaciones límite, como que un vehículo se salte una señal de stop. Descubrir estos casos en los confines de un mundo virtual es mucho más rentable y seguro, al tiempo que ofrece la oportunidad de realizar pruebas reproducibles.
BMW utiliza la simulación para probar escenarios que son demasiado inusuales para que ocurran o demasiado arriesgados para crearlos en un entorno de conducción real. Aquí se muestran tres casos extremos: 1) Un peatón que aparece inesperadamente en el carril del vehículo anfitrión en un entorno de autopista a alta velocidad; 2) Un vehículo de tráfico que se cruza repentinamente; 3) Un vehículo detenido en el carril del vehículo anfitrión.
Unity se utiliza a diario para ayudar a los 1.800 desarrolladores AD del Grupo BMW a mejorar continuamente el código del que son individualmente responsables. Cuando realizan cambios en el código base para añadir una nueva función o mejorar una existente, ejecutan pruebas de integración antes de fusionarlas con el código maestro.
Por ejemplo, un desarrollador centrado en la percepción puede utilizar el editor de escenarios basado en Unity para diseñar múltiples escenarios en los que el vehículo pase por delante de una señal de límite de velocidad. Estas pruebas a pequeña escala se simulan en el PC del desarrollador y pueden visualizarse con Unity en directo mientras se ejecutan.
El desarrollador puede validar visualmente sus resultados, así como utilizar las métricas de evaluación para identificar mejoras o confirmar que la función está lista para integrarse en el master (es decir, el vehículo se ajusta siempre al límite establecido).
Los desarrolladores pueden probar y visualizar simultáneamente los resultados de sus actualizaciones incrementales de código. Después de la fusión, pueden ejecutar pruebas de aceptación para identificar fallos en otras funciones que surjan como resultado de su confirmación o viceversa. Por ejemplo, una fusión de su par podría introducir un error que afecte a la percepción de la señalización de los límites de velocidad. Los desarrolladores pueden utilizar Unity para la depuración visual e inspeccionar fácilmente lo que está sucediendo para que puedan arreglar las cosas más rápido. El sistema de BMW está configurado de tal manera que los desarrolladores pueden establecer puntos de interrupción dentro de la función de conducción y dentro del código de simulación. La función AD y la simulación están siempre sincronizadas, de modo que el equipo puede recorrer el código línea por línea y alternar entre los dos mundos mientras depura. La sincronía también se refleja en la visualización, que permite inspeccionar simultáneamente el código y el mundo simulado. Dado que los desarrolladores pueden seguir desplazándose e inspeccionando valores en la aplicación basada en Unity, pueden reducir el número de herramientas que deben estar abiertas al mismo tiempo, al tiempo que mantienen los datos lo más transparentes posible. Todos estos elementos garantizan que el código de producción que finalmente impulsará los vehículos autónomos de BMW cumpla sus normas de seguridad y fiabilidad.
---
Echa un vistazo a Unity Industrial Collection o aprende más sobre las formas en que Unity se utiliza para la simulación de anuncios en nuestro whitepaper: Las 5 formas en que el 3D en tiempo real está revolucionando el ciclo de vida de los productos de automoción.
