Das autonome Fahren wird viele Vorteile mit sich bringen, sowohl für den Endverbraucher als auch für kommerzielle Kunden. Im privaten Bereich kann der Fahrer durch das neue Fahrerlebnis die Aufgaben der Verkehrsüberwachung und Fahrzeugkontrolle entspannt dem System überlassen. Dadurch gewinnt er Freiraum für andere Dinge wie Entertainment, E-Mail-Bearbeitung oder andere Aktivitäten, die ihn ohne Automatisierung von seiner eigentlichen Aufgabe, den Verkehr zu überwachen und das Fahrzeug zu steuern, ablenken würden. Für kommerzielle Anwendungen, wie zum Beispiel den Mietwagenverleih, ergeben sich dadurch erheblich verbesserte Serviceleistungen, denn das Fahrzeug kann beispielsweise autonom zu einer dedizierten Zeit zum Nutzer kommen und nicht umgekehrt.

Eckdaten

Bei der Entwicklung automatischer Fahrsysteme nimmt mit steigender Autonomie die Komplexität der Aufgaben drastisch zu. Vor allem das Testen ist ein aufwendiger Prozess, der sich nur durch komplexe Simulationsverfahren zufriedenstellend bewerkstelligen lässt. Systeme wie Matlab und Simulink unterstützen die modellbasierte Entwicklung autonomer Mobilitätslösungen.

Ein weiteres Ziel des autonomen Fahrens besteht in der weiteren Reduzierung der Verkehrsunfälle, die meistens auf menschliches Versagen zurückzuführen sind. Im Durchschnitt erfolgt alle 7,5 Millionen Kilometer auf deutschen Autobahnen ein schwerwiegender Unfall aufgrund menschlichen Versagens. Dies zeigt aber auch gleichzeitig die Herausforderung, mit der sich die Automobilindustrie zu beschäftigen hat: neben der Vermeidung dieses einen Fahrfehlers muss das Fahrzeugsystem nun auch all das richtig machen, was der menschliche Fahrer auf einer Strecke von 7,5 Millionen Kilometern bereits fehler- beziehungsweise unfallfrei geschafft hat. Bis dahin sind noch einige Aufgaben in der Entwicklung zu meistern.

Evolution der Funktionalitäten

Für die Automobilindustrie ist es eine große Herausforderung, diese Ziele mit all ihren Vorteilen zu erreichen. Dabei geht es nicht nur darum, dass ein Fahrzeug autonom von A nach B fahren kann, sondern dass dies absolut zuverlässig, fehlerfrei und ohne Kollision mit anderen Objekten im Straßenverkehr erfolgt. Bis hin zum vollständig autonomen Fahren wird es daher eine Evolution der Funktionalitäten geben. Wenn man den SAE-Standard J3016 zugrunde legt, kann man hier den Grad der Automatisierung in sechs verschiedene Level unterteilen. Bis zum Level 2 übernimmt der Fahrer selbst das Monitoring des Verkehrs und erhält durch eine teilweise Automatisierung Unterstützung beim Fahrvorgang. Der Fahrer muss jedoch selbstständig erkennen, ob sich die Verkehrssituation kritisch entwickelt, und muss erforderlichenfalls das Fahrzeug selbst steuern.

Gemäß SAE gibt es für das autonome Fahren sechs Automatisierungslevel.

Gemäß SAE gibt es für das autonome Fahren sechs Automatisierungslevel. Mathworks

Der Übergang zu einem Level-3-System stellt eine große Herausforderung dar, da in diesem Fall das Fahrzeugsystem die Verkehrssituation erkennt und den Fahrer rechtzeitig auf eine kritische Situation hinweist, die das System nicht mehr selbstständig auflösen kann. Der Fahrer muss in diesem Fall die Steuerung des Fahrzeugs wieder selbst übernehmen. Ab dem Level 4 übernimmt das Fahrzeugsystem sowohl die Erkennung der Verkehrssituation als auch die eigenständige Handhabung des Fahrmanövers ohne Eingriffe des Fahrers.

Das Umgebungsmodell als entscheidende Komponente

Eine grundlegende Voraussetzung für eine hohe beziehungsweise vollständige Automatisierung des Fahrens ist die einwandfreie und vorausschauende Erkennung der Verkehrssituation um das Fahrzeug herum. Daher ist ein Umgebungsmodell erforderlich, das sämtliche Informationen enthält, um daraus eine Situationsanalyse abzuleiten und eine Manöverplanung durchführen zu können. Als Beispiel dient der Fußgänger am Fahrbahnrand, der telefonierend den Fußgängerweg auf und ab geht und eventuell die Straße überqueren möchte oder einfach nur auf den Bus wartet. Das Fahrzeugsystem muss zum einen den Fußgänger als Objekt erkennen und zum anderen entscheiden, ob es notwendig ist, das Fahrzeug abzubremsen oder auszuweichen, weil der Fußgänger die Straße überqueren möchte oder ob gar kein eingreifendes Manöver notwendig ist. Zur Erstellung des Umgebungsmodells verwendet man die Daten aus verschiedenen über das Fahrzeug verteilten Sensoren. Bereits heute ist eine klare Zunahme beim Umfang wie auch bei der Diversifikation der Sensorik für Automobile zu erkennen. Somit lassen sich die spezifischen Stärken jedes einzelnen Sensortyps zur komplementären Vervollständigung des Umgebungsmodells als auch zur Verifikation der Objektdaten aus unterschiedlichen Sensoren gegeneinander mittels Redundanz nutzen. Diesen Schritt, bei dem Radartechnik, Kameras, LIDAR, Ultraschall, GPS und weitere Sensoren zum Einsatz kommen können, bezeichnet man als Sensor-Daten-Fusion.

Die Sensor-Daten-Fusion dient dem Erstellen eines Umgebungsmodells.

Die Sensor-Daten-Fusion dient dem Erstellen eines Umgebungsmodells. Mathworks

Die Objektlisten aus den unterschiedlichen Sensoren enthalten Daten zur Beschreibung der detektierten Objekte bezüglich Typ (Auto, Fußgänger), Position (Straße, Gehweg), Geschwindigkeit und eine Reihe weiterer Informationen. Eine zusätzliche Existenzwahrscheinlichkeit als Teil der Objektdaten unterstützt die Entscheidungsfindung, ob es sich bei dem detektierten Objekt wirklich um einen Verkehrsteilnehmer handelt oder ob durch mögliches Rauschen oder Sensorausfall eine Fehldetektion vorliegt. Auf dem Weg zum autonomen Fahren wird auch eine massive Weiterverwendung und Erweiterung von bekannten Fahrerassistenzfunktionen (ADAS) erfolgen, welche aber an einigen Stellen noch hinsichtlich ihrer Genauigkeit deutlich zu verbessern sind. So wird für das automatisierte Fahren auch eine zuverlässige automatische Erkennung von Tempolimits, beispielsweise mittels Verkehrszeichenerkennung, notwendig sein, um die maximale Geschwindigkeit automatisch an das zulässige Tempolimit anzupassen.

Modellbasierte Entwicklung mit Matlab und Simulink

Eine der großen Schwierigkeiten bei der Entwicklung des automatisierten Fahrens ist das Testen. Schätzungen gehen von Größenordnungen von mehreren hundert Millionen Testkilometern aus, die man abspulen müsste, um einen realen Prototypen erschöpfend zu testen. Sowohl wirtschaftlich als auch vom zeitlichen Aufwand her wäre dies von den Automobilfirmen nur sehr schwierig zu bewältigen, bediente man sich ausschließlich eines realen Fahrzeugprototypen. Die modellbasierte Entwicklung mit Matlab und Simulink ermöglicht es den Automotive-Entwicklern bereits in einem frühen Stadium, Fahrzeugkomponenten als auch komplette Systeme im Kontext des automatisierten Fahrens zu testen. Dadurch lassen sich frühzeitig systematische Implementierungsfehler oder Fehler in den Anforderungen aufdecken, Verbesserungen einpflegen und ins System integrieren.

Matlab und Simulink unterstützen den Gesamtworkflow der Komponenten-Entwicklung.

Matlab und Simulink unterstützen den Gesamtworkflow der Komponenten-Entwicklung. Mathworks

Für die Entwicklung der Sensorik und der zugehörigen Algorithmen für die Signalverarbeitung stehen leistungsstarke Toolboxen zur Verfügung, beispielsweise für die Bereiche Radar und Kamera. Antenna Toolbox, Phased Array System Toolbox und SimRF unterstützen die effiziente Entwicklung von Radarapplikationen. Für kamerabasierte Sensorik stehen dem Entwickler unter anderem mit Image Processing Toolbox und Computer Vision System Toolbox umfangreiche Möglichkeiten für die sensornahe Bildverarbeitung beziehungsweise die nachgelagerte videobasierte Objekterkennung zur Verfügung.

Die Fusion der Sensordaten ist ein Prozess, der sich vorteilhaft direkt in einer Programmiersprache formulieren lässt, da dort häufig Schleifenkonstrukte und Matrix-Vektor-Operationen bei der Konsolidierung und Analyse der Daten notwendig sind. Matlab eignet sich mit seiner umfangreichen Programmiersprache und Funktionen zur Analyse, Visualisierung und automatischen C-Code-Generierung sehr gut, um diese Aufgabe effizient zu lösen.

Die anschließende Situationsanalyse und Entscheidungslogik repräsentieren einen komplexen Zustandsautomaten, der mit den aus dem Umgebungsmodell abgeleiteten Informationen das Verhalten der Systemfunktionen für das automatisierte Fahrmanöver festlegt. Stateflow in Simulink ist dabei das passende Werkzeug für die modellbasierte Entwicklung von Entscheidungslogiken mittels Zustandsautomaten.

Die aus der Entscheidungslogik festgelegten Manöver sind dann von der Fahrzeugregelung in Bezug auf Brems-, Lenk- und Motoreingriffe umzusetzen und eventuelle Änderungen sind kontinuierlich und umgehend im Fahrszenario anzupassen. Auch für den Entwurf und Test der regelungstechnischen Algorithmen bietet Simulink eine umfassende modellbasierte Lösung. Ein Blockschaltbildentwurf in Simulink oder die Formulierung einer Zustandsmaschine in Stateflow, die das Verhalten des Reglers unter verschiedenen Arbeitspunkten definiert, liefern dem Entwickler zusammen mit einer automatischen Reglersynthese in Simulink Control Design die richtigen Werkzeuge für einen zügigen Reglerentwurf und einem frühzeitigen funktionalen Test der modellierten Reglerkomponente.

Die Systemsimulation visualisiert anschaulich die Funktionen Objektdetektion und Tracking.

Die Systemsimulation visualisiert anschaulich die Funktionen Objektdetektion und Tracking. Mathworks

Systemsimulation und virtuelles Fahrszenario

Zusätzlich zum modellbasierten Design der einzelnen Komponenten lassen sich diese Teilfunktionen nach erfolgreichem Test zu einem Gesamtsystem integrieren und in Verbindung mit einem Fahrzeugmodell plus Umgebung (beispielsweise Straße, Häuser, Personen, Verkehrsschilder) in einem vollständig virtuellen Fahrvorgang testen.

Für eine Virtualisierung der Umgebung hat Simulink Schnittstellen zu Simulationswerkzeugen von verschiedenen Partnerunternehmen. Eine Gesamtsimulation des automatisierten Fahrvorgangs bietet dem Entwicklerteam eine ganze Reihe von Vorteilen, wie beispielsweise gefahrloses Closed-Loop-Testen von kritischen Fahrsituationen, frühzeitige Validierung und Verifikation auf Fahrzeugebene durch modellbasierte Integration, Beschleunigung des Innovationszyklus durch rapide Designiterationen und flexible Anpassung von Umgebungsbedingungen. Auch die Reproduzierbarkeit der Testergebnisse und die Re-Simulation aufgezeichneter Sensordaten sind möglich.

Als Re-Simulation bezeichnet man den modellbasierten Open-Loop-Test der Algorithmen.

Als Re-Simulation bezeichnet man den modellbasierten Open-Loop-Test der Algorithmen. Mathworks

Ein komplementärer Ansatz zur vollständigen Closed-Loop-Simulation ist der modellbasierte Open-Loop-Test der Algorithmen zur Sensordatenfusion und Situationsanalyse unter Einbeziehung aufgezeichneter Messdaten aus einem realen Fahrzeugtest, was man auch als Re-Simulation bezeichnet. In einem ersten Schritt analysiert man die aufgezeichneten Fahrzeugdaten dahingehend, ob die Algorithmen die Objekte und die Verkehrssituation korrekt erkannt haben. An Stellen, an denen die Algorithmen die Sensordaten fehlerhaft analysiert haben, beispielsweise wenn sie ein vorhandenes Objekt nicht detektiert haben, korrigiert der Entwickler den Fehler im Algorithmus und appliziert den verbesserten Algorithmus mittels einer Simulation erneut auf die aufgezeichneten Sensordaten zur Verifikation.

Automatisiertes Fahren und funktionale Sicherheit

Die modellbasierte und ISO-26262-konforme Softwareentwicklung trägt wesentlich zur funktionalen Sicherheit des Fahrsystems bei.

Die modellbasierte und ISO-26262-konforme Softwareentwicklung trägt wesentlich zur funktionalen Sicherheit des Fahrsystems bei. Mathworks

Beim automatisierten Fahren beschäftigen sich die Entwickler häufig mit Systemen und Funktionen, die nach ISO 26262 die Anforderungen von ASIL D erfüllen müssen. Je höher der Grad der Automatisierung, desto größer werden die Anforderungen an die funktionale Sicherheit. Mathworks unterstützt die Entwickler von sicherheitsrelevanten Applikationen durch einen vorqualifizierten Workflow zur modellbasierten Entwicklung von Funktionen, die man für die Implementierung auf dem Steuergerät anschließend mihilfe von Embedded Coder automatisiert in C-Code übersetzt.

Der Workflow deckt zum einen die Design-Phase ab, in der man das Modell der Software entwickelt und testet. Bereits in dieser Phase erfolgt über den funktionalen Test hinaus die Überprüfung des Modells sowohl auf strukturelle Korrektheit mittels einer modellbasierten Coverage-Analyse als auch durch weitere statische Analysen auf mögliche spätere Laufzeitfehler, zum Beispiel eine Division durch Null. Nach erschöpfendem Testen des Modells geht man zur eigentlichen Code-Generierung über, an welche sich dann die Code-Verifikations-Phase anschließt, die dazu dient, den Code noch einmal abzusichern und die Äquivalenz zwischen generiertem Code und Modell zu verifizieren.