Automotive Softwaretechnik für pilotiertes Fahren

Autor / Redakteur: Florian Netter* / Martina Hafner

Die erfolgreiche Implementierung von pilotierten Fahrfunktionen erfordert neue Konzepte und Ansätze in der Automotive Softwareentwicklung. Insbesondere werden Methoden aus dem Bereich der Künstlichen Intelligenz die intelligenten Systeme im Automobil vorantreiben.

Firma zum Thema

Abbildung 1: Fahrzeugsensorik für Umfelderfassung
Abbildung 1: Fahrzeugsensorik für Umfelderfassung
(Bild: Audi Electronics Venture GmbH)

Eine Verbindung mit einem zentralen IT-Backend schafft neue Möglichkeiten für innovative Anwendungsfälle, z.B. eine Optimierung des Verkehrsflusses. Die Umsetzung im Rechenzentrum wird von Container-Technologien wie Linux Container/Docker und neuen Architekturmustern wie Microservices unterstützt. Um den immensen Datenverkehr in der komplexen E/E-Vernetzungsarchitektur von autonomen Fahrzeugen bewältigen zu können, müssen neue Kommunikationskonzepte betrachtet und umgesetzt werden.

In den letzten Jahren wurden viele Innovationen, unter anderem im Bereich der Fahrerassistenz, konzipiert und zur Serienreife entwickelt. Ein Beispiel dafür ist der Audi active lane assist: Beim Verlassen der Fahrspur wird der Fahrer nicht nur gewarnt, sondern auch im Rahmen der Systemgrenzen aktiv bei der Spurhaltung unterstützt. Ermöglicht wird dies durch eine stetig steigende Anzahl an Software und elektrischen/elektronischen Systemen im Automobil. Die logische Fortsetzung dieser Systeme sind pilotiertes Fahren und Parken, welche bereits heute Schlüsseltechnologien der Zukunft sind.

Bildergalerie
Bildergalerie mit 14 Bildern

Im Mai dieses Jahres fuhr Ilse Aigner, Bayerische Staatsministerin für Wirtschaft und Medien, Energie und Technologie, im neuesten Konzeptfahrzeug Audi A7 piloted driving concept von Ingolstadt aus auf der Autobahn A9 in Richtung Denkendorf. Das Forschungsauto „Jack“ hat gelernt, sämtliche Fahrmanöver auf der Autobahn nicht nur selbstständig, sondern vor allem mit Rücksicht auf andere Verkehrsteilnehmer durchzuführen. Das ausgewiesene digitale Testfeld auf der Autobahn A9, das vom Bundesministerium für Verkehr und digitale Infrastruktur mit eingerichtet wurde, bietet dafür beste Voraussetzungen.

Die innovativen und neuen Konzepte sind eine technologische Herausforderung, aus der sich wiederum völlig neue Herausforderungen für die automotive Softwareentwicklung ergeben. Zusätzlich muss diese auf aktuelle Trends der Elektrik-/Elektronik-Entwicklung reagieren. Die Aufgabe der Audi Electronics Venture GmbH ist, die AUDI AG bei der Bewältigung der anstehenden Herausforderungen als kompetenter Partner zu unterstützen.

1. Einführung pilotiertes Fahren

Um das pilotierte Fahren umsetzen zu können, benötigt das Fahrzeug eine vollständige 360-Grad-Sicht auf das unmittelbare und mittelbare Umfeld. Hierzu kommen verschiedenste Sensoren mit unterschiedlichen Wahrnehmungsbereichen zum Einsatz, siehe Abbildung 1 in der Bildergalerie. Auch muss der Umkreis redundant erfasst werden, um Plausibilisierungen durchführen, Störungen bzw. Fehlfunktionen erkennen und ggf. Sensorersatzwerte bestimmen zu können.

Alle Messgrößen werden dazu in der zentralen Sensordatenfusion verarbeitet, die ein vollständiges Modell der Umgebung berechnet. Zusätzlich können über die Car-to-X-Kommunikation oder ein zentrales IT-Backend weitere Informationen gesammelt und mit verarbeitet werden. Dieses Modell wird nun in der Trajekorienplanung weiter verwendet, um Planungen der Fahrbahn auf Basis des Umfelds durchführen zu können. Eine weitere Softwarekomponente zur Entscheidungsfindung berechnet die internen Zustände und aktiviert die entsprechenden Softwaremodule, z. B. die Berechnung einer neuen Trajektorie. Eine Aktoransteuerung steuert nun das Getriebe, das elektronische Gaspedal und die Bremsen an, und gibt den berechneten Lenkwinkel vor. Während der Fahrt wird aufgrund der Eigenbewegung und der Änderungen im Umfeld laufend neu berechnet und nachgeregelt.

Für die seriennahe Entwicklung existiert das sogenannte zFAS (zentrales Fahrerassistenz-Steuergerät) mit einer sehr leistungsfähigen Hardwarearchitektur in der Größe eines Laptops, siehe Abbildung 2 in der Bildergalerie.

2. Ein Blick auf relevante Softwaretechnologien

Um mit hochkomplexen Verkehrssituationen umgehen zu können, werden Fahrzeuge mit kognitiven Fähigkeiten benötigt. Auf Basis von hinterlegtem und gelerntem Wissen plus der intelligenten Interpretation des Umfelds ist das Fahrzeug selbstständig in der Lage, autonom und entsprechend der Situation die richtigen Entscheidungen zu treffen. Dabei werden Konzepte und Ansätze aus dem Bereich der Künstlichen Intelligenz eine zentrale Rolle spielen.

Zusätzlich werden die Fahrzeuge über ein zentrales IT-Backend so miteinander vernetzt, dass quasi in Echtzeit Informationen untereinander ausgetauscht oder auch gezielt abgerufen werden können. Diese Technologie ermöglicht eine Art Schwarmintelligenz, also das Teilen und Nutzen komplexer Informationen in einer großen Gruppe. So profitiert ein einzelnes Auto von den Erkenntnissen vieler.

In den nächsten Unterkapiteln wird auf diese Punkte nun näher eingegangen.

2.1 Künstliche Intelligenz

Künstliche Intelligenz (KI) ist ein Bereich der Informatik mit dem Ziel, Softwaresysteme zu entwickeln, die sich ähnlich zu einer menschlichen Intelligenz verhalten. Es existieren einige Teilgebiete, z. B. wissensbasierte Systeme, Natural Language Processing, Robotik, maschinelles Lernen, u.v.m. Bei maschinellem Lernen beispielsweise lernt ein System aus bestehenden/historischen Daten oder Beispielen. Die Algorithmen sind nach der sogenannten Trainingsphase in der Lage, auf Basis der erlernten Muster zu verallgemeinern und können somit in vergleichbaren Situationen angewendet werden.

Eine spezielle Ausprägung dieser Ansätze sind neuronale Netze. Sie basieren auf einer sehr vereinfachten Nachbildung der Struktur und Funktionsweise des menschlichen Gehirns. Wesentliche mathematische Elemente sind Neuronen, die als Knotenpunkte fungieren und dabei Informationen je nach Eingangsdaten und anschließender Aktivierung weitergeben, sowie Synapsen. Sie stellen eine gewichtete Verbindung zwischen den Neuronen dar. Abbildung 3 in der Bildergalerie zeigt ein einfaches neuronales Netz mit zwei Hidden Layern.

Die Neuronen werden zusätzlich noch in unterschiedlichen Schichten angeordnet – Eingangsschicht (Input Layer), verdeckte Schichten (Hidden Layer), Ausgangsschicht (Output Layer) – und verdichten die Eingangsdaten zu immer „höherem“ Wissen, bis letztendlich in der Ausgangsschicht ein Ergebnis vorliegt. Dabei gibt es eine Vielzahl an unterschiedlichen Typen (wie etwa Feed-Forward-Netze, rekurrente Netze) und Architekturen (Anzahl der Hidden Layer, fully connected layers, shortcut connections) mit einer Vielzahl an mathematischen Modellen für die Neuronen.

Unter dem derzeit sehr populärem Begriff Deep Learning verbergen sich tiefe neuronale Netze mit einer sehr großen Anzahl an Neuronen und einigen verdeckten Schichten. So wurden in jüngster Vergangenheit vielversprechende Fortschritte bei der Bildklassifikation, Objekterkennung, Bildsegmentierung und dem Bildverstehen erzielt. Diese Methoden legen die Grundsteine für die weitere Implementierung von intelligenten pilotierten Fahrfunktionen. Als konkrete Ausprägung für den Anwendungsfall Bildklassifikation sei exemplarisch ein Convolutional Neural Network (CNN) aufgeführt. Abbildung 4 in der Bildergalerie stellt den Aufbau und die Architektur schematisch dar.

Bei diesen tiefen neuronalen Netzen wird das Eingangsbild, z. B. von einer Fahrzeugkamera, auf Basis einer gelernten Matrix gefaltet (Konvolution), um so bestimmte Eigenschaften (features) zu extrahieren und zu kombinieren. Diese werden in separaten Zwischenbildern (feature maps) abgelegt, und im sogenannten pooling layer wird die Dimension der feature maps mit Hilfe bestimmter Verfahren reduziert. Dieser Aufbau wiederholt sich nun N-mal, bis letztendlich mit Hilfe von fully connected layern die Informationen weiter verdichtet und eine Wahrscheinlichkeit für die entsprechende Klasse – in diesem Fall „Fahrzeug“ – ermittelt werden kann.

Abbildung 5 in der Bildergalerie zeigt beispielhaft die gelernten Faltungsmatrizen und die daraus entstandenen feature maps für das AlexNet – Conv-Layer1:

  • Anzahl der Layer: 5 convolutional layers, 3 fully connected layers
  • 650.000 Neuronen, 60 Millionen Parameter

Für das pilotierte Fahren ist eine Bildklassifikation jedoch bei weitem nicht ausreichend. Das Bild muss interpretiert und vom Softwaresystem komplett „verstanden“ werden, um eine komplexe Verkehrssituation beurteilen und eine Handlung ableiten zu können. Hierzu werden Verfahren aus dem Bereich der Bildsegmentierung angewendet, welche ebenfalls u.a. auf dem CNN-Ansatz basieren. Damit lässt sich jedes Pixel im Bild einer bestimmten Klasse zuordnen, beispielsweise Fahrzeuge, Parkplätze, Fußgänger, usw.

Die Berechnung von tiefen neuronalen Netzen lässt sich sehr gut parallelisieren, weshalb entsprechende Hardwarearchitekturen zum Einsatz kommen, unter anderem Graphics Processing Units (GPUs). Existierende Deep Learning Frameworks wie Caffe nutzen die CUDA (Compute Unified Device Architecture)- oder OpenCL (Open Computing Language)-Schnittstelle, um parallele Berechnungen auf GPUs durchzuführen. Dies trifft natürlich für das Training als auch für die Anwendung in einer Applikation zu.

2.2 Fast Data Plattform

Der Trend der Vernetzung wird sich in Zukunft weiter fortsetzen, und das Auto wird mehr und mehr mit seiner Umwelt interagieren. Die Car-to-X-Kommunikation ist jedoch nur eine Ausprägung – zusätzlich können durch die Kommunikation der Fahrzeuge mit einem zentralen IT-Backend viele Daten dezentral gesammelt und im nächsten Schritt zentral verarbeitet und aggregiert werden. Durch den gezielten Transfer zurück an die Fahrzeuge können so komplexe Informationen in der Flotte oder im Schwarm geteilt und genutzt werden. Es entsteht eine Schwarmintelligenz. Dadurch können beispielsweise frühzeitiger Verkehrsstörungen erkannt und Gefahrensituationen gemeldet, aber auch globale Handlungsstrategien für eine Flotte abgeleitet werden.

Ein Beispiel für eine sogenannte Fast Data Platform ist in Abbildung 6 in der Bildergalerie dargestellt. Diese bietet die Möglichkeit, Daten quasi in Echtzeit zu verarbeiten, was für das pilotierte Fahren essentiell ist. Dabei spielt das stream processing eine zentrale Rolle. Mit diesem Paradigma aus der Informatik werden Sequenzen von (Eingangs-)Daten mit bestimmten Operationen und Methoden aus der Algorithmik verarbeitet, anschließend werden die aggregierten Daten in einer No-SQL-Datenbank gespeichert. Methoden aus dem Bereich Künstliche Intelligenz und Machine Learning stellen auch hier eine Schlüsseltechnologie dar. Die Fahrzeuge können nun je nach Situation und Use Case gezielte Anfragen an die Plattform absetzen und so die relevanten Informationen abfragen.

Eine zentrale Frage ist nun, wie das Konzept in eine IT-Infrastruktur integriert und auf Basis der traffic load horizontal skaliert werden kann. Dieses sogenannte scale-out bedeutet die Steigerung der Performance des Systems durch dynamisches Hinzufügen weiterer Rechnerknoten on-demand. Diese ist in der Regel für eine Grundlast statisch konfiguriert und wird um einen dynamischen Teil erweitert, sodass auf Änderungen schnell und flexibel reagiert werden kann, beispielsweise im Feierabendverkehr. Dabei kann die IT-Infrastruktur durch ein Rechenzentrum vor Ort oder einer Online-Cloud-Lösung dargestellt werden.

Mit Hilfe von Containertechnologien können diese Problemstellungen effizient gelöst werden. Die Anwendungen werden in Containern inklusive aller notwendigen Pakete, Binaries und Libraries gekapselt. Diese lassen sich auf diese Weise leicht zwischen verschiedenen Hosts transportieren, ohne großen Overhead starten und damit unabhängig voneinander horizontal skalieren. Dies vereinfacht die Handhabung und Bereitstellung von Anwendungen enorm, da diese auch eigenständig sowie voneinander isoliert ablaufen. Des Weiteren wird eine Trennung von Ressourcen erreicht, die Container stellen jedoch keine virtuelle Maschine dar. Abbildung 7 in der Bildergalerie zeigt den Ansatz grafisch, die Infrastruktur wird dabei vom Betreiber zur Verfügung gestellt (IaaS – Infrastructure-as-a-Service). Zu den verschiedenen Ebenen existiert eine Vielzahl an Produkten, Frameworks und Tools, z. B. Docker, Mesosphere als Data Center OS, u.v.m.

Das Deployment der Container kann beispielsweise mit Docker Machine und Docker Swarm durchgeführt werden, Docker Compose unterstützt basierend auf YAML-Konfigurationsfiles bei der Orchestrierung.

Das Containerkonzept passt hervorragend zum Microservice-Architektur-Ansatz. Mit diesem Architekturpattern wird eine komplexe Anwendung aus vielen kleinen (micro) unabhängigen Diensten (Services) mit jeweils klar definierten Aufgaben modular zusammengebaut. Zur Kommunikation wird eine Programmierschnittstelle definiert, die etwa über Publish/Subscribe-Mechanismen zu einer losen Kopplung führt. Die einzelnen Services werden nun in separate Container gekapselt. Damit ergibt sich eine hohe Portabilität, auch können die Dienste unabhängig voneinander skaliert und neu gestartet werden.

Zusätzlich ergeben sich weitere Vorteile für Microservices (Auszug):

  • Unabhängige Entwicklung der Services
  • Nutzung unterschiedlicher Programmiersprachen und Technologien pro Microservice
  • Enabler für DevOps-Prinzipien
  • Starten einer neuen Instanz bei Ausfall eines Services

Gerade der letzte Punkt ist essentiell für hochverfügbare und fehlertolerante Systeme (Resilienz). Darüber hinaus ergeben sich in den Bereichen Cluster Monitoring & Management, Workflow Management und Data Security weitere Punkte, die in enger Verzahnung mit der IT-Abteilung zu bearbeiten sind.

Im Cloud Computing existieren noch weitere interessante Ansätze für die Entwicklung. Dabei werden mehr und mehr Schichten des Cloud-Stacks durch den Cloud-Provider betrieben:

  • Platform-as-a-Service (PaaS): OS und Middleware
  • Software-as-a-Service (SaaS): PaaS-Ansatz und Applikationen + Datenhaltung

Function-as-a-Service (FaaS) ist eine neue Entwicklung, mit der Funktionen ohne Kenntnisse der Infrastruktur sehr schnell und einfach entwickelt, und auch gehostet werden können.

3. E/E-Vernetzungsarchitektur

Um pilotierte Fahrfunktionen umsetzen zu können, ergeben sich völlig neue Herausforderungen an eine zukunftsorientierte Vernetzungsarchitektur. Die Anzahl von verteilen Funktionen und die Anforderungen an die verfügbare Rechenleistung werden massiv ansteigen, und das Fahrzeug wird sich mehr und mehr mit seiner Umwelt (Car-to-X) und einem IT-Backend verbinden. Flankiert wird dies durch Anforderungen an höhere Bandbreiten für die Fahrzeugvernetzung. Derzeit gibt es viele Aktivitäten im Bereich Automotive Ethernet, da sich hier vielversprechende Ansätze und Konzepte realisieren lassen.

Abbildung 8 in der Bildergalerie zeigt eine schematische Vernetzungsarchitektur mit Domänensteuergeräten. Diese sind über einen Ethernet-Backbone verbunden. Die Subnetze unterhalb der Domänen-ECUs auf der Sensor/Aktor-Ebene können wiederum mit Ethernet umgesetzt werden, jedoch werden hier traditionelle Bussysteme wie CAN oder LIN noch Bedeutung haben.

Ein neues Element in der E/E-Architektur könnte eine Central Computing Unit oberhalb der Domänenebene sein, die eine sehr hohe Rechenleistung besitzt. Diese könnte alle interdisziplinären oder sehr rechenintensiven Funktionen zusammenfassen und damit sozusagen als „Gehirn“ des Fahrzeugs fungieren.

Die Vernetzung ist bei weitem nicht nur auf das Fahrzeug beschränkt. Es geht vielmehr um einen zukunftsfähigen End-2-End-Architekturansatz, in dem neben den Bereichen Halbleiter, interner Fahrzeugvernetzung und mobile Connectivity auch die IT-Backends mit einbezogen werden. Dabei wird es neben OEM-spezifischen auch OEM-übergreifende Backends geben, z.B. mit HERE, einem der wichtigsten Anbieter für hochpräzise digitale Navigationskarten und ortsbezogene Dienstleistungen.

4. Zusammenfassung

Innovative Softwaretechnologien sind die Basis für die Weiterentwicklung von pilotierten Fahrfunktionen. Intelligente Autos mit kognitiven Fähigkeiten und Echtzeit-Informationen aus dem Schwarm zünden die nächste Stufe von innovativen Funktionen. Konzepte aus dem Bereich der künstlichen Intelligenz, speziell dem Deep Learning, bergen enorm viel Potential. Über eine Fast Data Platform mit den skizzierten Technologiebeispielen können Daten zentral verarbeitet und in höherwertige Informationen transformiert werden.

Container und Microservices beschleunigen die Entwicklungen im IT-Bereich und fördern agile Entwicklungsmethoden. Eine High Performance Central Computing Unit könnte als Integrationsplattform für bereichsübergreifende und kognitive Funktionen dienen. Ein End-2-End-Architekturansatz flankiert mit einer fundierten Anforderungsanalyse und Systems Engineering ergibt eine stabile Basis für die weitere Entwicklung von pilotierten Fahrfunktionen.

* Florian Netter ist für das Software Competence Center bei der Audi Electronics Venture GmbH zuständig. Die Hauptaufgaben sind das Finden und Evaluieren von neuen Softwaretechnologien - und der Aufbau von entsprechenden Technologieprototypen für Automotive.

(ID:44546837)