Self Localization and Mapping (SLAM) mit Lidar- oder Kamera
Autor: Martin Berysztak
Betreuer: Prof. Schneider
Aufgabenstellung
- Inbetriebnahme Hardware an einem Lego Mindstorms NXT oder EV3
- Regelung eines Fahrzeugs in der Mitte eines Ganges
- Kartografierung der Umwelt
- Rückfahrt auf dem schnellsten Weg
- Kartografierung der Strecke
- Optimierung der Fahrparameter (Geschwindigkeit, optimaler Kurs)
- Dokumentieren Sie Ihre Vorgehensweise fortlaufend wissenschaftlich.
SLAM Theorie
Formulierung des SLAM Problems
Ein mobiler Roboter baut eine Karte in einem unbekannten Gebiet gleichzeitig weiß er immer wo er sich gerade befindet.
Der Roboter muss zur Lösung dieses Problems über die Möglichkeit verfügen mithilfe von Sensorik Landmarken zu ermitteln.
Das Szenario wird durch folgendes Modell beschrieben:
Das Modell wird in Zeitschritten angegeben. Zu jedem Zeitpunkt k sind folgende Sachen bekannt:
- - Roboterpose: Position und Orientierung(Blickfeld) des Roboters
- - Steuersignal: Angestrebte Position - Orientierungsänderung beim Übergang von zu
- - Menge Tatsächliche Position aller Landmarken
- - Menge Zum Zeitpunkt beobachtete Position der Landmarke relativ zum Roboter, wobei die jeweils beobachtete Position einer Landmarke ist.
Zum Zeitpunkt sind dadurch dann folgende Werte bekannt:
- Roboterpose
- Steuersignal
- Die Beobachtete Landmarken-Position bis zum Zeitpunkt .
- Zustandsübergang
- Allgemein ist alles definiert. Nun wird die Zustandsänderung also die Bewegung des Roboters beschrieben. Hierbei ist zu beachten, dass jede Bewegung Odometriefehler zur Folge hat. Odometriefehler können viele Ursachen haben, wie zum Beispiel ein Hügel oder ein Burnout der Reifen. Dadurch ist jede Odometriemessung unsicher.
Um diese Unsicherheit zu bekämpfen wird das Modell in probabilistischer Form beschrieben. Probalistisch sagt, dass eine Wahrscheinlichkeitsaussage über das bestehende Modell bzw. den nächsten Zeitpunkt und die damit verbundenen Werte wie die neue Roboterpose getätigt wird. Eine Wahrheitsverteilung für die Zustandsübergange wird aufgestellt und beschrieben durch.
Die Position und Orientierung des Roboters ist verbunden mit der gesehenen Landmarken Positionen durch:
- - Startposition des Roboters
- - Die Vorgeschichte aller Steuersignale
- - Die Vorgeschichte aller Landmarken Positionen relativ zum Roboter
Das Bedeutet zu jedem Zeitpunkt fließen die kompletten Werte aller vergangenen Zeitschritte mit der selben Gewichtung ein. Dies führt zu einem hohen Rechenaufwand und langen Rechenzeiten bei längeren Messungen. Wünschenswert wäre ein rekursives Modell.Dazu kann einen neues Beobachtungsmodell dienen, welches die Wahrscheinlichkeit, eine bestimmte Beobachtung zu machen.
- Die Beobachtung der Landmarken Position hängt von der Roboterpose und der tatsächlichen Position der Landmarke ab.
- Die Roboterpose hängt ab von der letzten Position und dem Steuersignal ab.
Um diese Wahrscheinlichkeit zu lösen wird ein zweistufiges-rekursives Verfahren benötigt:
- Schritt 1
- Schätzung der Verbundverteilung für die Roboterpose und der Landmarken Position unter der Nutzung des Bewegungsmodells:
- Schritt 2
-
Extended Kalman-Filter
Um das zuvor beschriebene Problem zu lösen, werden in der Literatur viele verschiedene Methoden genannt. In diesem Abschnitt wird der theoretische Lösungsansatz mithilfe des Erweiterten Kalman-Filters beschrieben. Auf die genaue Funktionsweise des Kalman-Filter wird nicht eingegangen.
Das einfache Kalman-Filter lässt sich nur auf lineare Systeme anwenden. Aus diesem Grund wird ein erweiteter Kalman-Filter eingesetzt.
Das Extended Kalman-Filter verwendet zum lösen des Problems die aufgenommen Odometriedaten und die gemessenen Daten der Umgebung, in diesem Fall Lidardaten. Aus der Kombination dieser zwei Daten lässt sich eine Positionsschätzung angeben. Diese Schätzung dient dazu die Unsicherheit zu verringern. Das System driftet über die Zeit immer weiter ab, dadruch wird die berechnete Position immer ungenauer. Dieses Driften wird mit dem EKF unterbunden.
Das Kalman-Filter setzt beim zuvor beschriebenen Zustandsübergang also beim bewegen des Roboters ein. Dieser Übergang teilt sich dann in zwei Schritte:
- 1.Vorhersageschritt
- Die aktuellen Odometriedaten werden für die Positionsschätzung verwendet. Dadurch entsteht eine neue Positionsschätzung wo der Roboter sich jetzt befinden sollte. Diese Schätzung ist aufgrund der fehleranfälligen Odometriedaten.
- 2.Korrekturschritt
- In diesem Schritt werden die Daten des Lidarsensors zur Positionsbestimmung mit ein. Die Merkmale (Landmarken) aus vergangenden Messungen werden mit der aktuellen Messung abgeglichen. Die Differenz dieser Merkmaldaten wird bestimmt. Anhand dieser Differenz wird die zuvor geschätzte Position korrigiert.
- Mathematischer Hintergrund
- Das Kalman-Filter schätzt folgende Parameter zum Zeitpunkt mit Hilfe des zweistufigen-rekrusiven Verfahrens, welches zuvor beschrieben wurde:
- - Erwartungswert
- k - Kovarianz einer Normalverteilung
Weil das erweiterte Kalman-Filter ein nicht-lineares Problem linealisiert entsteht ein Genauigkeitsverlust. Unter Verwendung eines Zustandsraummodells werden hierbei Störungen und Unsicherheiten
durch Gaußverteilungen approximiert. Dadurch sind folgende Dinge bekannt:
- - Bewegungstransformation.
- - Gauss'sche Störung
Daraus folgt, dass sich die Roboterpose wie folgt darstellen lässt:
Das Beobachtungsmodell lässt sich ebenfalls als Summe einer Koordinatentransfomation darstellen . Zur der Koordinatentransformation muss eine Gauss'sche Störung dazu addiert werden. Die Beobachteten Landmarken Positionen lassen sich so darstellen:
- - Fehlerloser Fall
Mithilfe der Funktion lassen sich die Landmarken aus dem globalen Koordinatensystem der Karte in die Koordinaten der aktuellen Roboterpose übertragen.
- EKF linearisieren
- Wie oben bereits erwähnt handelt es sich bei diesem Modell um ein Nicht-lineares Modell. Das Modell wird beim EKF durch die Tayler Näherung erster Ordnung linearisiert.
Anforderung
Besuch der Veranstaltung Praxisseminar
Empfohlene Zusatzkurse
Siehe auch
Weblinks
- SLAM (Simultaneous Localization and Mapping) for beginners: the basics
- SLAM 4 Dummies
- OpenSLAM
- EKF-SLAM Toolbox for MATLAB
- YouTube:SLAM in MATLAB (Weighted Scan Matching & Wheel Odometry)
- YouTube: Laser scanner localization and mapping
- TinySlam: tinySLAM is Laser-SLAM algorithm which has been programmed in less than 200 lines of C-language code.
- SLAM an der TU Chemnitz
- Matlab SLAM Homepage
- SLAM w/ Hokyu Laser Ranger Finder
- An Evaluation of 2D SLAM Techniques Available
- Towards Model-Free SLAM Using a Single Laser Range Scanner for Helicopter MAV
- Udacity - Artificial Intelligence for Robotics
- Intro to Statistics
- EKF-SLAM TOOLBOX FOR MATLAB
- SLAM Package of Tim Bailey
- ROS (Robot Operating System)
- C4B Mobile Robots Example Matlab Code
- Simultaneous Localisation and Mapping (SLAM) in MATLAB
Literatur
- Probabilistic Robotics
- Simultaneous Localization and Mapping: Exactly Sparse Information Filters
- 3D Robotic Mapping: The Simultaneous Localization and Mapping Problem
- Simultaneous Localization and Mapping Algorithms with Environmental-Structure
- FastSLAM: A Scalable Method for the Simultaneous Localization and Mapping Problem in Robotics
- Autonomous Robot Navigation Based on Simultaneous Localization and Mapping
- think Bayes
→ zurück zum Hauptartikel: Studentische Arbeiten