Implementierung von FastSLAM 2.0 und Tests in Outdoor-Simulationsumgebungen
Autor: | Benjamin Dilly |
Modul: | Bachelorarbeit, MTR-B-2-7.01 |
Starttermin: | TBD |
Abgabetermin: | TBD |
Prüfungsform: | Modulabschlussprüfung als schriftliche Dokumentation (Bachelorarbeit) im Umfang von 30 bis 60 Seiten Textteil und Präsentation (15 Minuten) zzgl. Kolloquiumsdiskussion (15-30 Minuten). |
Betreuer: | Prof. Dr.-Ing. Schneider, Tel. 806; Stefan Arndt, HANNING ELEKTRO-WERKE GmbH & Co. KG |
Mitarbeiter: | Marc Ebmeyer, Tel. 847 |
Einleitung
Algorithmen zur Simultanen Positionsbestimmung und Kartierung (Engl.: Simultaneous Localization and Mapping, SLAM) sind ein wichtiger Bestandteil in der Mobilen Robotik. Da heutzutage meist hochauflösende Laserscanner eingesetzt werden, haben sich Scan-Matching basierende SLAM-Algorithmen für die Indoor-Anwendung durchgesetzt. Jedoch scheitern diese Algorithmen in unstrukturierten und spärlich belegten Umgebungen (kaum bis keine Wände, geringe Anzahl an Messpunkte durch den Laserscanner), wie es im Outdoor-Bereich der Fall ist. Eine Möglichkeit, um in dieser Umgebung zu navigieren, ist die Verwendung eines Landmarken-basierenden SLAM-Verfahrens. Eines dieser Verfahren ist FastSLAM 2.0, das markante Umgebungsmerkmale (Features) mithilfe einer Gaußverteilung modelliert. Die verschiedenen Möglichkeiten der Trajektorie als auch der gesamten Karte werden durch Partikel abgebildet (siehe [1]) Da in einem industriellen Umfeld sowohl Indoor als auch Outdoor-Navigation verlangt wird, sollen beide SLAM-Algorithmen bei Hanning zum Einsatz kommen.
Zielsetzung
Ziel der Arbeit ist die Implementierung von FastSLAM 2.0 in modernem C++ (>= 17) unter Verwendung des Robot Operating System 2 (ROS2) Humble und das Testen in verschiedenen Outdoor-Simulationsumgebungen.
Eigenschaften der Umgebung können hierbei folgende sein:
- Bodenbeschaffenheit (flach oder uneben)
- Wenige bis viele Features
- Langer oder kurzer Weg bis zum nächsten Indoor-Bereich
- Features verschwinden oder tauchen auf
Von dem Softwaremodul FastSLAM 2.0 werden besondere Anforderungen verlangt:
Feature-Management
Features sind häufig nicht statisch, d.h. sie können über die Zeit aus der Umgebung verschwinden, werden versetzt oder neue kommen dazu. Das Softwaremodul soll damit automatisiert umgehen können.
Konfidenzwert der Lokalisierung
Die Lokalisierung mittels FastSLAM 2.0 soll probabilistisch bewertet werden. Hierbei können verschiedene Kriterien zum Einsatz kommen, wie z. B.: Anzahl der erkannten Features, Abweichung der Messung zu den Features, Kovarianz der Features, Verteilung der Partikel etc. Die Motivation hierbei ist es, mithilfe des Confidence-Werts eine automatische Umstellung von Indoor- und Outdoor-SLAM durchführen zu können.
Parametrierung
Anzahl der Partikel, Ungenauigkeit des Antriebsstrang (Odometrie), verwendete Reichweite des Laserscanners (usable Range), Rastergröße der Karte
Schnittstelle (ROS2)
- Input: Odometrie, Laserscanner
- Output: Occupancy Grid Map (Rasterkarte), globale Position bzw. Transformation, Confidence-Wert
Aufgabenstellung
- Einarbeitung in ROS2
- Implementierung des Softwaremoduls FastSLAM 2.0
- Testen in geeigneter Simulationsumgebungen (z. B. WeBots)
- Testen in geeigneten Umgebungen
- Auswertung der Ergebnisse unter Berücksichtung der Outdoor-Navigation
- Dokumentation im HSHL-Wiki
Anforderungen an die wissenschaftliche Arbeit
- Wissenschaftliche Vorgehensweise (Projektplan, etc.), nützlicher Artikel: Gantt Diagramm erstellen
- Wöchentlicher Fortschrittsberichte (informativ), aktualisieren Sie das Besprechungsprotokoll - Live Gespräch mit Prof. Schneider
- Projektvorstellung im Wiki
- Tägliche Sicherung der Arbeitsergebnisse in SVN
- Tägliche Dokumentation der geleisteten Arbeitsstunden
- Studentische Arbeiten bei Prof. Schneider
- Anforderungen an eine wissenschaftlich Arbeit
SVN-Repositorium
Getting started
Lesen Sie zum Einstieg diese Artikel
- Gantt Diagramm erstellen
- Tipps zum Schreiben eines Wiki-Artikels
- PAP Designer Einstieg
- Einführung in SVN
Erweiterungsdokument
In dem Erweiterungsdokument zur Bachelorarbeit, können die Informationen zur Einrichtung eines Dual-Boot-Systems, eine grundlegende Einführung in die Funktionsweise von ROS, eine Einführung in die Programmierung mit ROS2 Humble, C++ und Visual Studio Code, als auch eine Einführung in die Programmierung mit Visual Studio Code, C++ und CMake gefunden werden.
Quellen
Nützliche Artikel
Nützliche Links
- Rqt Graph
- ROS2 Navigation Stack (NAV2)
- ROS2 Humble Tutorials
- Webots Documentation
- Webots Tutorials (Videos)
- Additional installing Ubuntu alongside windows with Bitlocker activated
- SLAM-Package von Bailey Tim
- SLAM-Kurs von Cyrill Stachniss (Videos)
→ zurück zum Hauptartikel: Studentische Arbeiten