Paper for Download - FKFS
Paper for Download - FKFS
Paper for Download - FKFS
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Datenbankgestützte Szenario-Generierung<br />
für das Testen aktiver kamerabasierter Fahrerassistenzsysteme<br />
Florian Schmidt, Nico Hartmann<br />
electronics solutions<br />
MBtech Group GmbH & Co. KGaA<br />
Wegenerstr. 5/1<br />
71063 Sindelfingen<br />
florian.schmidt@mbtech-group.com<br />
nico.hartmann@mbtech-group.com<br />
Abstract: Die Zunahme (teil-) autonom agierender und damit besonders<br />
sicherheitskritischer Fahrerassistenzsysteme (FAS) stellt hohe An<strong>for</strong>derungen<br />
an die funktionale Absicherung. Aktive kamerabasierte FAS<br />
können durch „Visual Loop“-Testsysteme bereits in frühen Entwicklungsphasen<br />
in einem Closed-Loop-Verfahren verifiziert und validiert<br />
werden. Um die er<strong>for</strong>derliche Vielzahl der möglichen Testfälle abdecken<br />
zu können, müssen Test-Szenarien automatisch generiert werden. Dies<br />
geschieht durch parametrierte Testklassen, die alle Parameter für die fotorealistisch<br />
Darstellung der Fahrzeugumgebung berücksichtigen.<br />
1 Testen aktiver kamerabasierter Fahrerassistenzsysteme<br />
1.1 Automobilelektronik<br />
In Fahrzeugen der Mittel- und Oberklasse sind typischerweise rund 40 bis 60 untereinander<br />
vernetzte Steuergeräte verbaut, die verschiedenste Kom<strong>for</strong>t- und Sicherheitsfunktionen<br />
in Form von Embedded Software beinhalten. Die Komplexität ihrer<br />
Funktionen steigert sich durch wachsende Kundenerwartungen, erhöhte An<strong>for</strong>derungen<br />
z. B. an Sicherheitsstandards, und neue technische Möglichkeiten [Gr05,<br />
Ch09] kontinuierlich.<br />
Die ständige Interaktion der Software mit den anderen Verkehrsteilnehmern und<br />
besonders mit Menschen in ihrer Umgebung legen den benötigten hohen Qualitäts-<br />
und Sicherheitsstandard fest. Dazu kommen vielfältige verschiedene rechtliche<br />
Rahmenbedingungen, die Notwendigkeit einer einfachen Wartbarkeit, das Zusammenspiel<br />
von Hard- und Software sowie vieler Zulieferer für die einzelnen Elektronik-Komponenten<br />
sowie die Notwendigkeit von Ausfallsicherheit und Notlaufkonzepten<br />
selbst im Fehlerfall.
Automotive Software ist also durch hohe Komplexität, kom<strong>for</strong>t- und sicherheitsrelevante<br />
fahrzeugspezifische Funktionen und daraus resultierend höchste An<strong>for</strong>derungen<br />
an die Softwarequalität gekennzeichnet. [Lig02]<br />
1.2 Der Trend zu aktiven kamerabasierten Fahrerassistenzsystemen<br />
Steuergeräte beinhalten Funktionen zur Entlastung des Fahrers, sei es durch In<strong>for</strong>mationen,<br />
Warnungen oder aktive Unterstützung. Aktive Fahrerassistenzsysteme 1<br />
(FAS) unterstützen dabei in zunehmendem Maße durch autonome aktive Eingriffe.<br />
Diese Systeme greifen im Notfall selbständig durch Lenken oder (Not-) Bremsen<br />
direkt in die Längs- oder Querregelung des Fahrzeuges ein.<br />
Die Umfelderfassung durch Sensoren wie Radar, Video oder Ultraschall ist dabei<br />
der übliche Weg, um den Algorithmen In<strong>for</strong>mationen zur Situationsanalyse und -<br />
bewertung zu verschaffen. Die für eine aktive Fahrzeugreaktion verwendeten Aktoren<br />
haben üblicherweise wiederum Einfluss auf die Umwelt und damit auf den<br />
nächsten Sensormesswert, wodurch sich der Regelkreis schließt.<br />
Beispiele für aktuell eingesetzte autonom aktiv eingreifende Systeme auf Basis von<br />
Kamerasensorik sind Spurhalteassistenten, oder der sich noch in der Forschung befindliche<br />
Ausweichassistent 2 , der je nach Beurteilung der Situation beim Erkennen<br />
eines Fußgängers entweder bremst oder ausweicht um eine Kollision zu vermeiden<br />
(Abbildung 1, links Notbremsung, rechts Ausweichen). Volvo bietet für den Stadtbereich<br />
einen kamerabasierten Notbremsassistenten, Volkswagen parkt durch Kamerasensoren<br />
unterstützt automatisch ein.<br />
Die Sicherheit aller Verkehrsteilnehmer ist das höchste Ziel bei der Entwicklung<br />
derart aktiv eingreifender Funktionen. Neben einer sorgfältigen und professionellen<br />
Softwareentwicklung ist daher auch das Testen der Softwarequalität ein wichtiger<br />
Schritt auf dem Weg zum Serieneinsatz eines mit diesen Helfern ausgestatteten<br />
Fahrzeugs.<br />
Abbildung 1: Ausweichassistent (Notbremsung, Ausweichen) [Quelle: Daimer AG].<br />
1 engl. Advanced Driver Assistance Systems, ADAS<br />
2 Im Juni 2009 von Daimler der Presse vorgestellt.
1.3 Funktionale Absicherung durch Hardware-in-the-Loop-Testverfahren<br />
Eine während des Entwicklungsprozesses möglichst frühzeitige Absicherung der<br />
implementierten Funktionen ist wünschenswert. Hardware-in-the-Loop (HiL) Tests<br />
stellen die erste Möglichkeit der Validierung und Verifikation des gesamten Steuergeräts<br />
oder kleinerer Steuergeräteverbünde dar. Dies geschieht im Labor noch bevor<br />
die reale Umgebung des Steuergeräts, also das Fahrzeug, existiert. Das bedeutet, die<br />
gesamte Umwelt auf die das Steuergerät durch seine Ausgänge Einfluss hat und die<br />
darauf rückwirkt, muss simuliert werden 3 . Je exakter diese Simulation ausfällt, desto<br />
realer wirken an den Eingängen die Stimulationen für die im Steuergerät eingebetteten<br />
Funktionen.<br />
Für aktive kamerabasierte Fahrerassistenzsysteme gibt es mehrere Möglichkeiten<br />
der funktionalen Absicherung. Testfahrten mit realen Fahrzeugen durch die reale<br />
Welt, oder das Wiedergeben aufgezeichneter Videos sind zwei herkömmliche und<br />
erfolgreiche Methoden des Testens. Erstere erlauben jedoch nur eine stark eingeschränkte<br />
Reproduzierbarkeit, sind aufwändig und ggfs. gefährlich. Zweitere sind<br />
zwar reproduzierbar, die Rückkopplung der Reaktion eines aktiven FAS findet jedoch<br />
nicht statt. Das gezielte Setzen oder Variieren von Parametern ist in beiden<br />
Fällen kaum möglich. Wird beispielsweise ein FAS-System für eine Baureihe adaptiert,<br />
so müssten alle Videos erneut aufgezeichnet werden, wenn die Kameraposition<br />
im Fahrzeug bzw. relativ zur Straße nur um wenige Zentimeter verändert wird.<br />
1.4 „Visual Loop” (VL)-Testsysteme<br />
Um kamerabasierte Funktionen aktiver Fahrerassistenzsystemen nun in HiL-Tests<br />
funktional abzusichern, muss deren Umwelt simuliert werden um die Kamerasensoren<br />
zu stimulieren. Dies bedeutet, dass Bilder der Fahrzeugumgebung aus dem<br />
Blickwinkel der entsprechenden Kamera(s) erstellt werden müssen. An diese Bilder 4<br />
werden die konträren An<strong>for</strong>derungen nach einer Berechnung in Echtzeit sowie nach<br />
höchstem Realismus der Darstellungen gestellt.<br />
Als Lösung stehen die „Visual Loop“ (VL) Testsysteme zur Verfügung, um durch<br />
moderne Grafiksimulationen größtmöglichen Realismus bei geringstmöglichem Rechenaufwand<br />
zu bieten [SS09]. „Visual Loop“ steht dabei für die visuelle Regelschleife<br />
zwischen 3D-Grafik und Kamerasystem (vgl. Abbildung 2). Die (simulierte)<br />
Umgebung löst eine aktive Reaktion des Steuergerätes aus, diese wiederum wirkt<br />
auf die Umgebung und damit auf die als nächstes erzeugte Grafik. Typischerweise<br />
werden hoch per<strong>for</strong>mante Grafik-Engines sowie Grafikkarten mit diversen visuellen<br />
Optimierungsverfahren verwendet, um selbst auf PC-Hardware die ge<strong>for</strong>derten<br />
Bilddaten in Echtzeit zu erzeugen. Die Grafik wird entweder über die Anzeige an<br />
einem Monitor und eine davon abfilmende Kamera oder direkt über bekannte Videoschnittstellen<br />
in das FAS-Steuergerät eingespeist.<br />
3 3<br />
Um den Regelkreis zu schließen ist meist die Umweltsimulation in Echtzeit nötig.<br />
4<br />
Bei aktuellen Systemen fallen typischerweise 25 Bilder mit je rund 1 Megapixeln pro Sekunde zur Berechnung an, in einigen<br />
Fällen auch deutlich mehr.
Steuergerät<br />
Aktives FAS<br />
Aktor<br />
Kamera<br />
Umgebungssimulation<br />
3D-Grafik<br />
Abbildung 2: Prinzip der „Visual Loop” (VL) Testsysteme.<br />
1.5 Heraus<strong>for</strong>derungen: Vielzahl der Testsituationen<br />
Durch VL-Testsysteme können Testfälle unter Laborbedingungen frühzeitig im<br />
Entwicklungszyklus getestet werden. Dabei ergeben sich zwei Heraus<strong>for</strong>derungen:<br />
• Zum einen können in VL-Systemen extrem viele Parameter beeinflusst werden.<br />
Von der Position jedes einzelnen Objektes (wie bspw. Bäume, Häuser,<br />
Verkehrsteilnehmer) über Wetterbedingungen (Tageszeit, Niederschlag) bis zu<br />
einzelnen Eigenschaften wie Farbnuancen oder Geschwindigkeiten können beliebig<br />
viele Details beliebig fein aufgelöst eingestellt werden. Aus dieser Fülle<br />
an möglichen einzelnen Testfällen müssen die in der vorhandenen Zeit durchführbaren<br />
nach gegebenen Kriterien sinnvoll ausgewählt werden.<br />
• Zum anderen müssen die Testfälle üblicherweise manuell in für das jeweilige<br />
VL-System spezifischen Editoren erstellt werden, was einen immensen Aufwand<br />
bedeutet. Neben der Wiederverwendbarkeit und Durchgängigkeit der<br />
Testfälle (was durch etablierte und offene Schnittstellen<strong>for</strong>mate ermöglicht<br />
wird) muss also die Erstellung automatisiert werden.<br />
Dies lässt eine automatische Szenario-Generierung wünschenswert erscheinen.<br />
2 Automatische Szenario-Generierung<br />
In Abschnitt 2.1 werden die Elemente von Testfällen aus parametrierten Testklassen<br />
für kamerabasierter FAS vorgestellt. Darauf folgt das Vorgehen der Testplanung<br />
(2.2), die Szenario-Kombination (2.3) sowie die Szenario-Generierung (2.4).<br />
Testplanung<br />
Parametrierbare<br />
Testklassen<br />
Testszenario-<br />
Generierung<br />
Testfall am<br />
VL-System<br />
Abbildung 3: Überblick zur Anwendung eines VL-Systems.
In Abbildung 3 ist dies im Überblick dargestellt. Der gestrichelte Pfeil zeigt das ursprüngliche<br />
Vorgehen an, manuell erstellte Testfälle direkt am VL-System umzusetzen.<br />
Die durchgehenden Pfeile zeigen die durch die in Abschnitt 1.5 gezeigten Heraus<strong>for</strong>derungen<br />
motivierte automatisierbare Vorgehensweise.<br />
2.1 Elemente von VL-Tests: parametrierbare Testklassen<br />
Testfälle für umfelderfassende Systeme enthalten allgemein die folgenden 5 Kategorien<br />
von Objekten, zusammengefasst zur „T-E-S-T-E“-Testfalldefinition:<br />
• T – Test-relevant: spezielle Objekte, z.B. Verkehrszeichen / Fußgänger<br />
• E – Environment: die Umwelt, das Wettersystem<br />
• S – Surrounding: Umgebung, Straßenrand<br />
• T – Track: die Straße<br />
• E – Ego-Vehicle: Fahrzeug mit Blickwinkel der Kamera<br />
Leere, d.h. unparametrierte „Testfall-Rahmen“ werden als „Testklassen“ bezeichnet.<br />
Diese können auch bereits teilweise mit Parametern vorgefüllt werden, um dem<br />
Anwender später die Erstellung von Testfällen mit Standard-Inhalten zu erleichtern.<br />
2.2 Testplanung: Parametrierte Testklasse = Testfall<br />
Eine Testklasse kann z. B. durch die Parametrierung mit den In<strong>for</strong>mationen „T =<br />
Fahrradfahrer, E = Nacht, S = Stadt, T = Nebenstraße, E = 30 km/h“ 5 als Testfall<br />
erstellt werden.<br />
Nun können Testfälle manuell geplant, erstellt und später umgesetzt werden. Eine<br />
effektivere Möglichkeit stellt jedoch die bereits automatisiert erfolgende Testplanung<br />
dar. Dazu wurde als Grundlage eine Datenbank konzipiert, die das o. g. T-E-S-<br />
T-E-Gerüst für beliebig viele Objekte umsetzen kann. Das bedeutet, dass die entsprechende<br />
Datenstruktur für Testfälle, ebenso wie die hierarchische Struktur aller<br />
möglichen Parameter in einer erweiterbaren Datenbank angelegt wurde.<br />
Ein Schwerpunkt lag hier auf der Erweiterbarkeit, da es später jederzeit möglich sein<br />
muss, nicht nur z. B. einzelne Objekte, sondern auch komplett neue Umgebungen,<br />
Wetterbedingungen, Straßeneigenschaften und Kameraparameter anzugeben. Wo<br />
bisher bspw. die Umgebungstypen „Stadt“, „Dorf“, „Wald“ und „Wiese“ implementiert<br />
wurden, wird langfristig „Küste“, „Gebirge“ etc. hinzu gefügt.<br />
5 Dieses Beispiel ist stark vereinfacht, die Parameter der fünf Kategorien sind hierarchisch aufgebaut und detaillierter.
Die hierarchische Testfalldefinition erlaubt eine schnelle Angabe der Testfalldetails,<br />
je nach Bedarf kann der Tester aber auch gezieltere Vorgaben zu relevanten Parametern<br />
machen. Die exakte Angabe der Ausrichtung einer Laterne innerhalb der Stadt<br />
mag z. B. für einzelne Testfälle wichtig sein. Meist möchte man diese In<strong>for</strong>mationen<br />
aber nicht für jedes Objekt angeben müssen, dann reicht die darüber liegende In<strong>for</strong>mation<br />
aus um automatisch Standardwerte zu erhalten.<br />
Ebenfalls Bestandteil aller Parameterwerte ist die Angabe ihrer Häufigkeit und<br />
Wichtigkeit. Die Häufigkeit gibt dabei das Vorhandensein in der realen Welt 6 an, die<br />
Wichtigkeit gibt eine Einschätzung 7 der Relevanz des Parameterwerts für die geplanten<br />
Testsituationen an.<br />
Durch Methoden der Versuchsplanung (engl.: Design of Experiments, DoE) folgte<br />
daraufhin eine auf die Situation angepasste Testplanung. Sie verwendet eine aus<br />
Häufigkeit und Wichtigkeit errechnete Priorität, sowie ggfs. je nach Test-Aufgabe<br />
vorgegebene feste Parameterwerte um daraus die wichtigsten Testfälle zu generieren.<br />
Mit der Möglichkeit, die Gesamtzahl der gewünschten Testfälle anzugeben,<br />
sowie einem (Pseudo-) Zufallsgenerator zum Erhöhen der Testfallvarianz, ergibt<br />
sich somit die für die jeweilige Teststrategie optimale Auswahl an Testfällen aus der<br />
geradezu unendlichen Menge der theoretischen Möglichkeiten.<br />
2.3 Kombinationsalgorithmik: Testfälle in Reihenfolge = Test-Szenario<br />
Für die Umsetzung der in der Datenbank nur abstrakt vorliegenden Testfälle, müssen<br />
diese in Form eines Szenarios angeordnet werden. Als Szenario wird die in VL-<br />
Systemen üblicherweise rechteckige Terrain-Grundplatte bezeichnet, auf der später<br />
alle 3D-Objekte dargestellt werden.<br />
Um den zeitlichen Overhead durch das Laden vieler kleiner Szenarien zu minimieren<br />
werden mehrere Testfälle in einem Test-Szenario angeordnet. Dabei ist es wichtig,<br />
eine durchgängige Abfolge der Testfälle und damit eine durchgängige Fahrt des<br />
Ego-Fahrzeug durch das Test-Szenario zu erreichen. Diese An<strong>for</strong>derung ergibt sich<br />
aus dem Wunsch, die Initialisierungs-Overheads des Testsystems und des Systemunder-Test<br />
(also das Steuergerät des FAS) zu minimieren. Zusätzlich ergibt sich<br />
dadurch der Vorteil, auch die Strecke „zwischen“ den Testfällen, sowie insgesamt<br />
längere Streckenverläufe mitzutesten. Eine Voraussetzung für das Erreichen dieser<br />
Durchgängigkeit ist es, dass sich die verschiedenen Parameter möglichst selten verändern<br />
8 . Durch eine Gewichtung der Parameter und ihrer Unterschiede lässt sich<br />
erreichen, dass (je nach Konfiguration) z.B. der Straßentyp seltener gewechselt wird<br />
als die Umgebung der Straße, um damit den Eindruck einer realistischeren Fahrt<br />
durch das Test-Szenario zu erzeugen. Ein Kombinationsalgorithmus geht nach diesen<br />
Vorgaben durch die in der Datenbank abgelegten Testfälle und sortiert sie neu.<br />
6 je nach geographischer Region ggfs. unterschiedlich<br />
7 Entweder aus Expertenwissen, oder z. Β. abgeleitet von Verkehrs- und Unfallstatistiken<br />
8 Mathematisch lässt sich dies durch die Minimierung der L1-Norm der Pfadlänge durch einen n-dimensionalen Raum vergleichen.<br />
n steht dabei für die Anzahl Parameter auf der obersten Hierarchieebene.
2.4 Automatische Test-Szenario-Generierung zur Umsetzung am VL-<br />
Testsystem<br />
Nachdem die durch die Methoden der Versuchsplanung erzeugten und mit Hilfe des<br />
Kombinationsalgorithmus in ihrer Reihenfolge optimierten Testfälle immer noch als<br />
abstrakte Parametersätze in der Datenbank vorliegen, ist es wünschenswert sie auch<br />
automatisch auf der Szenario-Grundplatte zu erzeugen. Dies ist üblicherweise bei<br />
VL-Systemen ein sehr aufwändiger manueller Prozess, in dem jedes 3D-Objekt einzeln<br />
positioniert werden muss.<br />
Um die Testfälle möglichst effizient in dem Szenario zu platzieren und ihre Reihenfolge<br />
beizubehalten, wurden verschiedene Ansätze untersucht. Die Platzierung innerhalb<br />
realer Straßennetze 9 ergab keine günstige Ausnutzung des (durch technische<br />
Randbedingungen beschränkten) Platzes innerhalb eines Szenarios (Abbildung 4<br />
links). Ebenso erschien der Ansatz, die Testfälle auf Kacheln der Reihe nach im Szenario<br />
zu platzieren als unbefriedigend, da der Aufwand der Berechnung und des Abfangens<br />
von Problemen (wie Sackgassen) immens ist (Abbildung 4 Mitte).<br />
Abbildung 4: Möglichkeiten der Anordnung von Testfällen in Test-Szenarien.<br />
Realisiert wurde eine Lösung, die Testfall-Kacheln in einem Schachbrettmuster im<br />
Szenario anordnet (Abbildung 4 rechts). Dabei hat jede Kachel einen definierten<br />
Eingangs- und Ausgangspunkt, so dass ein durchgängiger Straßenverlauf unabhängig<br />
vom Kachelinhalt gewährleistet ist. Innerhalb der Kacheln befindet sich die erzeugte<br />
Testfallstraße (grau hinterlegt rechts in Abbildung 4) und eine als „Aorta“<br />
bezeichnete Ringstraße, um wieder zum Ausgang der Kachel zu gelangen.<br />
Am Rand der Straße wird ein durch den Straßenverlauf vorgegebenes Gebiet mit der<br />
in der Datenbank zu dem jeweiligen Testfall hinterlegten Umgebung versehen,<br />
bspw. wird für einen Wald der Boden des Terrains entspr. texturiert und es werden<br />
typische 3D-Objekte eines Waldes wie Bäume und Sträucher platziert.<br />
Die In<strong>for</strong>mationen aller Testfälle zu Straße, Terrain, Umgebung und Wetter werden<br />
durch ein Software-Werkzeug in einem für das VL-System verständlichen Szenario-<br />
Format (z. B. in XML) abgespeichert und können damit entweder manuell nachbearbeitet<br />
oder direkt im automatischen Testbetrieb kamerabasierter Fahrerassistenzsysteme<br />
produktiv eingesetzt werden.<br />
9 Die man bspw. aus Straßendaten der „Open Street Map“ Datenbank erzeugen kann
3 Zusammenfassung, Ergebnisse und Ausblick<br />
Es wurde gezeigt, dass für die frühzeitige Absicherung aktiver kamerabasierter Fahrerassistenzsysteme<br />
die VL-Testsysteme eine wichtige Säule darstellen. Um Testfälle<br />
dafür effektiv und effizient zu erstellen, ist eine automatische Auswahl von Testfällen<br />
durch die Parametrierung von Testklassen innerhalb einer Datenbank empfehlenswert.<br />
Diese Testfälle können dann durch einen Kombinationsalgorithmus in eine<br />
durchgängige Reihenfolge gebracht und automatisch als Test-Szenario abgespeichert<br />
werden, wodurch das automatisierte Testen erheblich beschleunigt werden kann.<br />
Erste Ergebnisse (vgl. Abbildung 5) zeigen, dass die gesamte Generierung eines<br />
kompletten Test-Szenarios mit vielen tausend Objekten in mehreren Testfällen durch<br />
die Anwendung von Werkzeugen der in diesem Beitrag beschriebenen Methoden<br />
nur noch einen Aufwand von wenigen Sekunden verursacht.<br />
Die nächsten Schritte liegen u. a. in der Vervollständigung der Datenbank, sowie in<br />
der Übernahme bisher existierender Testfallkataloge.<br />
Abbildung 5: Beispiel eines automatisch erstellten Testfalls mit Wald.<br />
4 Literaturverzeichnis<br />
[Ch09] Charette, R.: This Car Runs on Code. IEEE Spectrum Online,<br />
http://www.spectrum.ieee.org, Feb. 2009.<br />
[Gr05] Grimm, K.: Software-Technologie im Automobil. In (Liggesmeyer, P.;<br />
Rombach, D., Hrsg.): Software Engineering eingebetteter Systeme.<br />
Spektrum Akademischer Verlag, Heidelberg, Berlin, 2005.<br />
[Lig02] Liggesmeyer, P.: Software-Qualität. Spektrum Akademischer Verlag,<br />
Heidelberg, Berlin, 2002.<br />
[SS09] Schmidt, F; Sax, E.: Funktionaler Softwaretest für aktive Fahrerassistenzsysteme<br />
mittels parametrierter Szenario-Simulation. Jahrestagung der<br />
Gesellschaft für In<strong>for</strong>matik 2009, Lübeck, September 2009.