Die Verwendung simulierter Szenarien für Tests in der Automobilindustrie ist eine gängige Praxis. Die in der Vergangenheit verwendeten Szenarien, z. B. für das Training von ABS-Bremssystemen, reichen jedoch für das Training autonomer Fahrzeuge nicht aus. Im Wesentlichen müssen autonome Fahrzeuge darauf trainiert werden, sich wie Menschen zu verhalten, was hochkomplexe Simulationen erfordert.
Ein wichtiger Bestandteil jeder Simulation für autonome Fahrzeuge ist die Simulationsumgebung. Unity, die Echtzeit-3D-Rendering-Plattform, wird von Entwicklungsteams zur effizienten Erstellung von Simulationsumgebungen für das Training autonomer Fahrzeuge eingesetzt, die eine hohe sensorische und physikalische Komplexität aufweisen, überzeugende kognitive Herausforderungen bieten und die dynamische Interaktion mehrerer Agenten unterstützen.
Dieser Artikel gibt Ihnen eine nützliche Übersicht darüber, was eine Simulationsumgebung ausmacht und wie Unity in der Produktion von Trainingsumgebungen für autonome Fahrzeuge eingesetzt werden kann.
Genau wie ein Mensch braucht ein autonomes Fahrzeug ein „Gehirn“. Und dies ist das autonome System, das aus vier Hauptbereichen besteht:
Kontrolle: Steuerung: Dieser Teil kümmert sich um die Aktionen, die ein Auto ausführen muss, wie das Bremsen, Beschleunigen und Steuern.
Planung: Planung: Der Planungsteil befasst sich damit, wie das Fahrzeug navigiert, überholt und Hindernissen ausweicht.
Wahrnehmung: Hier geht es darum, wie das Auto Informationen über die reale Welt erhält. Die Informationen können mit einer Kombination von Sensoren erfasst werden, wie z. B.:
- Computersicht, wenn Sie Kameras verwenden
- LiDARs-Sensoren (lichtgestützte Ortung und Abstandsmessung)
- Radar
Schließlich werden über einen Prozess namens Sensorfusion die mit den oben aufgeführten Methoden gesammelten Informationen zusammengebracht und zu etwas zusammengestellt, das das Auto auch versteht.
Koordinierung: Dieser Teil ist mit dem der Planung verbunden, da er das Verhalten des Fahrzeugs im Verhältnis zu anderen Smarts, denen es begegnet, betrifft. Es erfordert die Kommunikation mit anderen Fahrzeugen und der Infrastruktur, z. B. mit anderen Fahrzeugen:
- Platooning oder auch elektronische Deichsel: Wie Autos auf Autobahnen dicht hintereinander fahren und eine Art Zug bilden, der den Treibstoffverbrauch optimiert, indem z. B der Luftwiderstand verringert wird.
- Einfädeln und Kreuzungen: Wie sich Autos gemeinsam an den Verkehrsfluss anpassen können.
- Swarming: Das Konzept, das die oben aufgeführten Abstimmungen erleichtert.
Wie sammeln Sie alle benötigten Daten? Maschinelles Lernen ist das Herzstück von autonomen Fahrzeugen, und dieses System ist sehr datenhungrig. Um ein autonomes Fahrzeug zu trainieren, sind riesige Datenmengen erforderlich. Wie kann man das kostengünstig und genau machen?
Wie wird das Auto verstehen, was die Daten sind? Es reicht nicht aus, die Daten zu sammeln, man muss auch dafür sorgen, dass das Auto versteht, worum es sich dabei handelt - es kann nicht nur ein Objekt sehen, sondern muss auch wissen, ob es sich bei diesem Objekt um einen Baum, eine Straße, eine Person und so weiter handelt.
Wie sortieren und strukturieren Sie die Daten? Jedes einzelne Datenelement muss vom autonomen Fahrzeug verstanden werden, ein Prozess, der sowohl teuer als auch fehleranfällig ist, wenn er von Menschen durchgeführt wird. Wenn dies automatisch geschehen könnte, käme man viel schneller und sicherer zu den gewünschten Algorithmen.
Wie bereiten Sie das Fahrzeug auf die unvermeidlichen unvorhergesehenen Situationen vor? Daten, die ausschließlich in der realen Welt gesammelt werden, können das autonome Fahrzeug nur auf das vorbereiten, was es dort bereits gesehen hat.
Umfangreiche und komplexe Simulationsumgebungen geben den Entwicklungsteams die Kontrolle über die Datengenerierung und trainieren letztendlich ein autonomes Fahrzeugsystem, das für alle Szenarien gerüstet sein soll, einschließlich unvorhergesehener Szenarien und Grenzfälle.
Um ein autonomes Fahrzeugsystem zu trainieren, muss man eine Umgebung schaffen, die dem entspricht, was ein echtes Auto auf der Straße sehen würde. Die wichtigsten Bestandteile einer Simulationsumgebung sind:
Fahrzeugdynamik: das physische Verhalten des Autos wie etwa Reibung auf dem Asphalt.
Umweltschutz Dieser Teil umfasst drei Unterkategorien:
- Statische Elemente wie Straßen, Bäume und Ampelsignale.
- Dynamische Elemente wie Fußgänger oder andere Autos, die Variationen innerhalb Ihres Szenarios ermöglichen und durch die Sie Szenarien erstelle können, mit denen Sie Daten für Ihre Fahrzeuge validieren oder sammeln können.
- Parameter, wie z. B. die Tageszeit und verschiedene Wetterbedingungen, die Sie auf ein bestimmtes Szenario anwenden können, um verschiedene Situationen nachzubilden.
Die Verbindung dieser unterschiedlichen Umgebungsfaktoren ermöglicht es Ihnen, Grenzfälle zu produzieren, die in der Realität selten sind.
Sensor-Modell: Die Simulationsszenarien müssen vom autonomen System über ein Sensormodell, wie z. B. einen LiDAR-Sensor, eine Kamera oder ein Radar, aufgenommen werden. Sie muss physikalisch so genau sein, dass der Algorithmus, der sich auf diese Informationen stützt, sich in der synthetischen Umgebung genauso gut verhalten kann wie in der Realität.
Für die Entwicklung einer Simulationsumgebung sind dieselben Funktionen und Werkzeuge erforderlich, die auch bei der Erstellung anderer Arten von interaktiven Inhalten zum Einsatz kommen: Beleuchtung und Physik, Partikel- und Wettersysteme, Animation, maschinelles Lernen und vieles mehr.
Unity ist die weltweit führende Echtzeit-3D-Rendering-Plattform für die Entwicklung von Spielen und anderen interaktiven Inhalten. Es handelt sich um eine bewährte, voll funktionsfähige Plattform, die Millionen von plattformübergreifenden Spielen und Anwendungen unterstützt. Außerdem bietet es die einzigartigen Vorteile des Asset Store (weitere Informationen siehe unten) und seiner riesigen Gemeinschaft von branchenübergreifenden Entwicklern und Kreativen.
Skripting-Flexibilität: Teams können Unity mit einem leistungsstarken C#-Skripting-System und einer umfassenden API an ihre Arbeitsabläufe anpassen. Der Zugang zum Quellcode für eigene Entwicklungen mit C++ kann separat erworben werden.
Geschwindigkeit Die intuitive Benutzeroberfläche des Unity-Editors ermöglicht eine schnelle Erstellung von Prototypen. Wenn Sie sich im "Play"-Modus des Editors befinden, können Sie spielen und eine Vorschau darauf sehen, wie Ihre Anwendung in der endgültigen Version aussehen wird. Sie können die Szene anhalten und Werte, Assets, Skripte und andere Eigenschaften ändern, um die Ergebnisse sofort zu sehen. Sie können ein Projekt auch Frame für Frame durchgehen, um das Debugging zu erleichtern.
Umfangreiche Interaktivität Unity bietet eine robuste und gut dokumentierte API, die den Zugriff auf die gesamte Palette seiner Systeme, einschließlich Physik, Rendering, Animation und Kommunikation, ermöglicht und ein reichhaltiges Interaktionsmodell sowie die Integration mit anderen Systemen erlaubt.
Hochwertige Grafiken: Mit der skriptfähigen Render-Pipeline (SRP) können Sie den Kern Ihrer Renderschleife in C# kodieren, wodurch Sie viel mehr Flexibilität bei der Anpassung der Szene an Ihre Inhalte erhalten.
Es stehen zwei SRPs zur Verfügung: Die High-Definition Render Pipeline (HDRP) bietet erstklassige visuelle Qualität auf Hochleistungshardware, während die Universal Render Pipeline (URP) bei der Skalierung für Mobilgeräte eine reaktionsschnelle Leistung beibehält.
VR- und AR-Unterstützung (plus Bereitstellung für 25 weitere Plattformen). Dank seines umfangreichen Plattform-Supports wird Unity von AAA-Game-Studios, Top-Kreativagenturen, Filmstudios und Forschungsteams in der Automobil-, Weltraum- und anderen Branchen verwendet, um immersive Anwendungen zu erschaffen.
Erweiterte Werkzeuge für Künstler und Designer: Unity umfasst 3D-Szenen-Design-Tools, Storytelling und Cinematics, Beleuchtung und Spezialeffekte, ein Audiosystem und ein leistungsstarkes Dopesheet-Animationssystem.
Maschinelles Lernen und KI-Fähigkeiten: Das Unity ML-Agents Toolkit ermöglicht es Forschern im Bereich des maschinellen Lernens, komplexe Verhaltensweisen mit Unity zu untersuchen und Entwicklern interaktiver Inhalte die neuesten Technologien des maschinellen Lernens zur Entwicklung intelligenter Agenten zur Verfügung zu stellen.
Der Asset Store: Der Asset Store bietet Ihnen Zugriff auf den größten Marktplatz für Standard-Assets und Produktivitäts-Tools, einschließlich einer riesigen Auswahl für die Erstellung von Umgebungen, um Entwicklungszeit zu sparen.
Die BMW Group hat mit Unity einen grafischen Szenario-Editor entwickelt, der den Prozess zum Testen und Validieren von Funktionen des automatisierten Fahrens (AD) in der Entwicklung erheblich vereinfacht. Die Schnittstelle macht es den AD-Entwicklern leicht, Tausende von simulierten Szenarien zu visualisieren und einzurichten, die den Reifegrad und die Einsatzbereitschaft der Funktionen erhöhen.
Nahezu 95 % aller Testkilometer von BMW zum autonomen Fahren werden von virtuellen Fahrzeugen in virtuellen Welten zurückgelegt.
Lesen Sie unsere Blogserie, um mehr zu erfahren.
Erfahren Sie mehr darüber, wie die weltweit führenden Automobilhersteller Unity einsetzen, um die Entwicklung autonomer Fahrzeuge und ihren gesamten Produktlebenszyklus zu beschleunigen, vom Design über das Marketing bis hin zur Wartung.