Dürfen wir vorstellen: Carla. Und unser Einstiegs-Programm für autonomes Fahren!

David Silver
Sep 19, 2017

Man sagt, es brauche ein ganzes Dorf, um ein Kind großzuziehen.

Das gilt auch für Carla, unser autonomes Auto bei Udacity. Wir sind sehr stolz auf Carla. Neulich ist sie allein von Mountain View nach San Francisco gefahren, nachdem sie wochenlang nur auf unsere Teststrecke durfte.

Das Aufregendste an Carla aber ist, dass sie für alle da ist: Jeder Lernende unserer Nanodegree-Programme trägt ein bisschen zu ihrer Entwicklung bei. Um diese Möglichkeiten breiter einzuräumen, gibt es nun einen Einführungskurs: das Intro to Self-Driving Cars Nanodegree-Programm!

In vier Monaten erhaltet ihr einen kompakten Einstieg in unsere selbstfahrende Zukunft. Ihr lernt, was Entwicklerinnen und Entwickler in dieser Branche machen, welchen Problemen sie gegenüberstehen, wie man sie mit Python und C++ löst und seine selbstfahrende Karriere auf die Straße bringt. Es ist eine Einführung im doppelten Sinne: Der Abschluss ist euer Ticket für das Self-Driving Car Engineer Programm, für das normalerweise eine Bewerbungsphase durchlaufen werden muss.

Es wird so viel über selbstfahrende Fahrzeuge und die dahinterstehende Technologie gesprochen und gefachsimpelt, das ich es gern so einfach wie möglich halten würde. Technologisch lässt sich Carla, unser selbstfahrendes Auto, in vier Subsysteme einteilen: Sensorik, Wahrnehmung, Planung und Kontrolle.

Vorgestellt: Carla, das selbstfahrende Auto von Udacity
"Carla in a nutshell": die vier Subsysteme


Sensorik

Carlas sensorisches System umfasst die physische Hardware, die Daten über ihre Umwelt sammelt. Carla hat etwa Kameras, die im oberen Teil der Windschutzscheibe montiert sind: Normalerweise zwischen einer oder drei Kameras in einer Reihe, das kommt ganz darauf an, welche Erkenntnisse wir gerade brauchen und welche Strecken wir testen.

Vorgestellt: Carla, das selbstfahrende Auto von Udacity
Windscheibenkamera


Zudem verfügt Carla über einen einzelnen Front-Radar, das in die Stoßstange eingelassen ist, und einen 360-Grad-Lidar auf dem Dach. Ein Lidar misst die Geschwindigkeit und den Abstand zu anderen Gegenständen und Verkehrsteilnehmern mit einem Laser.

Vorgestellt: Carla, das selbstfahrende Auto von Udacity
Links ein Lidar; rechts: die Messdarstellung seiner Umwelt


In Einzelfällen greift Carla auf andere Sensoren wie GPS, IMU und Ultraschall zu. Die so sensorisch vermessenen und gespeicherten Daten fließen in diverse Komponenten des Wahrnehmungsapparats ein.


Wahrnehmung

Carlas Wahrnehmungssystem schultert eine der wichtigen Aufgaben: die rohen Sensordaten in sinnhafte und weiterverwertbare Informationen über ihre Umwelt(en) zu übersetzen. Die Komponenten dieses Apparats teilen sich in zwei Gruppen: Erkennung und Verortung (Localization).

Die Erkennungsinstrumente nutzen Sensorinformationen, um Objekte jenseits des Vehikels festzustellen. Dazu zählen auch die Erkennung von Freiraum, von Straßenspuren und anderen Verkehrssymbolen und natürlich von Ampelsignalen, die nicht nur erkannt sondern auch klassifiziert werden müssen, damit Carla verkehrstauglich fährt.

Vorgestellt: Carla, das selbstfahrende Auto von Udacity
So sieht Carla ihre Umwelt


Die Lokalisierungsinstrumente definieren, wo sich das Fahrzeug in der Welt befindet. Das klingt logisch, vor allem aber einfacher, als es ist: GPS wäre eine simple Lösung, misst aber präzise, wenn es nicht auf ein oder zwei Meter ankommt. Wie man sich vorstellen kann, sind zwei Meter Abweichung im Verkehr unannehmbar groß, weil im Zweifel lebensgefährlich. Ein Auto, das denkt, es befinde sich in der Mitte einer Fahrbahn, dabei aber zwei Meter daneben – im Zweifel also auf dem Gehweg fährt, würden kein Labor oder Amt je auf die Straße lassen. Zurecht. Wir brauchen also eine präzisere Methode als GPS.

Wir lokalisieren Carla derzeit mit maximal zehn Zentimetern Abweichung. Dafür haben wir eine Kombination aus hochauflösenden Karten, Carlas eingebautem Lidarsensor und ausgeklügelten Algorithmen installiert: Der Lidar sucht die Umwelt ab (Scan), vergleicht diese Beobachtungen mit den High-End-Karten und erschließt daraus die Position.

Vorgestellt: Carla, das selbstfahrende Auto von Udacity
Carla im Positionsabgleich mit Umwelt und Kartenmaterial


Der Output dieser Komponenten der Wahrnehmung ist wiederum der Input für das Subsystem Planning (Planung).


Planung

Carla arbeitet hier sehr schnörkellos: Der (Routen-)Planer entwirft eine Serie aus Wegpunkten, die sie abfährt. Diese Wegpunkte kann man sich als einfache Punkte auf der Straße vorstellen, über die Carla im Idealfall fährt. Jeder Wegpunkt wird mit einem exakten Ort und einer Zielgeschwindigkeit (zum Zeitpunkt des Passierens) adressiert.


+++ Mehr von Udacity zweiwöchentlich ins Postfach? Hier für den Newsletter anmelden!+++


Carlas Planer nutzt die Daten ihres Wahrnehmungsapparats, um die Bewegungen anderer Objekte (Vehikel, Ampeln, Bäume, etc.) vorherzusagen und ihre Wegpunkte dann entsprechend dieser Hindernisse anzupassen. Ein einfaches Beispiel: Erkennt das Planungssystem, dass das vorausfahrende Fahrzeug langsamer wird, sendet der Planer Carla das Signal, ebenfalls abzubremsen.

Er passt also die Zielgeschwindigkeit einzelner Wegpunkte an. Dieser Fahrverlauf, die berechnete Bahn aus verschiedenen Wegpunkten, ist der letzte Schritt des Planungsprozesses. Die Branche nennt ihn Trajektorie. In unserem Beispiele beschriebe die Trajektorie eine Serie von Wegpunkten mit unveränderten Ortspunkten, aber verminderter Zielgeschwindigkeit: Carla drosselt das Tempo mit jedem Wegpunkt ab.

Vorgestellt: Carla, das selbstfahrende Auto von Udacity
Eine Trajektorie zum Abbremsen


Ähnliche Kalkulationen laufen bei der Verarbeitung von Ampelsignalen oder Verkehrsschildern. Sobald der Planer eine Trajektorie neuer Wegpunkte generiert hat, wird diese Trajektorie an den das finale Subsystem gesendet: die Kontrollinstanz.


Kontrolle

Das Kontrollsystem steuert Carla mit Beschleunigungs-, Brems- und Lenkmanövern direkt an. Manche dieser Signale sind rein elektronisch, andere finden auch physisch Ausdruck. Wenn man mit Carla fährt, sieht man etwa, dass sich das Lenkrad mitbewegt.

Das Kontrollsystem richtet sich nach der Liste der Wegpunkte, die das Planungssystem generiert. Diese Ortspunkte und Zielgeschwindigkeiten spielt es an einen Algorithmus aus, der kalkuliert, wieviel Brems-, Beschleunigungs- und Lenkaufwand nötig ist, um die Trajektorie der Wegpunkte einzuhalten.

Vorgestellt: Carla, das selbstfahrende Auto von Udacity
Die Kontrolleinheit vereinfacht dargestellt


Es gibt eine Vielzahl verschiedener Algorithmen, die das Kontrollsystem nutzen kann, um Wegpunkte in Lenk- und Beschleunigungskommandos umzusetzen. Sie werden naheliegenderweise "Controller" genannt. Carla nutzt einen ziemlich reduzierten PID-Controller (Proportional-Integral-Differential). Man kann auf wesentlich ausgefeiltere Controller zurückgreifen, sie entwickeln sich jeden Tag weiter.

So funktioniert auch Carla. Zum einen so, wie ich es erklärt habe:

  • Die Sensoreinheit sammelt Umgebungsdaten

  • Die Wahrnehmungseinheit identifiziert Umgebungsobjekte und Carlas Standort

  • Die Planungseinheit entwirft eine Trajektorie, der Carla folgt

  • Die Kontrolleinheit signalisiert Brems-, Beschleunigungs- oder Lenkleistungen


Zum anderen kann Carla nur mit ständiger Weiterentwicklung funktionieren. Und einen großen Anteil an dieser Entwicklung haben unsere Lernenden.

Im neunten Monat des Self-Driving Car Nanodegree-Programms etwa schicken sie unserem Team unserem Team Testcodes für Carla. Wir speisen die ein und zeigen den Lernenden per Video und Log Files, wie ihre Codes sie steuern.


Wenn ihr euch auch dafür interessiert, wie automotive Fahrzeuge gebaut werden, und ihr Carla bald selbst "steuern" wollt, kann ich euch unsere Programme Intro to Self-Driving Cars und den Self-Driving Car Engineer nur ans Herz legen!



David Silver

Ist Autor dieses Textes, in der Self-Driving Car-Branche eine absolute Koryphäe sowie Experte und Mentor unserer Self-Driving Car Programme. Kürzlich beschrieb er Carla in dieser Medium-Story.


Fotos: Udacity