Bosch Future Mobility Challenge 2022 in Abstatt
Im Jahr 2022 nahmen zwei Teamkollegen meiner Formula Student Teams und ich erfolgreich an der Bosch Future Mobility Challenge (manchmal auch Hack the Road Challenge genannt) in Abstatt teil. Diese aufregende Herausforderung bestand darin, einen von Bosch bereitgestellten Lexus-Nachbau auf einem künstlichen Spielfeld autonom fahren zu lassen. Unser Team trat dabei gegen andere Universitätsteams an und konnte schließlich den zweiten Platz erringen.
Dieser kleine Wagen hat uns auf das Pdium gefahren.
Unser langfristiges Ziel ist es natürlich dieses Wissen und die Erfahrung in unser eigentliches Formula Student Auto zu integrieren. Die Bosch Future Mobility Challenge war eine großartige Gelegenheit, um unser Wissen im Bereich des autonomen Fahrens zu vertiefen und neue Technologien zu erproben.
Unser F24 (2024 Modell) bei der Release-Presentation auf dem Campus der Hochschule Darmstadt. Hier noch ohne die benötigte Ausstattung für Formula Student Driverless.
Berechnung des Fahrwegs mittels openCV in Python
Meine Hauptaufgabe bestand darin, den Fahrweg des autonomen Autos zu berechnen. Hierzu habe ich die Image-Map der Strecke ausgewertet und alle mögliche Teilrouten auf dem Spielfeld ermittelt. Die Image-Map der Strecke wurde automatisch während der Fahrt vom Fahrzeug erfasst und erstellt. Diese Vorgehensweise ist in der Branche des autonomen Fahrens weit verbreitet und wird als "Simultaneous Localization and Mapping" (kurz: SLAM-Algorithmus) bezeichnet.
Image-Map des Spielfeldes:
Pfad-Ermittlung mittels Delaunay-Triangulierung:
Erster Versuch der Triangulierung.
Erstes Ergebnis nach ein paar Anpassungen.
Fertige Pfad-Ermittlung:
Fertige Pfad-Ermittlung.
Nachdem alle möglichen Pfade ermittelt wurden, konnten wir festlegen, welche Abbiegungen das Auto machen soll (zum Beispiel: zuerst geradeaus, dann zweimal rechts abbiegen). Anhand der Abfolge der Abbiegungen wurde ein Pfad für den SLAM-Algorithmus generiert, den das Auto abfahren konnte.
Generierter Pfad:
Zusätzlich können auch Punkte definiert werden, an denen das Auto anhalten sollte (beispielsweise, wenn das Auto weis, dass es an der zweiten Kreuzung Vorfahrt gewähren muss).
Pfad mit stopp-Punkten:
Abschließend habe ich ein weiteres ROS-Package entwickelt, das basierend auf dem generierten Pfad und der Position des Autos den nächsten anzufahrenden Punkt bestimmt. Die Logik für die Sensorik, die Berechnung und Steuerung der Lenkung und des Motors wurde ebenfalls in verschiedenen ROS-Packages umgesetzt.
Visualisierung ROS-Package für die Berechnung des nächsten Punktes:
Hier fährt das auto Richtung Osten. Die Position des Autos ist der rote Punkt, während die weißen Punkte der angestrebte Pfad ist. Der grüne Punkt ist das Ergebnis der Berechnung.
Hier sind noch zwei weitere Beispiele: