Implementierung von FastSLAM 2.0 und Tests in Outdoor-Simulationsumgebungen: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:AMR]]  
[[Kategorie:AMR]]  
[[Datei:FastSlam2_0.jpg|thumb|rigth|400px|Abb. 1: FastSLAM 2.0]]
{|
{|
|-
|-
| '''Autor:'''  || Benjamin Dilly
| '''Autor:'''  || [[Benjamin Dilly]]
|-
|-
| '''Modul:''' || Bachelorarbeit, MTR-B-2-7.01
| '''Modul:''' || Bachelorarbeit, MTR-B-2-7.01
Zeile 12: Zeile 13:
|  '''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).
|  '''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''': || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]], Tel. 806
|  '''Betreuer''': || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]], Tel. 806; Stefan Arndt, [https://www.hanning-hew.com/de/ HANNING ELEKTRO-WERKE GmbH & Co. KG]
|-
|-
|  '''Mitarbeiter''': ||  [[Benutzer:Marc Ebmeyer| Marc Ebmeyer]], Tel. 847
|  '''Mitarbeiter''': ||  [[Benutzer:Marc Ebmeyer| Marc Ebmeyer]], Tel. 847
|}
|}
== Einleitung ==
== Einleitung ==
Algorithmen zur simultanen Lokalisierung und Kartographierung (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])
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.
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 ==
== 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 ==
== Anforderungen an die wissenschaftliche Arbeit ==
Zeile 42: Zeile 74:


== Quellen ==
== Quellen ==
# [http://robots.stanford.edu/papers/Montemerlo03a.pdf]
# [http://robots.stanford.edu/papers/Montemerlo03a.pdf Montemerlo, M.; Thrun, S., u.a.: ''FastSLAM 2.0: An Improved Particle Filtering Algorithm for Simultaneous Localization and Mapping that Provably Converges''. In: Proceedings of IJCAI, 2003, S. 1151-1156]


== Nützliche Artikel ==
== Nützliche Artikel ==
*[[Navigation_eines_FTF_mit_ROS2 Y. Schmidt: Navigation eines FTF mit ROS2]]
*[[Navigation_eines_FTF_mit_ROS2| Y. Schmidt: Navigation eines FTF mit ROS2]]
 
== Einrichtung eines Dual-Boot-Systems mit Windows und Ubuntu ==


== Anleitung zum Einrichten von Visual Studio Code zum Arbeiten mit C++, CMake und ROS2 ==


----
----
→ zurück zum Hauptartikel: [[Studentische_Arbeiten|Studentische Arbeiten]]
→ zurück zum Hauptartikel: [[Studentische_Arbeiten|Studentische Arbeiten]]

Aktuelle Version vom 9. Mai 2024, 13:27 Uhr

Abb. 1: FastSLAM 2.0
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

SVN-Repositorium

Getting started

Lesen Sie zum Einstieg diese Artikel

Quellen

  1. Montemerlo, M.; Thrun, S., u.a.: FastSLAM 2.0: An Improved Particle Filtering Algorithm for Simultaneous Localization and Mapping that Provably Converges. In: Proceedings of IJCAI, 2003, S. 1151-1156

Nützliche Artikel

Einrichtung eines Dual-Boot-Systems mit Windows und Ubuntu

Anleitung zum Einrichten von Visual Studio Code zum Arbeiten mit C++, CMake und ROS2


→ zurück zum Hauptartikel: Studentische Arbeiten