Selbstfahrende Autos selbst programmiert

Wie schwer ist es eigentlich ein fahrerloses Auto zu programmieren? Will man dem deutschen Spezialisten für Roboter und Künstliche Intelligenz Sebastian Thrun Glauben schenken, eigentlich gar nicht so sehr. Sebastian Thrun, der die DARPA Grand Challenge 2005 – einem Wettbewerb für fahrerlose Fahrzeuge – mit dem Fahrzeug Stanley gewann und anschließend für Google die Self-driving Car Gruppe aufbaute und leitete, hat bereits im Jahr 2011 einen Einführungskurs für Künstliche Intelligenz für Roboter mit dem Schwerpunkt auf selbstfahrende Fahzeuge online veröffentlicht. Der Gratiskurs geht in sechs Unterrichtseinheiten auf die Mathematik und den Softwarecode ein, der einem selbstfahrenden Fahrzeug zugrunde liegt.

Und die Grundlagen sind überraschend einfach, zumindest wenn man ein bisschen mit Programmierung vertraut ist und Oberstufenmathematik durchgemacht hat. Was hilft ist, dass Sebastian Thrun den Kurs auch sehr anschaulich aufgebaut hat. In den insgesamt sechs Unterrichtseinheiten wird auf die folgenden Fragestellungen eingegangen:

Fragestellungen

Wo bin ich? Die fundamentale Frage die sich ein Vehikel stellen muss ist wo es sich denn überhaupt befindet. Natürlich hilft das Global Positioning System (GPS) dabei den Punkt auf der Erde festzustellen auf dem es sich befindet, aber die Genauigkeit liegt nur zwischen zwei bis zehn Metern, was für eine Fahrt auf Straßen zu ungenau ist. Dort benötigt man eine Genauigkeit von weniger als zehn Zentimetern. Deshalb muss das Fahrzeug anhand von Merkmalen in der Umgebung erkennen, wo es sich befindet oder befinden könnte.

Wohin bin ich gefahren? Wenn das Fahrzeug sich bewegt hat, muss es den Ausgangspunkt mit dem neuen Aufenthaltsort abgleichen, um sich neu zu orientieren. Auch hier wieder verwendet es verschiedene Anhaltspunkte die vom GPS und den Merkmalen drumherum kommen.

Die nächste große Fragestellung für das Auto ist: Welche anderen Objekte befinden sich um mich? Man will ja schließlich nicht hineinfahren. Wenn es solche Objekte gibt dann ist die nächste Frage: Was sind diese anderen Objekte? Diese Frage zielt darauf ab herauszufinden, welche sich davon bewegen, und welche statisch sind. Sind das andere Autos, Radfahrer, Fußgänger oder Schilder, geparkte Autos oder sonstige Hindernisse denen es auszuweichen gilt?

Bei den nicht-statischen Objekten will das Auto wissen: Wie schnell sind sie unterwegs? und Wohin fahren sie? Das bereitet das Auto auf die eigene Routenplanung vor. Und hier wird der Kurs so richtig interessant. Wenn ich von einem Ausgangspunkt starte und ein Endziel habe, dann muss das Fahrzeug einen passenden Weg finden. Dabei können aber gewisse Manöver wie beispielsweise das Linksabbiegen als zu langwierig gekennzeichnet werden. Solche Art von Routenplanung wird tatsächlich in den USA von den UPS oder Fedex eingesetzt, weil das Warten bis ein Lieferwagen links abbiegen kann länger dauert, als einmal mit Rechtsabbiegemanövern um den Block zu fahren.

Die Fragestellung um das Ziel zu finden lässt sich als in zwei Teile zerlegen: Wie komme ich zum Ziel? und Wie komme ich am schnellsten zum Ziel? Der Kurs zeigt ein anschauliches Beispiel für solch einen Fall, wo ein Spurwechsel im Programm testweise als zu aufwendig markiert wurde und zeigt welches Manöver das Auto stattdessen ausführt.

Bis zu dieser Lektion wurden die Pfade als diskret betrachtet, was nichts anderes bedeutet als wie man beispielsweise eine Figur auf dem Schachbrett führt. Von einem Feld aufs nächste in einer linearen, direkten Weise. In der wirklichen Welt aber fahren Autos Kurven, und deshalb kommen hier die Fragen Wie fahre ich eine glatte weiche Kurve? und Wie kontrolliere ich das Fahrzeug? zum Zug.

Ist man soweit hat man laut Sebastian genau die Grundlagen und den Softwarecode vorliegen, den Stanley hatte um die DARPA Grand Challenge 2005 zu gewinnen. Und die mathematischen Formeln umfassen dabei Wahrscheinlichkeitsrechnung, Normalverteilungen, Satz von Bayes, Kalman-Filter, Matrizen und Korrekturberechnungen. Zusammen werden sie zu etwas ausgesprochen Mächtigem. In einem TED-Talk vom aktuellen Leiter des Google X Self-driving Car Programms Chris Urmson sieht man dann sehr gut, wie all das zusammen kommt und wie ein Auto die Umgebung wahrnimmt und darauf reagiert.

Es kommt deshalb auch nicht überraschend, dass Hobbyprojekte für selbstfahrende Fahrzeuge ziemlich rasch voranschreiten. Erst vor wenigen Tagen berichtete Bloomberg über George Hotz, der in seiner Garage in San Francisco einen Acura hackte, an seinen Computer anschloß und erste Testfahrten damit unternahm.

Reicht das?

Für den massentauglichen Einsatz von selbstfahrenden Fahrzeugen reichen diese Grundlagen nicht aus. Zuviele Fahrsituationen gibt es, die das Auto erst lernen muss. Chris Urmson erwähnt in seinem TED-Talk die Rentnerin die in ihrem elektrischen Rollstuhl über die Straße fuhr und einer Entenfamilie hinterher jagte. Auch hilft die Kombination mit guten Straßenkarten die Orientierung viel besser. Deshalb versteht man, warum die deutschen Autobauer sich zusammen schlossen, um Nokia deren Map-Solution HERE um zweieinhalb Milliarden Euro abzukaufen. Google verwendet wiederum eine Menge an Rechenpower um tausende Bilder von Menschen mit wahrgenommenen Umrissen zu vergleichen.

Genau deshalb müssen selbstfahrende Fahrzeuge sich langwierige Tests unterziehen und viele Praxisfahrten unternehmen, damit sie einer möglichst großen Anzahl an Verkehrssituationen, Straßen- und Wetterbedingungen ausgesetzt werden und sie somit erfahren. Wie komplex das sein kann zeigt dieses Video, das ich aufnahm, als ich mit Andreas Wendel (den ich in meinem Buch auch porträtiert habe) die Straße kreuzte und seine Kollegen von Google X in einem MiniPod (Google’s neuester Variante eines selbstfahrenden Fahrzeugs, das ohne Lenkrad auskommt) vorbei kamen und er den Arm hob um ihnen zuzuwinken. Auf dem Video ist klar zu erkennen, wie das Auto kurzzeitig abbremst. Es hatte Andreas Handsignal als das eines Polizisten interpretiert, der ein Signal gab. Sieh selbst im folgenden Video.

Aber genau da kommen wir in den Bereich wo es so richtig spannend wird. Sobald diese Hürden überkommen sind, kann solch eine Lösung sehr schnell allen zugänglich gemacht werden und jede weitere Fahrsituation in die ein solcher Art ausgestattetes Fahrzeug kommt, kann schnell allen anderen mitgeteilt werden. Die Lernkurve ist enorm.

Auf den Geschmack gekommen? Dann gehe doch den Kurs von Sebastian Thrun durch, ich kann ihn nur wärmstens ans Herzen legen.

2 Gedanken zu “Selbstfahrende Autos selbst programmiert

Kommentar verfassen