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.
Tools
Die während der Arbeit verwendeten Tools, werden im folgenden aufgelistet:
- yEd live Erstellen von Graphen wie PAP
- Matlab
- Excel
- Visual Studio Code
- Colcon (Zum Bauen von ROS-Paketen)
- ROS2 Humble
- RViz (Zur Visualisierung der Simulation)
- Webots (Simulationsumgebung)
- Eigen (Matrix-Bibliothek C++)
- Teleop-Twist-Keyboard (Steuerung des Roboters über Konsole)
Nützliche Artikel
Nützliche Links
- Rqt Graph
- teleop_twist_keyboard
- Colcon
- ROS-Koordinatensysteme
- ROS2 Navigation Stack (NAV2)
- ROS2 Humble Tutorials
- Installation der Desktop-Version von ROS2 Humble
- ROS2 Tf2-Tutorials (Koordinatentransformationen)
- Tf2_ros Tutorials (Koordinatentransformation)
- Webots Documentation
- Webots User Guide
- Webots Tutorials (Videos)
- Additional installing Ubuntu alongside windows with Bitlocker activated
- SLAM-Package von Bailey Tim
- SLAM-Kurs von Cyrill Stachniss (Videos)
- SLAM-Themeneinführung-Einführung Matlab (Videos)
Wichtige ROS-Topics
Literatur
- THRUN, S. und OTHERS. Probabilistic Robotics. Massachusetts: The MIT Press, 2006. ISBN 978-0-262-20162-9.
- TU-DRESDEN. RoboLab Documentation v2024.5.1. Odometrie [online], 2024 [Zugriff am: 22. Mai 2024].
- MONTEMERLO, M. und OTHERS. FastSLAM 2.0: An Improved Particle Filtering Algorithm for Simultaneous Localization and Mapping that Provably Converges, 2003.
- FRESE, U., R. WAGNER und T. RÖFER. A SLAM Overview from a User’s Perspective. In: Springer-Verlag, 2010, S. 191-198.
- ALSADIK, B. und S. KARAM. The Simultaneous Localization and Mapping (SLAM)-An Overview. SURVEYING AND GEOSPATIAL ENGINEERING JOURNAL, 2021, 2(1), 1-12.
- LV, T.-Z., C.-X. ZHAO und H.-F. ZHANG. An Improved FastSLAM Algorithm Based on Revised Genetic Resampling and SR-UPF. International journal of automation and computing, 2018, 325-334. ISSN 1751-8520.
- ABOUZAHIR, M. und OTHERS. FastSLAM 2.0 Running On a Low-Cost Embedded Architecture. In: 13th International Conference on Control, Automation, Robotics & Vision, 2014, S. 1421-1426.
- BEUTELSPACHER, A. Lineare Algebra. Eine Einführung in die Wissenschaft der Vektoren, Abbildungen und Matrizen. Springer Spektrum, 2014. ISBN 978-3-658-02413-0.
- IOANNIDOU, S. und G. PANTAZIS. Helmert Transformation Problem. From Euler Angles Method to Quaternion Algebra [online]. ISPRS Int. J. Geo-Inf., 2020, 9. Verfügbar unter: doi:10.3390/ijgi9090494
- GRISETTI, G., C. STACHNISS und W. BURGARD. Improved Techniques for Grid Mapping with Rao-Blackwellized Particle Filters, 2007.
- GRISETTI, G., C. STACHNISS und W. BURGARD. Improving Grid-based SLAM with Rao-Blackwellized Particle Filters by Adaptive Proposals and Selective Resampling, 2005.
- THRUN, S. und OTHERS. FastSLAM: An Efficient Solution to the Simultanious Localization And Mapping with Unkown Data Association [online], 2004 [Zugriff am: 22. Mai 2024].
- ALI, S.S., A. HAMMAD und A.S. TAG ELDIEN. A Novel Implementation for FastSLAM 2.0 Algorithm Based on Cloud Robotics. In: 13th International Computer Engineering Conference (ICENCO), 2017.
- SCHÄFER, T. Methodenlehre und Statistik. Wiesbaden: Springer Fachmedien, 2016. ISBN 978-3-658-11936-2.
- KLANCAR, G., A. ZDESAR, S. BLAZIC und I. SKRJANC. Wheeled Mobile Robotics: From Fundamentals Towards Autonomous Systems. Elsevier Inc, 2017. ISBN 978-0-12-804204-5.
- ABBEL, P. und OTHERS. Discriminative Training of Kalman Filters.
- STACHNISS, C., D. HÄHNEL und W. BURGARD. Exploration with Active Loop-Closing for FastSLAM, 2004.
- ALI, S.S., A. HAMMAD und A. S. TAG ELDIEN. Cloud-based map alignment strategies for multi-robot FastSLAM 2.0. International Journal of Distributed, 2019, 15(3), 1-7.
- KIM, P. Kalman-Filter für Einsteiger mit MATLAB Beispielen. CreateSpace Independent Publishing, 2016. ISBN 978-1502723789.
→ zurück zum Hauptartikel: Studentische Arbeiten