Partikelfilter SLAM für ein AMR: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(40 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Projekte]]  
[[Kategorie:Projekte]]  
<!--[[Datei:Simulation KIT Car CC22.jpg |mini|600px|Abb. 1: Simulationsumgebung des KIT]]-->
<!--[[Datei:Simulation KIT Car CC22.jpg |mini|600px|Abb. 1: Simulationsumgebung des KIT]]-->
'''Autor:''' Benjamin Dilly<br/>
'''Autor:''' [[Benutzer:Benjamin Dilly|Benjamin Dilly]]<br/>
'''Art:''' Projektatbeitarbeit<br>
'''Art:''' Projektarbeit<br>
'''Dauer:''' xx.yy.2023 - xx.yy.2023<br>
'''Geplanter Start:''' 20.02.2023<br>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider| Prof. Schneider]]<br/>
'''Betreuer:''' [[Benutzer:Ulrich_Schneider| Prof. Schneider]]<br/>


Zeile 21: Zeile 21:
*[[Studentische_Arbeiten_bei_Prof._Schneider|Studentische Arbeiten bei Prof. Schneider]]
*[[Studentische_Arbeiten_bei_Prof._Schneider|Studentische Arbeiten bei Prof. Schneider]]
*[[Anforderungen_an_eine_wissenschaftlich_Arbeit| Anforderungen an eine wissenschaftlich Arbeit]]
*[[Anforderungen_an_eine_wissenschaftlich_Arbeit| Anforderungen an eine wissenschaftlich Arbeit]]
== SVN-Repositorium ==
Link: TBD




Zeile 31: Zeile 28:
*[[Software_Versionsverwaltung_mit_SVN|Regeln zum Umgang mit SVN]]
*[[Software_Versionsverwaltung_mit_SVN|Regeln zum Umgang mit SVN]]
*[https://hshl.bsz-bw.de/cgi-bin/koha/opac-detail.pl?biblionumber=3270&query_desc=kw%2Cwrdl%3A%20probabilistic%20robotics Probabilistic robotics von Sebastian Thrun]
*[https://hshl.bsz-bw.de/cgi-bin/koha/opac-detail.pl?biblionumber=3270&query_desc=kw%2Cwrdl%3A%20probabilistic%20robotics Probabilistic robotics von Sebastian Thrun]
*[https://openslam-org.github.io/bailey-slam.html Open SLAM MATLAB Beispiele von Tim Bailey]


== Einstiegvideos ==
== Einstiegvideos ==
* [https://youtu.be/0I30M6yTklo Introduction to SLAM (Cyrill Stachniss)]
* [https://youtu.be/Cj91xll94U4 SLAM Course - 10 - Grid Maps (2013/14; Cyrill Stachniss)]
* [https://youtu.be/MIh-1EACaJc SLAM Course - 10a - FastSLAM - Part 1 - Cyrill Stachniss]
* [https://youtu.be/tIeLrwsPUVs SLAM Course - 10b - FastSLAM - Part 2 - Cyrill Stachniss] ('''Ton fehlt ab Minute 23''')
* [https://youtu.be/fO4euQVfMso SLAM Course - 11 - Grid Maps - Cyrill Stachniss]
* [https://youtu.be/Tz3pg3d1TIo SLAM Course - 12 - FastSLAM (2013/14; Cyrill Stachniss)]
* [https://youtu.be/d20ivxulxOs SLAM Course - 13 - Grid-Based FastSLAM - Cyrill Stachniss]
'''Zusätzliche Verständnisvideos'''
* [https://www.youtube.com/watch?v=NrzmH_yerBU Understanding the Particle Filter | | Autonomous Navigation, Part 2]
* [https://www.youtube.com/watch?v=saVZtgPyyJQ&t=822s Understanding SLAM Using Pose Graph Optimization | Autonomous Navigation, Part 3]


== Projektplan ==
== Projektplan ==
<gallery widths="600" heights="100">
Datei:Ablaufplan Partikelfilter SLAM für AMR.png|100px|Abb. 1: Projektplan
</gallery>


== Zusammenfassung ==
SLAM ist ein Verfahren, welches das Kartierungs- und Lokalisationsproblem lösen soll. Dies bedeutet die gleichzeitige Lokalisierung und Kartenerstellung. Hierbei werden Lokalisation und Kartierung im Laufe der Zeit, bis zu einem bestimmten Grad immer besser. Dieser Grad ist abhängig vom verwendeten Verfahren, der verwendeten Aktorik, Sensorik und der Parametrisierung des Algorithmus.
<br>


Es wird eingesetzt, um die Ungenauigkeit der Odometrie über bspw. Hallsensoren und oder Gierrate auszugleichen, welche mit zunehmender Zeit zu einer stetig steigenden Ungenauigkeit der Lokalisierung führt. Hierdurch kann einerseits keine akkurate Umgebungskarte erstellt werden und andererseits auch keine Navigation vorgenommen werden, da für beide Fälle eine ausreichend genaue Kenntnis der aktuellen Position und Ausrichtung des Roboters vorhanden sein muss. Das Ziel des SLAM-Verfahrens ist es hierbei, die maximale Abweichung der Lokalisierung auf einen festen Bereich zu beschränken, der über die gesamte Zeit gleich bleibt. Hierdurch kann eine Navigation und Kartenerstellung ermöglicht werden, da die maximale Ungenauigkeit auf ein akzeptierbares Niveau eingestellt werden kann.
<br>


== Anforderungen ==
Es gibt verschiedene SLAM-Arten wie: EKF-SLAM oder Graph-SLAM. In dieser Arbeit wurde die partikelbasierten SLAM-Verfahren FastSLAM1.0 und 2.0 behandelt. Sie zeichnen sich durch eine bessere Effizienz und Stabilität im Vergleich zu anderen SLAM-Verfahren aus. Hierbei gibt es zwei Arten: known und unknown data association. Erstere ist für simulative Zwecke geeignet. Zweitere wird verwendet, wenn noch keine Karte bekannt ist und diese erst im Laufe des Verfahrens ermittelt wird. Die Kartenerstellung ist nur erfolgreich, wenn die Umgebung genügend undynamischer Elemente enthält. Während sich bspw. Menschen in einem Park oder einem Einkaufszentrum sukzessive aus der Karte eliminieren, werden bspw. Bäume oder auch Regale oder Möbel dauerhaft festgehalten. Hierbei verliert die Karte an Aussagekraft, je mehr dieser Elemente verschwinden, d.h. wenn Möbel umgestellt oder Bäume gefällt werden.
=== Hardwareanforderungen ===
<br>


=== Softwareanforderungen ===
Es gibt zwei Arten der Implementation: Landmarken und Belegtheitsrasterkarte (occupancy grid map). Erstere stellt Objekte als einen oder mehrere Koordinatenpunkte dar und ist weniger speicher- und rechenintensiver und gut zur Outdoornavigation geeignet. Um hierbei eine Rasterkarte zu erstellen, muss die erstellte Landmarkenkarte nachbehandelt werden. Hierbei ist eine sehr feine Markenauflösung vonnöten, die durch einen besseren Sensor, wie Mess- und Stellgenauigkeit, Gradauflösung und oder Rotationsgeschwindigkeit ermöglicht wird. Die Belegtheitsrasterkartenimplementation erstellt hierbei eine rasterkartenbasierte Karte der Umgebung, welche keine Nachbehandlung benötigt. Sie ermöglicht eine sehr einfache Navigation, ist jedoch Speicher- und Rechenaufwendiger und bedarf mehr Durchläufe, um ein akkurates Ergebnis zu erzielen. Zudem ist diese Variante eher für Indooranwendungen geeignet, da her die räumliche Ausdehnung begrenzt ist und mehr signifikante Informationen wie Wände, Schränke, Stühle usw. vorhanden sind, welche in einem Park fehlen, der nur spärliche Informationen bereitstellt durch bspw. einer handvoll Bäume und offener Fläche.
<br>


FastSLAM 2.0 unterscheidet sich von 1.0 in der Art der Landmarkenschätzung. Während FastSLAM 1.0 eine einfache Posenschätzung der neuen Partikelpose vornimmt und daraufhin die Messung abgleicht, versucht FastSLAM 2.0 die Pose unter allen möglichen neuen Posen zu finden, von der aus unter Berücksichtigung der Messungenauigkeit eine Landmarke am eindeutigsten gesehen werden kann. Hierdurch wird die Gewichtungsberechnung und die Posenschätzung der tatsächlichen Roboterpose verbessert.
<br>


Das Resultat des Verfahrens kann durch Verbessern der Aktorgenauigkeit oder des Lidarsensors im Sinne der Mess- und Positionierungsgenauigkeit, der Rotationsgeschwindigkeitserhöhung und der Gradauflösung verbessert werden.
<br><br>


== Funktionaler Systementwurf / Technischer Systementwurf ==
Zu Vid.1 bis Vid. 10: Grüne Sterne sind Landmarken, Magenta Punkte sind geschätzte Landmarkenpositionen, rote Punkte sind Partikel, grüner Pfeil ist die tatsächliche Pose des Roboters und der blaue die geschätzte Pose des Roboters.


== Komponentenspezifikation ==
<gallery widths="400" heights="400">
Datei:Partikelfilter SLAM für AMR Scenario19.mp4|100px|Vid. 1: Darstellung der Simulation
Datei:Partikelfilter SLAM für AMR Scenario20.mp4|100px|Vid. 2: Einfluss einer 5-fach höheren Rotationsgeschwindigkeit
Datei:Partikelfilter SLAM für AMR Scenario21.mp4|100px|Vid. 3: Einfluss einer 5-fach höheren Gradauflösung
</gallery>
<gallery widths="400" heights="400">
Datei:Partikelfilter SLAM für AMR Scenario22.mp4|100px|Vid. 4: Darstellung einer zu geringen Sensorreichweite mit 100 Partikeln
Datei:Partikelfilter SLAM für AMR Scenario23.mp4|100px|Vid. 5: Einfluss einer 5-fach höheren Rotationsgeschwindigkeit
Datei:Partikelfilter SLAM für AMR Scenario24.mp4|100px|Vid. 6: Einfluss einer 5-fach höheren Gradauflösung
</gallery>
<gallery widths="400" heights="400">
Datei:Partikelfilter SLAM für AMR Scenario25_Bsp_zu_hauefiges_resamplen.mp4|100px|Vid. 10:  Darstellung einer zu geringen Sensorreichweite mit 1000 Partikeln und zu geringer Resamplinggrenze
</gallery>


== Programmierung ==
== Projektunterlagen ==
Die Ergebnistabellen enthalten für jede Testkategorie die folgenden Werte:
* Pose: In der Pose werden für jeden Schleifendurchlauf die maximale, minimale und gemittelte Distanz des jeweils höchst gewichteten Partikels zur tatsächlichen Pose [x, y] des Roboters in Meter aufgelistet.
* Theta: Theta beschriebt das Gleiche wie die Pose. Hierbei bezieht sich Theta auf den gemessenen Fehler in der Orientierung/ Ausrichtung des jeweils höchst gewichteten Partikels zu der des Roboters, in Bogenmaß.
* Landmarke: In dieser Kategorie wird die minimal, maximal und gemittelte Abweichung der ermittelten Landmarken des jeweils höchst gewichteten Partikels pro Schleife in Metern, zu den vorgegebenen Merkmalen, aufgelistet. Hierbei beschriebt die maximale als auch die minimale Distanz, wie auch bei allen anderen, den maximalen und minimalen Wert, der in einer gesamten Schleife gemessen wurde.


== Komponententest ==
Info: Die zeitlichen Angaben in einigen der folgenden Tabellen sind nicht aussagekräftig und wurden daher bei den späteren auch nicht mehr mitgeführt.


[[Medium:Partikelfilter SLAM für AMR Ergebnistabelle ROOM2.2 Szenarien 0-3.xlsx]]<br>
[[Medium:Partikelfilter SLAM für AMR Ergebnistabelle ROOM2.2 Szenarien 4-7.xlsx]]<br>
[[Medium:Partikelfilter SLAM für AMR Ergebnistabelle ROOM2.2 Szenarien 8-11.xlsx]]<br>
[[Medium:Partikelfilter SLAM für AMR Ergebnistabelle ROOM2.2 Szenarien 12-15.xlsx]]<br><br>
[[Medium:Partikelfilter SLAM für AMR Ergebnistabelle example_webmap Szenarien 0-3.xlsx]]<br>
[[Medium:Partikelfilter SLAM für AMR Ergebnistabelle example_webmap Szenarien 4-7.xlsx]]<br>
[[Medium:Partikelfilter SLAM für AMR Ergebnistabelle example_webmap Szenarien 8-11.xlsx]]<br>
[[Medium:Partikelfilter SLAM für AMR Ergebnistabelle example_webmap Szenarien 12-15.xlsx]]<br>


== Ergebnis ==
== Zusammenfassende Ergebnistabellen ==
 
Diese Vergleichstabellen vergleichen für jede Karte die besten Ergebnisse miteinander, um eine Aussage über die Qualität der einzelnen Testkategorien zu bekommen. Also ob bspw. die Testkategorie [0-3] am besten abgeschnitten hat. <br>
 
Beispiel anhand von ROOM2.2:<br>
== Zusammenfassung ==
* Um [0-3] zu bewerten suche bestes Ergebnis aus Testkategorie [0-3].
 
* Tue das Selbe mit allen anderen Testkategorien der ROOM2.2 Karte ([4-7],...,[12-15]).
 
* Errechne den prozentualen Anteil des besten Ergebnis aus [0-3] aus der Summe aller besten Ergebnisse.
 
* Ist der Anteil am kleinsten, so ist das Ergebnis am besten und wird am höchsten gewichtet.<br>
=== Lessons Learned ===
Das Ergebnis ist deswegen am besten, da es den kleinsten Fehler in der Posen als auch Merkmalsbestimmung besitzt (vgl. Projektunterlagen > Ergebnistabellen).<br>
 
 
 
== Projektunterlagen ==
Link zu dem SVN_Ordner des Projekt.  
 
== YouTube Video ==
Das Video von diesem Projekt finden Sie auf Youtube unter dem Link:
 
== Weblinks ==


[[Medium:Vergleich_der_Besten_example_webmap.xlsx]]<br>
[[Medium:Vergleich_der_Besten_ROOM2.2.xlsx.xlsx]]<br>


== SVN Repositorium ==
Die angepassten Simulationsdateien finden Sie unter dem folgenden Link:
https://svn.hshl.de/svn/Robotik_und_Autonome-Systeme/trunk/Mitgliederordner/2023_Benjamin_Dilly/Projektarbeit/Simulationsdateien/Simulation/openslam_bailey-slam-master


== Literatur ==
== Literatur ==
 
S. Thrun und e. al., Probabilistic Robotics, Massachusetts: The MIT Press, 2006.




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

Aktuelle Version vom 20. Februar 2024, 16:06 Uhr

Autor: Benjamin Dilly
Art: Projektarbeit
Geplanter Start: 20.02.2023
Betreuer: Prof. Schneider


Aufgabenstellung

  1. Recherche zur Partikelfilter SLAM Verfahren (Quelle: Probabilistic robotics von Sebastian Thrun)
  2. Detaillierte Erläuterung des FastSLAM 2.0
  3. Umsetzung in MATLAB auf Basis bestehender Simulationen
  4. Entwicklung von Gütekriterien
  5. Bewertung der Vor- und Nachteile anhand der Gütekriterien
  6. Dokumentation nach wissenschaftlichem Stand im HSHL-Wiki

Anforderungen an die wissenschaftliche Arbeit


Getting Started

Nutzen Sie diese Artikel, um sich in das Thema einzuarbeiten:

Einstiegvideos

Zusätzliche Verständnisvideos

Projektplan

Zusammenfassung

SLAM ist ein Verfahren, welches das Kartierungs- und Lokalisationsproblem lösen soll. Dies bedeutet die gleichzeitige Lokalisierung und Kartenerstellung. Hierbei werden Lokalisation und Kartierung im Laufe der Zeit, bis zu einem bestimmten Grad immer besser. Dieser Grad ist abhängig vom verwendeten Verfahren, der verwendeten Aktorik, Sensorik und der Parametrisierung des Algorithmus.

Es wird eingesetzt, um die Ungenauigkeit der Odometrie über bspw. Hallsensoren und oder Gierrate auszugleichen, welche mit zunehmender Zeit zu einer stetig steigenden Ungenauigkeit der Lokalisierung führt. Hierdurch kann einerseits keine akkurate Umgebungskarte erstellt werden und andererseits auch keine Navigation vorgenommen werden, da für beide Fälle eine ausreichend genaue Kenntnis der aktuellen Position und Ausrichtung des Roboters vorhanden sein muss. Das Ziel des SLAM-Verfahrens ist es hierbei, die maximale Abweichung der Lokalisierung auf einen festen Bereich zu beschränken, der über die gesamte Zeit gleich bleibt. Hierdurch kann eine Navigation und Kartenerstellung ermöglicht werden, da die maximale Ungenauigkeit auf ein akzeptierbares Niveau eingestellt werden kann.

Es gibt verschiedene SLAM-Arten wie: EKF-SLAM oder Graph-SLAM. In dieser Arbeit wurde die partikelbasierten SLAM-Verfahren FastSLAM1.0 und 2.0 behandelt. Sie zeichnen sich durch eine bessere Effizienz und Stabilität im Vergleich zu anderen SLAM-Verfahren aus. Hierbei gibt es zwei Arten: known und unknown data association. Erstere ist für simulative Zwecke geeignet. Zweitere wird verwendet, wenn noch keine Karte bekannt ist und diese erst im Laufe des Verfahrens ermittelt wird. Die Kartenerstellung ist nur erfolgreich, wenn die Umgebung genügend undynamischer Elemente enthält. Während sich bspw. Menschen in einem Park oder einem Einkaufszentrum sukzessive aus der Karte eliminieren, werden bspw. Bäume oder auch Regale oder Möbel dauerhaft festgehalten. Hierbei verliert die Karte an Aussagekraft, je mehr dieser Elemente verschwinden, d.h. wenn Möbel umgestellt oder Bäume gefällt werden.

Es gibt zwei Arten der Implementation: Landmarken und Belegtheitsrasterkarte (occupancy grid map). Erstere stellt Objekte als einen oder mehrere Koordinatenpunkte dar und ist weniger speicher- und rechenintensiver und gut zur Outdoornavigation geeignet. Um hierbei eine Rasterkarte zu erstellen, muss die erstellte Landmarkenkarte nachbehandelt werden. Hierbei ist eine sehr feine Markenauflösung vonnöten, die durch einen besseren Sensor, wie Mess- und Stellgenauigkeit, Gradauflösung und oder Rotationsgeschwindigkeit ermöglicht wird. Die Belegtheitsrasterkartenimplementation erstellt hierbei eine rasterkartenbasierte Karte der Umgebung, welche keine Nachbehandlung benötigt. Sie ermöglicht eine sehr einfache Navigation, ist jedoch Speicher- und Rechenaufwendiger und bedarf mehr Durchläufe, um ein akkurates Ergebnis zu erzielen. Zudem ist diese Variante eher für Indooranwendungen geeignet, da her die räumliche Ausdehnung begrenzt ist und mehr signifikante Informationen wie Wände, Schränke, Stühle usw. vorhanden sind, welche in einem Park fehlen, der nur spärliche Informationen bereitstellt durch bspw. einer handvoll Bäume und offener Fläche.

FastSLAM 2.0 unterscheidet sich von 1.0 in der Art der Landmarkenschätzung. Während FastSLAM 1.0 eine einfache Posenschätzung der neuen Partikelpose vornimmt und daraufhin die Messung abgleicht, versucht FastSLAM 2.0 die Pose unter allen möglichen neuen Posen zu finden, von der aus unter Berücksichtigung der Messungenauigkeit eine Landmarke am eindeutigsten gesehen werden kann. Hierdurch wird die Gewichtungsberechnung und die Posenschätzung der tatsächlichen Roboterpose verbessert.

Das Resultat des Verfahrens kann durch Verbessern der Aktorgenauigkeit oder des Lidarsensors im Sinne der Mess- und Positionierungsgenauigkeit, der Rotationsgeschwindigkeitserhöhung und der Gradauflösung verbessert werden.

Zu Vid.1 bis Vid. 10: Grüne Sterne sind Landmarken, Magenta Punkte sind geschätzte Landmarkenpositionen, rote Punkte sind Partikel, grüner Pfeil ist die tatsächliche Pose des Roboters und der blaue die geschätzte Pose des Roboters.

Projektunterlagen

Die Ergebnistabellen enthalten für jede Testkategorie die folgenden Werte:

  • Pose: In der Pose werden für jeden Schleifendurchlauf die maximale, minimale und gemittelte Distanz des jeweils höchst gewichteten Partikels zur tatsächlichen Pose [x, y] des Roboters in Meter aufgelistet.
  • Theta: Theta beschriebt das Gleiche wie die Pose. Hierbei bezieht sich Theta auf den gemessenen Fehler in der Orientierung/ Ausrichtung des jeweils höchst gewichteten Partikels zu der des Roboters, in Bogenmaß.
  • Landmarke: In dieser Kategorie wird die minimal, maximal und gemittelte Abweichung der ermittelten Landmarken des jeweils höchst gewichteten Partikels pro Schleife in Metern, zu den vorgegebenen Merkmalen, aufgelistet. Hierbei beschriebt die maximale als auch die minimale Distanz, wie auch bei allen anderen, den maximalen und minimalen Wert, der in einer gesamten Schleife gemessen wurde.

Info: Die zeitlichen Angaben in einigen der folgenden Tabellen sind nicht aussagekräftig und wurden daher bei den späteren auch nicht mehr mitgeführt.

Medium:Partikelfilter SLAM für AMR Ergebnistabelle ROOM2.2 Szenarien 0-3.xlsx
Medium:Partikelfilter SLAM für AMR Ergebnistabelle ROOM2.2 Szenarien 4-7.xlsx
Medium:Partikelfilter SLAM für AMR Ergebnistabelle ROOM2.2 Szenarien 8-11.xlsx
Medium:Partikelfilter SLAM für AMR Ergebnistabelle ROOM2.2 Szenarien 12-15.xlsx

Medium:Partikelfilter SLAM für AMR Ergebnistabelle example_webmap Szenarien 0-3.xlsx
Medium:Partikelfilter SLAM für AMR Ergebnistabelle example_webmap Szenarien 4-7.xlsx
Medium:Partikelfilter SLAM für AMR Ergebnistabelle example_webmap Szenarien 8-11.xlsx
Medium:Partikelfilter SLAM für AMR Ergebnistabelle example_webmap Szenarien 12-15.xlsx

Zusammenfassende Ergebnistabellen

Diese Vergleichstabellen vergleichen für jede Karte die besten Ergebnisse miteinander, um eine Aussage über die Qualität der einzelnen Testkategorien zu bekommen. Also ob bspw. die Testkategorie [0-3] am besten abgeschnitten hat.
Beispiel anhand von ROOM2.2:

  • Um [0-3] zu bewerten suche bestes Ergebnis aus Testkategorie [0-3].
  • Tue das Selbe mit allen anderen Testkategorien der ROOM2.2 Karte ([4-7],...,[12-15]).
  • Errechne den prozentualen Anteil des besten Ergebnis aus [0-3] aus der Summe aller besten Ergebnisse.
  • Ist der Anteil am kleinsten, so ist das Ergebnis am besten und wird am höchsten gewichtet.

Das Ergebnis ist deswegen am besten, da es den kleinsten Fehler in der Posen als auch Merkmalsbestimmung besitzt (vgl. Projektunterlagen > Ergebnistabellen).

Medium:Vergleich_der_Besten_example_webmap.xlsx
Medium:Vergleich_der_Besten_ROOM2.2.xlsx.xlsx

SVN Repositorium

Die angepassten Simulationsdateien finden Sie unter dem folgenden Link: https://svn.hshl.de/svn/Robotik_und_Autonome-Systeme/trunk/Mitgliederordner/2023_Benjamin_Dilly/Projektarbeit/Simulationsdateien/Simulation/openslam_bailey-slam-master

Literatur

S. Thrun und e. al., Probabilistic Robotics, Massachusetts: The MIT Press, 2006.



→ zurück zum Hauptartikel: Studentische Arbeiten