Der Traum vom autonomen Fahren ist derzeit noch kaum mehr das: Die gemeinsame Vision einer Industrie, die im Mangel an Rohstoffen (siehe unser Artikel zum Chipmangel der Branche) nicht nur mehr Chips bedarf, als vorhanden, sondern die zukünftig auch weitere Lieferengpässe in Kauf nehmen muss, wenn die zu erwartende Palladium-Knappheit einsetzt (Quelle: https://www.t-online.de/auto/technik/id_91749886/palladium-experte-warnt-autobauer-vor-naechstem-engpass.html ).
Dennoch schreitet die Entwicklung voran, auch und vor allem im Bereich des autonomen Fahrens – wäre man zynisch, würde man glatt um Worte ringen und die länger lebenden Totgesagten bemühen, ungeachtet der stets selbstbewusst vorgetragenen Leistungsversprechen sichtbarer Teile der Branche wie Tesla – die indes einen vollfunktionalen Beweis noch schuldig bleiben. Zeit also, sich zu fragen, wie die Entwicklung auf die Straße gebracht und getestet werden kann. Wir finden die Antwort im Interview mit Stefan Wenz von Epic Games, dem Unternehmen hinter der Unreal Engine.
- Testing autonomer Fahrfunktionen: Wo ein Wille trotz fehlender Wege besteht
- Das Unreal Engine Interview mit Stefan Wenz, Epic Games
- Unreal Engine - So wurden Games zur Brücke für virtuelle Test-Umgebungen
- Fortnite - Erfolgreicher Test der Unreal Engine
- Unreal Engine: So viel Verlass ist auf die virtuell gesammelten Daten
Marc
Marketing Professional
24.03.22
Ca. 21 min
Testing autonomer Fahrfunktionen: Wo ein Wille trotz fehlender Wege besteht
Zur Freude aller und der Unkenrufe zum Trotz: Es geht voran, und Fahrerassistenzsysteme der Stufe 3 kommen noch in diesem Jahr auf die Straße. Systeme also, in deren Rahmen Fahrer die Verantwortung an die autonomen Fahrfunktionen abgibt und den Blick von der Straße abwenden darf. Das Fahrzeug führt Beschleunigungs-, Brems- und Ausweichmanöver selbständig durch, beteiligt sich an etwaig nötigen Rettungsgassen – und ist bei Regen nicht nutzbar. Weitere Entwicklungen stehen also an, um die Kinderkrankheiten zu beseitigen und um Stufe 4 oder gar 5 zum vollständig autonomen Fahren zu erreichen. Hierfür sind vor allem Tests nötig – wie reagiert das Fahrzeug in Situation X, mit Parameter Y und Sonderfall Z? Wie lassen sich diese Tests durchführen, in Masse, mit Varianten, automatisiert? Wie erhalte ich die nötigen Datensätze, wie verifiziere ich diese, wie bekomme ich diese in eine Umgebung, in der sich alle denkbaren Testszenarien durchspielen lassen?
Eine Lösung bilden Game Engines, die ihren Ursprung in der Spieleindustrie finden und die bereits seit Jahren hochrealistische Abbildungen der Umwelt perfektioniert haben. Speziell die Rennspiel-Branche bemüht sich seit jeher um maximalen Realismus und strebt oft den Status Quo der Simulation an. Wir haben die Gelegenheit daher wahrgenommen, mit Stefan Wenz, Business Development Manager Unreal Engine Enterprises at Epic Games, über die Unreal Engine zu sprechen. Heraus kam ein informatives, interessantes und sehr sympathisches Interview – wir wünschen viel Spaß!
Das Unreal Engine Interview mit Stefan Wenz, Epic Games
Mobility Rockstars: Hallo Stefan! Danke, dass du dir die Zeit nimmst, unsere Fragen zu beantworten. Lass uns doch am besten gleich ganz konkret werden: Was genau ist die Unreal Game Engine?
Stefan: Vielleicht müsste man zuerst klären, was überhaupt eine Game Engine ist. Letztlich nämlich ein Zusammenschluss verschiedener Funktionen, die man benötigt, um beispielsweise ein Spiel zu betreiben. Für ein Spiel wie zum Beispiel „Fortnite“ von Epic Games braucht man ein visuelle Komponente für die Darstellung an sich, die sogenannte „Render Engine“. Man braucht eine Speech-Komponente für das Sprach-Interface, eine Sound-Komponente – in unserem Fall ein „Spatial Audio“, um das 3D-Hören zu ermöglichen, um in einem Spiel wie Fortnite zu hören, woher Gegner kommen, und verschiedene kleinere Services, um das Spiel zu betreiben. Last but not least gehört noch, ganz wichtig, die Physik-Engine dazu. Und genau diese Bausteine, die man benötigt, um ein Spiel zu betreiben, ist auch, was man innerhalb einer Simulation für autonome Fahrfunktionen braucht. Und das ist genau, was die Unreal Engine ist. Es gibt natürlich auch andere Anbieter wie zum Beispiel die Unity Engine (Anm. d. Red.: Über die wir ebenfalls bereits einen Artikel verfasst haben) – allerdings ist die Unreal Engine eine der wenigen, die komplett Open Source ist.
Unreal ist außerdem wahnsinnig modular – man kann beispielsweise via C++ Module hinzufügen, um eigene Funktionen in die Simulation zu bringen. Durch Blueprints (Visual Scripting Komponente in UE) geben wir auch Nicht-Programmierern die Möglichkeit, Spiele zu entwickeln.
Mobility Rockstars: Funktioniert euer Engine-Licensing-Modell dann so, wie man es kennt? Sprich, kleine Entwickler nutzen die Open Source Engine kostenfrei, Spielehersteller oder OEMs können dafür Lizenzmodelle erwerben?
Stefan: Da sind wir tatsächlich ein bisschen anders als vergleichbare Anbieter. Es gibt drei Lizenzierungsmöglichkeiten. Zwei davon sind im Web möglich – das eine ist die Publisher-Lizenz, die andere die Creator-Lizenz, die für alle B2B-Usecases entwickelt wurde. Wenn also beispielsweise ein OEM eine Applikation erstellen möchte, eine Fahrsimulation beispielsweise, kann der OEM ins Web gehen und sich die Engine kostenlos herunterladen. Dazu gibt es dann die Option, sich bei uns Support einzuholen über ein geschlossenes Ticketsystem, wo der Zugang dann einen überschaubaren, aber existenten Beitrag kostet.
Bei der Publisher-Lizenz findet man sich im B2C-Bereich wieder, in dem Spielehersteller die Engine nutzen können, ebenfalls kostenlos, bis zur ersten umgesetzten Million, die mit dem auf Unreal basierenden Produkt verdient wurde – in dem Fall würden dann Royalties fällig.
Die dritte Lizenz-Option ist die, sich ganz simpel bei uns zu melden. Wir machen ein Enterprise Agreement, wenn ihr mit uns arbeiten wollt, und hier kann man zusätzlich vereinbaren, bestimmte B2C-Anwendungen – wie zum Beispiel einen interaktiven Webkonfigurator, um sich sein Auto zusammenzuklicken – die eigentlich Teil der Publisher-Lizenz sind, dennoch zu erhalten. Dafür muss man dann eben einfach mit uns reden. Festhalten kann man also, dass die Engine im Enterprise Umfeld an sich aber immer kostenfrei ist. In der Engine sind außerdem auch verschiedene Dienste kostenfrei enthalten, wie „Quixels“, hochauflösende Assets diverser Gegenstände, oder „Metahuman“, mit dem sich menschliche Avatare erstellen lassen – die können dann beispielsweise für Fahrzeuginnenraum-Simulationen genutzt werden, um Müdigkeitserkennung oder ähnliche Services zu testen.
Unreal Engine – So wurden Games zur Brücke für virtuelle Test-Umgebungen
Mobility Rockstars: Ist das also die Brücke vom Gaming zur Industrie? Bausteine und Modelle, die bereits für Spiele entwickelt wurden und den Anspruch einer Simulation haben, die nun in einer virtuelle Umgebung für Tests genutzt werden können?
Stefan: Genau. Der Detailgrad dieser Assets ist extrem hoch, auch dank des technischen Fortschritts. Der Grad der Simulationen war früher noch ein bisschen holprig, weil einfach der Realismus gefehlt hat, da Grafik Engines noch nicht die benötigte Leistung erbringen konnten. Inzwischen sind wir vor allem bei Driving Simulations wahnsinnig weit. Ein Kunde von uns hat mit professionellen Rechnern einen Test gemacht und sie zuerst auf der Nordschleife am Nürburgring fahren lassen, ehe er sie in einem Fahrsimulator erneut fahren ließ. Die Rennergebnisse waren dabei extrem ähnlich mit Abweichungen lediglich im Sekundenbereich.
Mobility Rockstars: Das weckt bei mir Erinnerungen an meine Jugend, als ich an meinem ersten Computer das Spiel „Test Drive“ gespielt habe. Da wurden auch schon Fahrzeuge und Straßensituationen simuliert – natürlich noch extrem holprig, mit leeren Straßen und klobigen Autos, aber es fühlte sich schon anders an, ob man einen BMW oder eine Dodge Viper fuhr. Waren das die Anfänge der heutigen Testmöglichkeiten via Unreal Engine?
Stefan: Ja, das war mit Sicherheit ein wichtiger Schritt, auch wenn die Hardware damals natürlich nicht so weit war, eine Simulationsumgebung abzubilden. Wenn ich mir dagegen ansehe, was heute möglich ist, ist das schon enorm. Wir machen beispielsweise auch „virtuelle Testfahrten“, also eine echte Simulation, durch die ein realer Fahrer fährt, machen aber auch schon automatisierte Validierungen von autonomer Fahrsoftware mit Unreal. Denn im Endeffekt macht es für die Software keinen Unterschied, ob die gelieferten Informationen von einer Kamera stammen, oder aus der Engine heraus erzeugt werden. Wichtig ist, dass es in Echtzeit passiert – wofür eine Engine gebaut wurde – und dass der Realismus so hoch ist, dass das Bildmaterial gleichwertig zu Material aus der Kamera ist.
Deswegen setzen aber auch immer mehr OEMs auf die Möglichkeiten des Testings autonomer Fahrfunktionen in der Unreal Engine: Du kannst die nötigen Tests unendlich schnell durchführen. Validierungen, die früher tausende von Testkilometern benötigt haben, kann man jetzt über Nacht vornehmen. Wenn nun beispielsweise ein Fehler entsteht in der Nacht, ist es möglich, zum Fehler zu springen, kann diesen analysieren, beheben und sofort erneut testen, ob der Fehler wirklich beseitigt wurde. Dazu kommen all die denkbaren Varianten im Testing nun berücksichtigt werden können, die in der realen Welt so gar nicht nachstellbar sind: Passanten, die unerwartet auf die Straße laufen, Regen, Straßenbeläge – all dies kann in der Game Engine mit den immer gleichen Parametern simuliert und entsprechend getestet werden.
Wenn man das noch eins weiter denkt, geht es auch gar nicht immer nur um das Validieren der Software für das einmalige, autonome Fahren – man nimmt ja auch Verbesserungen vor, ohne ursprüngliche Funktionen zu verschlimmbessern. Diese rekursiven Tests lassen sich in einer Game Engine ebenfalls optimal abbilden.
Mobility Rockstars: Da sehe ich auch eine Schnittmenge, zum Beispiel zur Robotic Process Automation. Diese Tests zu automatisieren, um dafür nicht hochqualifiziertes Personal abstellen zu müssen, macht sicherlich ebenfalls Sinn.
Stefan: Auf jeden Fall. Dadurch, dass Unreal auf C++ aufsetzt, hat man natürlich alle Funktionen davon auch in der Unreal Engine und kann alles Benötigte programmieren. Es bietet sich aber auch an, mit Plugins zu arbeiten und diese zu entwickeln – so lassen sich Fehler in diesem letztlich doch komplexen Umfeld besser vermeiden. Außerdem lernen wir auch ständig zu. Nehmen als Beispiel unser Spiel „Fortnite“ – das wurde letztlich nur gegründet, um unsere eigenen Technologien zu testen und zu verbessern. Wo sind Fehler, was kann optimiert werden, wo sitzt der Schmerz?
Fortnite – Erfolgreicher Test der Unreal Engine
Mobility Rockstars: Okay, Moment – das heißt also, Fortnite, dieses wirklich sehr erfolgreiche Spiel, ist im Grunde nur ein einziger Unreal Engine Test, der zufällig sehr erfolgreich wurde?
Stefan: Exakt! Und was dabei für Kunden aus der Automotive-Branche – oder eigentlich für alle Kunden – interessant ist: Über 350 Millionen Accounts spielen Fortnite, und testen die Software somit. Es gibt keine andere Software, egal wie gut, die auf einem ähnlichen Niveau getestet wurde.
Mobility Rockstars: Das prädestiniert dann natürlich auch für verlässliche Einsätze in der Automobil-Branche. Was mich und unsere Leser aber auch interessiert ist: Wir haben nun also diese sehr verlässliche Engine, die vielfach getestet wird und zahlreiche Möglichkeiten bietet. Wie aber erstelle ich mir nun letztlich meine virtuelle Testumgebung? Wie bekomme ich die nötigen Daten in die Simulation?
Stefan: Es gibt verschiedene Wege, wie man die Testumgebung erstellen kann. Klar, die einfachste Lösung ist: Such dir einen CG-Artist, der die Umgebung erstellt, der dazu die Quixels-Assets verwendet, Metahuman, etc. – das kostet natürlich etwas, der Kilometer Straße ist da nicht gerade günstig, aber so kannst du dir bauen, was genau du brauchst.
Mobility Rockstars: So könnte ich mir dann einfach via Unreal Engine die gewünschte Straße mitten in München nachbauen, richtig?
Stefan: Richtig – aber eigentlich kann man weiter gehen und sagen „Wieso eine Straße aus München nachbauen?“ Lieber lasse ich mir eine Straße zusammenbauen, auf der alles vorhanden ist und passiert, was ich testen möchte. Außerdem kann ich natürlich auch „Capture Reality“ verwenden. Das ist die Scanning-Technologie, mit der die Quixel Assets erfasst werden. Du kannst eine Drohne fliegen lassen, die über die Landschaft fliegt und eine Punktwolke erfasst. Die kann in die Unreal Engine übertragen und nachgebaut werden. Noch einfacher wäre, sich anzusehen, was für Software-Firmen es noch gibt, die mit Unreal arbeiten. Da gibt es zum Beispiel Cesium – die haben praktisch die ganze Welt erfasst und stellen das unter anderem Map-Anbietern für die Karten in Navigationssystemen zur Verfügung. Auch das Unternehmen, das den Microsoft Flight Simulator gebaut hat, nutzt Unreal. Das sind also alles Daten, die existieren und auf die man zugreifen kann. So lässt sich das Umweltmodell extrem realistisch gestalten. Für Fahrzeuge und deren Innenräume ist das oft noch einfacher – der OEM kann einfach das CAD-Modell zur Verfügung stellen, das sich importieren lässt. Natürlich, da muss man dann noch nacharbeiten. Sensoren und deren Funktionen integrieren, und so weiter.
Mobility Rockstars: Es ist wirklich ein sehr interessantes Thema, und so langsam nähern wir uns nach der Begriffserklärung, der Umgebung und den Fahrzeugen nun dem Thema des Testings. Wie weit kann ich da in der Simulation mittels Unreal Engine gehen? Kann ich mit Bots Tests automatisieren und sogar variieren? Kann mein Fußgänger in einem Test in der Mitte gehen und im nächsten einen Zentimeter weiter links? Kann ich also eine K.I. einsetzen, die mir bei der Testabdeckung hilft?
Stefan: Auch hier könnte man sagen, dass wir viel aus der Spielebranche gelernt haben. Wenn ich z.B. eine Runde „Fortnite“ spiele, habe ich eine Lobby, in der 100 Spieler sind, die gerne eine Runde spielen möchten. Aber sind das immer 100 Menschen? Eine Alternative sind computergesteuerte Mitspieler – sogenannte Bots. Diese Bots müssen natürlich Entscheidungen treffen, die sich korrekt anfühlen, sie müssen Fehler machen, um auch mal danebenzuschießen, und so weiter. Das sind schon Grundlagen, die später im Testing benötigt werden. In unserem „The Matrix Awakens“ Trailer (Anm.d.Red.: Ein Computerspiel, das auf der Unreal-5-Engine basiert) seht ihr beispielsweise für etwa 13 Sekunden Bilder einer Verkehrssituation, die wie der gesamte Verkehr im Spiel mit dem „Mass AI Crowd and Traffic System“ dargestellt wird – das ist eine K.I., die den Verkehr simuliert. Diese Fahrzeuge interagieren auch miteinander, sie überholen sich, biegen ab, andere Fahrzeuge scheren ein oder müssen beschleunigen. Es findet also auch eine Interaktion zwischen den K.I.s statt.
Unreal Engine: So viel Verlass ist auf die virtuell gesammelten Daten
Mobility Rockstars: Wie viel Verlass ist denn dabei auf die simulierten und somit auch günstig und in Masse eingekauften Daten? Immerhin hängen davon im Straßenverkehr möglicherweise Leben ab.
Stefan: Die Daten sind nicht 100 Prozent deterministisch, aber der Test wird bei gleicher Durchführung auch jedes Mal das gleiche Ergebnis ausspucken. Natürlich ist eine Spielengine nicht mit einer vorgerenderten Grafik vergleichbar – wenn es beispielsweise regnet und die Tropfen auf die Windschutzscheibe des simulierten Fahrzeugs fallen, fallen diese nicht immer exakt gleich, fallen mal nach links, mal nach rechts, wie Regen eben ist, das ist ja im echten Leben nicht anders. Aber das Ziel der Game Engine ist, die immer gleichen Daten wieder auszugeben, so realistisch wie möglich. Dafür ist auch die Physix-Engine mit dabei, die dafür sorgt, dass physische Objekte sich verhalten wie in der Realität – ein Ball rollt so weit, wie ein realer Ball ebenfalls rollen würde.
Mobility Rockstars: Das wirft bei mir auch die Frage auf, wie weit das Testing in so einer hochkomplexen Simulation bereits ist: Kann es das physisch stattfindende, reale Testing auf echten Straßen ersetzen, wenn ich so viele Testsituationen virtuell abdecken kann?
Stefan: Echte Tests auf der Straße komplett ersetzen kann das Testing via Unreal nicht. Tests in der virtuellen Umgebung machen es aber sicher zu einem Großteil überflüssig. Alles, was ich vorher gemacht habe, um die Software zu testen, kann ich in Unreal auch machen. Ich kann bei einer Testfahrt schon vor der Fahrt definieren, was das Ergebnis sein soll: Ich kann sagen, „fahre Strecke XY bei Sonnenschein“ ab, und dabei muss dann das gleiche Ergebnis wie in der Simulation herauskommen. Ich brauche also die Testfahrt schon immer noch, um einen Validierungspunkt zu setzen, damit Simulation und echte Testfahrt nicht auseinander driften. Außerdem macht so eine Testfahrt ja auch Spaß! 😊 Aber gerade die unnützen Situationen können vermieden werden: Man fährt raus, hat einen Fehler, muss zurück, suchen, prüfen, nachjustieren, wieder raus. In der Simulation kann ich das abkürzen, den Fehler finden, beheben und erneut testen, während weitere Tests parallel laufen. Außerdem kann ich die Bilder, die ich bei der Testfahrt aufnehme, auch wieder direkt in die Unreal Engine einspielen und dann in der Simulation wiederum testen, ob diese die gleichen Ergebnisse liefert wie die reale Testfahrt. Die Validierung funktioniert also in beide Richtungen. Von dem her würde ich nicht sagen, dass reale Testfahren komplett ersetzt werden können, aber das Testing in virtuellen Umgebungen macht viele unnötige Fahrten überflüssig.
Mobility Rockstars: Stefan, wir danken dir vielmals für das sehr informative und spannende Interview und freuen uns schon auf das nächste Gespräch!
Stefan: Danke, ebenfalls!