EmilE
Eckdaten
Gewicht: | ca. 220 kg |
Leistung: | 2x 35 kW |
Drehmoment: | 2x 320 Nm |
Spannung: | 600 V |
Höchstgeschwindigkeit: | 5 m/s (18 km/h) |
Sensoren: | Velodyne Puck HiRes |
Objekterkennung: | Euklidisches Clustering |
Mapping: | FastSLAM |
Autonomes System
Das autonome System setzt sich aus zwei Velodyne Puck Hi-Res LiDAR, vier Ximea XiQ Kameras und einem x86-PC zusammen. Mit Hilfe der Kameras und der LiDAR werden die blauen und gelben Hütchen erkannt, die links und rechts die Fahrbahn markieren.
Streckenerkennung
Die beiden LiDAR haben jeweils eine Reichweite von 15 m wo wir die Hütchen erkennen können und die Kameras haben eine Reichweite von bis zu 18 m
Die prinzipielle Objekterkennung in den LiDAR Punktwolken wird mit Hilfe von euklidischem Clustering durchgeführt: indem Punkte, die räumlich nahe beieinander liegen, zu Gruppierungen (Clustern) zusammengefasst werden, lassen sich Hütchen dank ihrer hohen Punktedichte gut erkennen.
Bei der Objekterkennung mit der Kamera setzen wir auch Convolutional Neural Networks zu Erkennung der Hütchen in Bounding Boxes, diese werden dann mit einem Template Matching Algorithmus verfeinert und dann die Distanz mit dem Lochkameramodell
bestimmt.
Lokalisierung
Um herauszufinden, wo sich das Fahrzeug befindet, hat es mehrere Möglichkeiten. Beispielsweise gibt es da GPS (ungenau), D-GPS (genau und teuer), Odometrie (ungenau) oder, wie in unserem Fall, Simultaneous Localization and Mapping, kurz SLAM.
Es handelt sich bei SLAM um eine Klasse von Algorithmen, die allesamt ein Ziel verfolgen: das bestmöglichste Schätzen der Position von Fahrzeug und Umgebungsobjekten mit Hilfe von Umgebungssensorik (Velodyne Puck HiRes) und – in den meisten Fällen – Odometrie. Wir setzen in unserem Fall auf eine FastSLAM 1.0-Implementation.
Dadurch haben wir die Möglichkeit, die Strecke während der ersten Runde komplett aufzuzeichnen, damit ab der zweiten dann jede Kurve und Gerade schon im vorhinein bekannt ist – und so auch schneller abgefahren werden kann.
Pfadplanung
Die Pfadplanung setzt sich aus 3 Grundfunktionen zusammen:
- Triangulierung
- Pfadgenerierung
- Diskriminierung
- Optimierung
Am Anfang werden die erkannten Cones einer Delaunay-Triangulation unterzogen, die dafür sorgt, dass die Punkte zu einem Dreiecksnetz zusammengefasst werden.
Mögliche Pfade werden gefunden, indem alle benachbarten Dreiecke von der Position des Fahrzeugs aus rekursiv durchsucht werden. Auf diese Weise lassen sich eine ganze Menge an Pfaden finden, aus denen im Anschluss der beste Pfad herausgefiltert werden muss.
Drittens erreichen wir mit Hilfe einer Kostenfunktion, die die Pfade je nach Nützlichkeit bewertet – ist der Pfad lang? Ist die Strecke regelkonform? …
Letzteres optimiert den gefundenen Pfad, so dass man ihn mit der höchst möglichen Geschwindigkeit abfahren kann.
Regelung
Um dem Pfad zu folgen setzten wir auf Model Predictive Control und das Einspurmodell. Wir schätzen auf Basis des Verhaltes des Fahrzeugs eine Trajektorie welche die Fahrzeuggeschwindigkeit maximieren soll, aber dem Hindernissen (Hütchen) bestmöglich
ausweichen soll.