Autonomes Fahren
The Next Big Thing in Software Engineering and Quality?
von Alexander Vukovic
https://www.suraaa.at/presse/
Die Zukunft ist rosig, wir müssen nicht mehr selbst Fahrzeuge lenken und durch die Welt pilotieren, sondern der Wagen macht das für uns. Einsteigen, schlafen, arbeiten, lesen, entspannen oder einfach nur die Landschaft genießen. So verheißungsvoll wird die Zukunft skizziert. Ermöglichen soll dies das autonome Fahren, also die Steuerung des Fahrzeugs durch ein Konglomerat von unzähligen Sensoren, Steuerungssoftware und vor allem von künstlicher Intelligenz.
Aktuell stocken Entwicklung und Verbreitung des autonomen Fahrens allerdings. Das hat mehrere Gründe:
Autonomes Fahren mit Level 3 und höher (also ohne menschliche Überwachung) wird sich noch sehr lange nicht massentauglich durchsetzen. Probleme liegen dabei z.B. in ethischen Fragen, wie z.B. der Autopilot entscheiden soll, wenn er zwischen dem Leben der Insassen und dem Leben einer Person auf der Fahrbahn wählen muss.
- Die rechtlichen Rahmenbedingungen für Level 3 und höher fehlen noch immer
- Das Problem ist aber natürlich auch die Abbildung der Realität in der Steuerungssoftware bzw. im Falle der Künstlichen Intelligenz dahinter im Erfahrungsdatenschatz, den die KI durch Training erlangt hat. Bisher fahren in einigen amerikanischen Städten die großen Player wie Waymo, Google oder auch in Europa mehrere Pilotprojekte wie z. B. SURAAA in Pörtschach (https://www.suraaa.at). Waymo dürfte unterschiedlichen Quellen zufolge mit rund 30 Millionen Testkilometer über die größte Datenbasis verfügen.
- Auch die Zulassungsbehörden haben das Problem, dass sie nicht wissen, wie sie autonome Funktionen als betriebssicher prüfen und zulassen sollen. So ist Audi z. B. seit 2017 bereit eine Level 3 Steuerung für die Autobahn anzubieten, konnte diese jedoch nicht an die Kunden ausliefern, da in die Behörden nicht wussten, wie sie diese Funktion ausreichen definieren und testen konnten.
Die Hersteller begannen daraufhin, die Behörden zu unterstützen und diese Tests gemeinsam mit den Herstellern zu definieren bzw. „von diesen diese zu übernehmen“. So titelt beispielsweise die Zeitschrift Auto Motor und Sport in einem Artikel über autonomes Fahren in der aktuellen Ausgabe („Jetzt erklären die Hersteller den Genehmigungsbehörden, worauf sie beim Genehmigen achten müssen“).
Insgesamt also ein schwieriges Umfeld, dass sich im Moment genau auf die Frage des Testens fokussiert und daran scheitert. So gesehen könnte man postulieren, dass das Engineering und Testen einer KI-basierten Steuerung the next possible big thing ist, aktuell ist es aber eher das next impossible thing.
Wo liegen die größten Probleme beim Entwickeln und Testen von Steuerungssoftware, die auf Erfahrungsdaten basiert?
Es ist unmöglich die Realität vollständig in Daten abzubilden. Natürlich kann man die Navigationsdaten um Spurinformationen anreichern und in Echtzeit aktualisieren, so dass beispielsweise die Spurverengung in einer Nebenstraße, entstanden durch einen temporären Baukran, der aus einer Baustelle heraussteht, auch in der Karte für andere Fahrzeuge verfügbar ist. Das würde voraussetzen, dass alle Hersteller diese Informationen sharen und eben in Echtzeit an alle Fahrzeuge verteilen, oder über die Cloud zur Verfügung stellen. Alternativ könnte die Software auch Ähnlichkeiten mit anderen Situationen suchen und dann entscheiden, sich so ähnlich zu verhalten wie in einer ähnlichen Situation und z.B. langsam am Hindernis vorbeizufahren.
Dafür muss die Software „lernen“ mit Situationen umzugehen, d.h. sie wird in diese Situation gebracht und darauf basierend die Entscheidung hinterlegt, wie die Steuerung verfahren soll. Und jetzt kommt die entscheidende Frage: wie kann diese hinterlegte Situation nun getestet werden? Mit exakt der gleichen Sensorinformation wie beim Lernen der Situation? Mit geänderten Sensorinformationen? Wäre das aber dann nicht schon eine neue Situation, die die Steuerung erst lernen muss? Woher stammt die Entscheidung für den Test, ob die Software lernen oder selbst entscheiden sollte? Wie können diese Test-
szenarios ohne überbordende Datenmengen an Beispielsensordaten vorzuhalten, beschrieben werden?
Mit herkömmlichen Verfahren ist diese Mammutaufgabe nicht zu bewältigen. Die einzige Chance ist also grundsätzlich lernende und entscheidungsfähige Steuerungen zu entwickeln, die mittels Training on the Job lernen mit möglichst vielen Situationen umzugehen. Ist es der Felssturz in den Alpen, Aquaplaning bei Starkregen, das Kind, das plötzlich hervorläuft, fehlende oder falsche Verkehrszeichen, drängelnde menschliche Autofahrer, eine Reifenpanne oder eine Winterauffahrt mit Eisfahrbahn.
Lernen und Training impliziert Fehler. Die Steuerungen müssen also in Fehlersituationen kommen, um daraus zu lernen. Das kann nur in „Produktion“ erfolgen. Die Frage ist, wie schwer dürfen diese Fehler sein und was kostet dies die Benutzer die als Trainer bzw. Versuchskaninchen in einer komplexen Welt dienen. Mein aktueller Wagen bietet Level 2 autonomes Fahren. An gewissen Stellen/Situationen erkennt die Steuerung das voraus an der Ampel stehende Fahrzeug nicht und behält die Geschwindigkeit bei. Ein Vertrauensverlust ist die Folge, da passiert sichtlich ein Fehler. Aber aktuell gibt es keinerlei Möglichkeit als interessierter Nutzer Feedback an die Hersteller zu geben. Die Fahrzeuge lernen selbst nicht und die Feedbackschleife zum Hersteller existiert in diesem konkreten Fall nicht.
Waymo hat seine Robotaxis teilweise unbemannt in Phönix fahren lassen, die Einwohner haben sich durch die Fahrzeuge gefährdet und bedroht gefühlt. Viele der Fahrzeuge wurden attackiert, besprüht und verunstaltet. Die Nachfrage mit diesen Taxis zu fahren ging massiv zurück, obwohl es nur sehr wenig Unfälle gab, weil Phönix ein sehr einheitliches Straßennetz hat. Deshalb ist Waymo wieder dazu übergegangen die Versuchsfahrzeuge mit Überwachungsfahrern auszustatten, die primär die Aufgabe haben, Fragen zu beantworten und das System im Ernstfall zu überschreiben.
Zusammengefasst ist das autonome Fahren eine mit herkömmlichen testmethodischen Ansätzen nahezu unlösbare Problemstellung. Aus dieser werden sich zukünftige neue Spezialisierungen im Softwaretest herausbilden. Spezialisierungen für KI-Testing, automatisierter Szenarioentwicklung und der automatischen Erkennung und Ableitung von Szenarios aus anderen Datenquellen, wie z.B. den Messwerten aus Unfallfahrzeugen. Die Testmethoden für das autonome Fahren entwickeln sich erst, diese Methodenentwicklung ist eines der next big things in Software Engineering and Quality.