Der Weg zu 240 Millionen virtuellen Kilometern: BMWs Reise zum autonomen Fahren mit Unity

Bevor die Technologie des autonomen Fahrens (AD) von BMW serienreif ist, muss sie 240 Millionen virtuelle Kilometer zurücklegen. Erfahren Sie, wie Unity BMW dabei hilft, jeden Tag mehr Kilometer auf dem Zähler zu haben. In unserem ersten Beitrag haben wir darüber berichtet, wie ein Team bei BMW Fully Autonomous Driving & Driver Assistance Systems Unity zur Entwicklung benutzerdefinierter Tools für die Visualisierung von Simulationen und die Erstellung von Szenarien verwendet hat. Mit diesen Instrumenten ist die BMW Group gut gerüstet, um die schwierigsten täglichen Herausforderungen in der AD-Entwicklung zu meistern. Schauen wir uns einige Bereiche an, in denen Unity eine große Hilfe ist.



Durch die Kombination von Simulationen mit Leistungsindikatoren (z. B. ständiges Einhalten eines Sicherheitsabstands zu anderen Fahrzeugen) kann BMW beurteilen, wie vollständig seine Funktionen tatsächlich sind. Da die einzelnen Komponenten des AD grundlegende Szenarien beherrschen, kann BMW eine Massenvalidierung seines gesamten AD-Systems in komplexeren Situationen durchführen.
Diese Tests gibt es in verschiedenen Formen:
- Kleinere Funktionstests - Diese Tests sind die häufigste Art von Tests und ermöglichen BMW eine schnelle Bewertung von Teilen des AD-Systems, wie z. B. der Flugbahnplanung. An einem typischen Tag legt das BMW Team Zehntausende von virtuellen Kilometern zurück; die meisten davon sind Kurzstreckentests (von einigen hundert Metern bis zu einem Kilometer) in Schritten von weniger als einer Minute.
- Groß angelegte Systemtests - Anstelle einer Reihe von Minitests für ein bestimmtes Merkmal ist diese Art der Simulation darauf ausgelegt, das AD-System im Ganzen zu testen. Es handelt sich um ein ausgedehntes Szenario, das sich über Stunden hinziehen kann und versucht, reale Szenarien nachzubilden, z. B. eine Autobahnfahrt zwischen den deutschen Städten München und Stuttgart. Diese Simulationen sind komplexer und beinhalten oft eine virtuelle Welt mit sich bewegenden Fahrzeugen, Fußgängern und variablen Wetterbedingungen sowie Kartendaten, Sensormodelle als Input für Wahrnehmungsalgorithmen, die Planung von Fahrzeugtrajektorien, Fahrzeugdynamik und vieles mehr.
Da sich die Fahrsituationen in der Simulation beliebig oft wiederholen lassen, führt BMW die Tests über den ganzen Tag verteilt durch, auch bei "Nachtfahrten". Nach der Verwendung des Unity-basierten Szenario-Editors zum Einrichten von Tests können Entwickler die Ergebnisse am nächsten Morgen überprüfen, Analytics nutzen, um genau festzustellen, wann Funktionen fehlgeschlagen sind, und den genauen Fehlerpunkt in einem von Unity gerenderten Frame anzeigen lassen. Das Team kann diese problematischen Situationen automatisch als kleine Szenarien extrahieren und sie dann visualisieren, um besser zu verstehen, warum die Situation problematisch war.
In diesem Szenario schneidet beispielsweise ein Fahrzeug plötzlich in den Verkehr ein, ohne dass das entgegenkommende Fahrzeug sofort abbremst, was zu einem Beinaheunfall führt. Das Szenario kann anschließend nach jeder inkrementellen Codeaktualisierung erneut durchgespielt werden, bis die AD-Funktion korrekt reagiert.
Nach einem anfänglichen Versagen in diesem Szenario sorgen Verbesserungen dafür, dass dieses Fahrzeug ordnungsgemäß bremst, wenn ein anderes Fahrzeug aggressiv in seine Fahrspur einfährt.

Um den hohen Automatisierungsgrad für ihre Fahrzeuge zu erreichen, müssen die Entwickler von BMW die Grenzen ihrer AD-Funktionen in möglichst vielen Situationen erkennen. Doch Szenarien wie die im folgenden Video simulierten sind zu kostspielig, schwierig oder gefährlich, um sie in der realen Welt nachzustellen.
Mit dem auf Unity basierenden Szenario-Editor können die Entwickler Grenzszenarien entwerfen, z. B. ein Fahrzeug, das ein Stoppschild überfährt. Die Aufdeckung dieser Eckfälle in einer virtuellen Welt ist wesentlich kostengünstiger und sicherer und bietet gleichzeitig die Möglichkeit, reproduzierbare Tests durchzuführen.
BMW nutzt die Simulation, um Szenarien zu testen, die in einer realen Fahrumgebung zu ungewöhnlich oder zu riskant sind. Hier werden drei Grenzfälle dargestellt: 1) Ein Fußgänger, der bei hoher Geschwindigkeit auf der Fahrspur des Host-Fahrzeugs auftaucht; 2) Ein plötzlich auftauchendes Fahrzeug; 3) Ein stehendes Fahrzeug auf der Fahrspur des Host-Fahrzeugs.
Unity wird täglich eingesetzt, um den 1.800 AD-Entwicklern der BMW Group zu helfen, den Code, für den sie individuell verantwortlich sind, kontinuierlich zu verbessern. Wenn sie Änderungen an der Codebasis vornehmen, um eine neue Funktion hinzuzufügen oder eine bestehende zu verbessern, führen sie Integrationstests durch, bevor sie in den Master einfließen.
Ein Entwickler, der sich auf die Wahrnehmung konzentriert, kann beispielsweise mit dem Unity-basierten Szenario-Editor mehrere Szenarien entwerfen, in denen das Fahrzeug ein Tempolimit-Schild passiert. Diese kleinen Tests werden auf dem PC des Entwicklers simuliert und können mit Unity live visualisiert werden, während sie ausgeführt werden.
Der Entwickler kann seine Ergebnisse visuell überprüfen und die Bewertungskennzahlen nutzen, um Verbesserungen zu ermitteln oder zu bestätigen, dass die Funktion bereit ist, in das Master-System integriert zu werden (d. h., das Fahrzeug passt sich jedes Mal an die vorgegebene Grenze an).
Die Entwickler können die Ergebnisse ihrer inkrementellen Code-Aktualisierungen gleichzeitig testen und visualisieren. Nach der Zusammenführung können sie Akzeptanztests durchführen, um Fehler in anderen Funktionen zu identifizieren, die durch ihre Übergabe entstanden sind oder umgekehrt. Zum Beispiel könnte eine Zusammenführung von Gleichaltrigen einen Fehler einführen, der die Wahrnehmung von Geschwindigkeitsbegrenzungsschildern beeinträchtigt. Die Entwickler können Unity für visuelles Debugging verwenden und einfach überprüfen, was passiert, damit sie Dinge schneller beheben können. Das System von BMW ist so aufgebaut, dass Entwickler Haltepunkte innerhalb der Fahrfunktion und des Simulationscodes setzen können. Die AD-Funktion und die Simulation sind immer miteinander synchronisiert, so dass das Team den Code Zeile für Zeile durchgehen und beim Debuggen zwischen den beiden Welten wechseln kann. Die Synchronität spiegelt sich auch in der Visualisierung wider, die eine gleichzeitige Betrachtung des Codes und der simulierten Welt ermöglicht. Da sich die Entwickler in der Unity-basierten Anwendung immer noch bewegen und Werte überprüfen können, können sie die Anzahl der gleichzeitig geöffneten Tools reduzieren und gleichzeitig die Daten so transparent wie möglich halten. All diese Elemente stellen sicher, dass der Produktionscode, der letztendlich die autonomen Fahrzeuge von BMW antreibt, die BMW-Standards für Sicherheit und Zuverlässigkeit erfüllt.
---
Schauen Sie sich die Unity Industrial Collection an oder erfahren Sie in unserem Whitepaper mehr darüber, wie Unity für AD-Simulationen eingesetzt wird: Die 5 wichtigsten Möglichkeiten, wie 3D in Echtzeit den Produktlebenszyklus in der Automobilindustrie revolutioniert.
