O caminho para 240 milhões de quilômetros virtuais: A jornada de direção autônoma da BMW com Unity

Antes que a tecnologia de direção autônoma (AD) da BMW esteja pronta para produção em massa, ela precisará percorrer 240 milhões de quilômetros virtuais. Unity Learn como a Unity está ajudando a BMW a colocar mais em seu odômetro todos os dias. Em nossa primeira publicação, abordamos como uma equipe da BMW Fully Autonomous Driving & Driver Assistance Systems usou a Unity para desenvolver ferramentas personalizadas para visualização de simulações e criação de cenários. Com essas ferramentas, o BMW Group está bem equipado para enfrentar os desafios diários mais assustadores no desenvolvimento de AD. Vamos examinar algumas áreas em que a Unity está ajudando de forma importante.



Combinando a simulação com os principais indicadores de desempenho (por exemplo, manter continuamente uma distância segura dos veículos em trânsito), a BMW pode avaliar o quanto seus recursos são realmente completos. Como os componentes individuais de sua função AD dominam os cenários básicos, a BMW pode realizar a validação em massa de todo o seu sistema AD em situações mais complexas.
Esses testes são apresentados de várias formas:
- Testes de recursos em pequena escala - Esses testes são o tipo mais comum de teste e permitem que a BMW avalie rapidamente partes de seu sistema AD, como o planejamento da trajetória do veículo. Em um dia típico, a equipe da BMW registrará dezenas de milhares de quilômetros virtuais; a maioria deles são testes de curta distância (de centenas de metros a 1 quilômetro) em incrementos de menos de um minuto.
- Testes de sistema em larga escala - em vez de uma série de minitestes para um recurso específico, esse tipo de simulação é projetado para testar o sistema AD mais amplo. Ele funciona como um cenário estendido que pode durar horas e se esforça para reproduzir cenários do mundo real; por exemplo, uma viagem pela autobahn entre as cidades alemãs de Munique e Stuttgart. Essas simulações são mais complexas, geralmente envolvendo um mundo virtual completo com veículos em movimento, pedestres e condições climáticas variáveis, bem como dados de mapas, modelos de sensores como entradas para algoritmos de percepção, planejamento de trajetória de veículos, dinâmica de veículos e muito mais.
Como as situações de direção podem ser repetidas quantas vezes forem necessárias na simulação, a BMW realiza testes durante todo o dia, incluindo "viagens noturnas". Depois de usar o editor de cenários baseado no Unity para configurar os testes, os desenvolvedores podem revisar os resultados na manhã seguinte, aproveitar o Analytics para identificar exatamente quando as funções falharam e exibir o ponto exato da falha em um quadro renderizado do Unity. A equipe pode extrair automaticamente essas situações problemáticas como cenários de pequena escala e, em seguida, visualizá-las para entender melhor por que a situação era problemática.
Por exemplo, nesse cenário, um veículo de trânsito entra repentinamente, mas o veículo host não desacelera imediatamente, resultando em um quase acidente. O cenário pode ser reproduzido posteriormente após cada atualização incremental do código até que a função AD reaja adequadamente.
Após uma falha inicial nesse cenário, os aprimoramentos garantem que esse veículo freie adequadamente em resposta a um veículo de tráfego que entra em sua pista de forma agressiva.

Para atingir o alto nível de automação de seus veículos, os desenvolvedores da BMW precisam identificar as limitações de suas funções de AD no maior número possível de situações. No entanto, cenários como os simulados no vídeo abaixo têm custos proibitivos, são difíceis ou perigosos demais para serem reproduzidos no mundo real.
Usando o editor de cenários baseado no Unity, os desenvolvedores podem criar cenários extremos, como um veículo de trânsito que passa por um sinal de pare. Descobrir esses casos extremos nos limites de um mundo virtual é muito mais econômico e seguro, além de permitir a oportunidade de fazer testes reprodutíveis.
A BMW usa a simulação para testar cenários que são muito incomuns para ocorrer ou muito arriscados para criar em um ambiente de condução no mundo real. Aqui são mostrados três casos extremos: 1) Um pedestre que aparece inesperadamente na pista do veículo anfitrião em uma rodovia de alta velocidade; 2) Um veículo de trânsito que se aproxima repentinamente; 3) Um veículo parado na pista do veículo anfitrião.
O Unity é usado diariamente para ajudar os 1.800 desenvolvedores de Unity Ads do BMW Group a melhorar continuamente o código pelo qual são individualmente responsáveis. À medida que fazem alterações na base de código para adicionar uma nova função ou melhorar uma já existente, eles executam testes de integração antes de fazer a fusão com o mestre.
Por exemplo, um desenvolvedor focado em percepção pode usar o editor de cenários baseado em Unity para projetar vários cenários nos quais o veículo passa por uma placa de limite de velocidade. Esses testes de pequena escala são simulados no PC do desenvolvedor e podem ser visualizados com o Unity ao vivo enquanto estão sendo executados.
O desenvolvedor pode validar visualmente seus resultados, bem como usar métricas de avaliação para identificar melhorias ou confirmar que o recurso está pronto para ser incorporado ao mestre (ou seja, o veículo sempre se ajusta ao limite indicado).
Os desenvolvedores podem testar e visualizar simultaneamente os resultados de suas atualizações incrementais de código. Após a fusão, eles podem executar testes de aceitação para identificar falhas em outras funções que surgem como resultado de seu commit ou vice-versa. Por exemplo, uma mesclagem de seus pares pode introduzir um bug que afeta a percepção da sinalização de limite de velocidade. Os desenvolvedores podem usar o Unity para depuração visual e inspecionar facilmente o que está acontecendo para que possam corrigir as coisas mais rapidamente. O sistema da BMW é configurado de tal forma que os desenvolvedores podem definir pontos de interrupção na função de direção e no código de simulação. A função AD e a simulação estão sempre em sincronia uma com a outra, de modo que a equipe pode percorrer o código linha por linha e alternar entre os dois mundos enquanto depura. A sincronicidade também é espelhada pela visualização, permitindo a inspeção simultânea do código e do mundo simulado. Como os desenvolvedores ainda podem se movimentar e inspecionar valores no aplicativo baseado no Unity, eles podem reduzir o número de ferramentas que precisam estar abertas ao mesmo tempo, mantendo os dados o mais transparentes possível. Todos esses elementos garantem que o código de produção que alimentará os veículos autônomos da BMW atenda aos padrões de segurança e confiabilidade da empresa.
---
Confira a Unity Industrial Collection ou saiba mais sobre as maneiras como o Unity é usado para simulação de AD em nosso whitepaper: As 5 principais maneiras pelas quais o 3D em tempo real está revolucionando o ciclo de vida do produto automotivo.