Multimedia Information Processing Group


Autonomous Racing - Rosyard


Status     nicht vergeben

Die Formula Student ist ein internationaler Konstruktionswettbewerb, in dem Studententeams auf der ganzen Welt jährlich einen Rennwagen entwickeln, bauen und auf offiziellen Events fahren. Das Kieler Team Raceyard wird in der Saison 2020/21 zum ersten Mal ein autonomes Fahrzeug entwickeln, welches sich auf durch Pylonen/Cones begrenzten Strecken zurechtfinden und diese möglichst schnell abfahren soll.

Wir als Arbeitsgruppe betreuen die vollständige Softwarelösung von der Verarbeitung der Sensoren bis hinzu der Berechnung der Steuerbefehle. Wir haben eine vollständige Simulationsumgebung mit ROS gebaut in der das Verhalten des Autos simuliert werden kann. Darüber hinaus gibt es regelmäßige Treffen mit Raceyard, um die Software in der Praxis auszutesten. Zusätzlich existiert eine Simulationsumgebung in Unity für das Reinforcement Learning des Fahrers.

Testlauf zur Erkennung und Tiefenschätzung von Pylonen, 2019

 

Vollständige Simulationsumgebung für das autonome Fahrzeug

Pipeline

Die Verarbeitung der Sensordaten wird in einer Pipeline folgenden groben Schritten durchgeführt:

  1. Verarbeitung von Sensordaten: Das Auto wir mit einer RGB-Kamera und einem Lidar ausgestattet. Mittels dieser Sensoren sollen zunächst die Cones erkannt werden. Dies kann beispielsweise durch Objektdetektion via Deep Learning umgesetzt werden (siehe erstes Video).
  2. SLAM: Aus den detektierten Positionen der Cones soll in der ersten Runde eine 2D-Karte der Rennstrecke aufgebaut werden (siehe zweites Video). Zudem muss das Auto in der vorliegenden Map lokalisiert werden um einerseits ein richtiges Zusammensetzen der Karte in der ersten Runde zu gewährleisten und andererseits die Planung der nächsten Steuerungsbefehle zu ermöglichen.
  3. Driving: Basierend auf der Karte und Autoposition aus dem SLAM muss hier entschieden werden, wie das Auto reagieren soll. Wie sieht die Ideallinie aus? Mit welcher Geschwindigkeit kann ich diese befahren? Welche Steuerungsbefehle müssen gegeben werden, um die Zielgeschwindigkeit zu erreichen? Auch hierfür sind Ansätze aus den Bereichen Deep/Reinforcement Learning denkbar.

SLAM

Hier ist eine Übersicht über unseren aktuellen SLAM. Links ist die eigentlichen Karte und die Autoposition zu sehen. Die gelben und blauen Highlights stellen erkannte Hütchen dar. In der Mitte ist die aktuelle Ausgabe des SLAMs zu sehen. Für jedes erkannte Hütchen wird ein schwarzer Marker plaziert sowie ein grüner Unsicherheitsbereich markiert. Das Auto wird schwarz dargestellt. Rechts ist das Ziel dargestellt. Der wichtigste Unterschied ist das Erkennen von Rauschen und Klassifikation in blaue und gelbe Hütchen.

SLAM
Eingabe und Ground-Truth Aktuelle Ausgabe Ziel: Vollständiger SLAM Quelle

Reinforcement Learning

Wir können das Fahrzeug komplett in Unity simulieren, um dort mit Reinforcement Learning das Fahrverhalten zu trainieren. Links ist ein echtes Bild aus der Simulation zu sehen. Rechts wurde die Kameraansicht abstrahiert, um eine Generalisierung auf realen Bildern zu ermöglichen. In beiden Videos fährt das Auto vollkommen autonom. Erste Ergebnisse belegen, dass sowohl der Mensch als auch klassischere Ansätze nicht mit Reinforcement Learning mithalten können.

Training mit echten Kamera Input Training mit abstrakter Kamera

 

Das Projekt läuft seit SS19. Es wurden bisher 5 Bachlorarbeiten, 4 Masterprojekte und eine Masterarbeit erfolgreich in dem Projekt Rosyard abgeschlossen. Das individuelle Thema wird in Absprache mit dem Betreuer geklärt.
 

 

Voraussetzungen: Je nach Themengebiet sind Erfahrungen im Bereich Deep Learning und grundlegende Programmierkenntnisse in C++ und Python hilfreich

Ansprechpartner:Johannes Brünger, Lars Schmarje