9 SLAM Simultaneous Localization and Mapping

Ähnliche Dokumente
SLAM-Verfahren Synchrone Lokalisierung und Kartenerstellung

Fast-SLAM: Synchrone Lokalisierung und Kartenerstellung mit einem Partikel-Filter

SLAM. Simultaneous Localization and Mapping. KogSys-Sem-M2: Reading Club - SLAM - Andreas Habermann

HAW Hamburg Anwendung 1 - Vortrag Andrej Rull

Lokalisierung. von Matthias Heine, Norbert Müller, Silvia Schreier, Oliver Zöllner

κ Κα π Κ α α Κ Α

HAW Hamburg Anwendung 2 - Vortrag Andrej Rull

Kalman-Filter und Target Tracking

Klasse WI06b MLAN2 zweite-klausur 13. Juni 2007

Visuelle Information zur robusten Zuordnung von Landmarken für die Navigation mobiler Roboter

Simultaneous Localisation And Mapping SLAM

Algorithmen für Sensornetze

Grundlagen der Objektmodellierung

Anordnungstechniken für konvektionsdominante Probleme im Ê 3. Dimensionsunabhängige Verfahren. Algorithmen für planare Graphen. Numerische Beispiele

Aufgabe 4.1 Robotermodell (1)

Stochastische Selbstlokalisation I

Algorithmische Methoden zur Netzwerkanalyse

1 falls x 2. falls x = 1 und. 0 falls x > 1. eine Lebesgue-integrierbare Majorante. Somit können wir den Satz von Lebesgue anwenden:

Algorithmen zur Visualisierung von Graphen

1 Ableitungen. Definition: Eine Kurve ist eine Abbildung γ : I R R n, γ besteht also aus seinen Komponentenfunktionen. a 1 + tx 1. eine Kurve.

Der diskrete Kalman Filter

GNSS/IMU Integration für die präzise Bestimmung einer Flugtrajektorie

1.8 Shift-And-Algorithmus

Stabilitätsfragen bei autonomen Systemen

Nichtlineare Ausgleichsrechnung

09. Lineare Abbildungen und Koordinatentransformationen

Übungen zu Theoretische Physik I - Mechanik im Sommersemester 2013 Blatt 7 vom Abgabe:

47 Singulärwertzerlegung

Odometrie und lokale Karten

Teach-In für die 3D-Scan Akquise mit einem Roboter. Teach-In für die 3D-Scanakquise mit einem mobilen Roboter

Modellierung von Unsicherheit in Systemen

KLAUSUR. Name: Vorname: Matr. Nr./Studiengang: Versuch Nr.:

Was ist Robotik? Robotik heute:

Kalmanfilter und Nichtparametrische Filter. Bayesfilter

Quadrocopters and it s Applications: Overview of State of the Art Techniques

Ausgleichungsrechnung - nach der Methode der kleinsten Quadrate -

DSGE-Modelle. Linearisierung und Lösung. Institut für Ökonometrie und Wirtschaftsstatistik Münster

Radgetriebene Systeme

Übungen zur Ingenieur-Mathematik III WS 2011/12 Blatt Aufgabe 25: Berechnen Sie den kritischen Punkt der Funktion

Lösungen zu den Hausaufgaben zur Analysis II

Statistics, Data Analysis, and Simulation SS 2017

3. Übungsblatt Aufgaben mit Lösungen

Aufgabe 1. Die Determinante ist eine lineare Abbildung von C n n nach C? Nein (außer für n = 1). Es gilt det(λa) = (λ) n det(a).

Lösungsskizzen zu den Klausuraufgaben zum Kurs 1142 Algorithmische Mathematik. a 0 = 0 =

Blatt 1. Kinematik- Lösungsvorschlag

Lineare Klassifikationsmethoden

12 Lineare Differentialgleichungen mit periodischen Koeffizienten

Autonom-Explorierender Hexapod-Roboter

Graphbasiertes SLAM mit integrierter Kalibrierung für mobile Roboter

Einführung in die Robotik

Institut für Geometrie und Praktische Mathematik

Gaußsche Ausgleichsrechnung

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Theoretische Grundlagen der Informatik

1 Analytische Geometrie und Grundlagen

Brownsche Bewegung. Satz von Donsker. Bernd Barth Universität Ulm

Kurztest zur Numerik I WiR AG, Dep. Mathematik, NT-Fakultät, Universität Siegen

Simultane Mehrgleichungssysteme: Parameterschätzung

Lineare Gleichungssysteme

2.3.4 Drehungen in drei Dimensionen

Gaußsche Felder und Simulation

Identifizierbarkeit von Modellen

Fakultät für Informatik Übung zu Kognitive Systeme Sommersemester 2016

Beispiel: Positionsschätzung

6.3.1 Allgemeiner Bayes-Filter

1.3 Knuth-Morris-Pratt-Algorithmus

Numerische Mathematik

TECHNISCHE UNIVERSITÄT MÜNCHEN

Lineare Algebra für D-ITET, D-MATL, RW. Beispiellösung für Serie 4. Aufgabe 4.1. Dr. V. Gradinaru D. Devaud A. Hiltebrand.

Innere-Punkt-Methoden

Vorlesung Wissensentdeckung

Wintersemester 2004/ Februar 2005

Charakteristische Funktionen

Biologisch motivierter SLAM Algorithmus

Drehung. Die orthogonale n n-matrix 1 0. c s. Zeile j. s c

Brückenkurs Mathematik. Mittwoch Freitag

Adaptive Systeme. Prof. Dr.-Ing. Heinz-Georg Fehn Prof. Dr. rer. nat. Nikolaus Wulff

(u, v) z(u, v) u Φ(u, v) (v = const.) Parameterlinie v = const. v Φ(u, v) (u = const.) Parameterlinie u = const.

Wir betrachten hier den Polarisationszustand einer Normalmode

Numerik III trifft inverse Probleme

Basen von Schnitt und Summe berechnen

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Orthogonalreihendarstellung eines zentrierten Gauß-Prozesses

Kapitel 9: Lineare Programmierung Gliederung

Algorithmische Methoden zur Netzwerkanalyse Vorlesung 13, Henning Meyerhenke

KAPITEL 5. Nichtlineare Gleichungssysteme

Die Klasse NP und die polynomielle Reduktion

10. Übung zur Linearen Algebra I -

Kommentierte Musterlösung zur Klausur HM II für Naturwissenschaftler

Kapitel 4: Nichtlineare Nullstellenprobleme

Das Prinzip der Suchmaschine Google TM

Computer Vision: Kalman Filter

Lösungen zu Übungsblatt 9 Höhere Mathematik2/Stochastik 2 Master KI/PI

Vorlesung Maschinelles Lernen

Kalmanfiter (1) Typische Situation für den Einsatz von Kalman-Filtern

Lösung Semesterendprüfung (Nachprüfung)

Algebraische und arithmetische Algorithmen

Seite 1. sin 2 x dx. b) Berechnen Sie das Integral. e (t s)2 ds. (Nur Leibniz-Formel) c) Differenzieren Sie die Funktion f(t) = t. d dx ln(x + x3 ) dx

Transkript:

9 SLAM Simultaneous Localization and Mapping

Einleitung eines der aktivsten Forschungsgebiete innerhalb der Robotik Roboterlokalisierung bei gegebener Karte (Kap. 8 und Karte aus Sensordaten bei bekannter Position (Kap. 7 sind relativ einfach beide Probleme aber gleichzeitig zu lösen ist schwierig aktuelle Algorithmen verwenden probabilistische Ansätze, um Unsicherheiten explizit zu modellieren deterministische Ansätze sind meist schlechter

Einleitung Eingabe: Sensordaten Kontrollkommandos des Roboters (Fahren Gesucht: Schätzung der Karte Pfad des Roboters (alle bisherigen Positionen

Probleme Sowohl Positionen der Landmarken als auch Roboterweg sind unbekannt Die Zuordnung von Sensordaten zu Landmarken sind in der Regel unbekannt Roboter muss entscheiden, ob Sensordaten zu einer bereits beobachteten Landmarke zugeordnet werden können oder zu einer noch nicht gesehenen Landmarke Zuordnungsproblematik wird durch Fehler im Roboterweg verstärkt Fehler kann prinzipiell unbegrenzt wachsen

SLAM Graph 1 E Fehler A Rob C D B Roboter sieht die Landmarken A und B.

SLAM Graph 2 Fehler E A C D Rob B Nach Bewegung des Roboters nimmt die Genauigkeit der Lokalisierung ab Die Unsicherheit der Positionsschätzungen der Landmarken C und D steigt

SLAM Graph 3 A C E D Rob B Roboter erkennt eine bereits gesehene Landmarke wieder

SLAM Graph 4 A C E D Rob wird genauer B rekursive Verbesserung (Optimierung

Problem Datenassoziation Sobald Landmarken nicht eindeutig unterscheidbar sind, muss die Frage beantwortet werden, in welchen Fällen zwei gleich aussehende Landmarken tatsächlich dieselbe Landmarke waren Macht der Roboter hier Fehler, kann das starke Auswirkungen auf die Lösung (Karte haben

Lösung des SLAM Problems Aufbau des Graphen Optimierung

SLAM Simultaneous Localization and Mapping p( x t, m z 1:t, u 1:t p ( x t, m, c t z 1:t, u 1:t Online SLAM Problem (inkrementelles SLAM p ( x 1:t, m z 1: t, u 1:t p ( x 1:t, m, c 1 :t z 1 :t, u 1 :t Full SLAM Problem (vollständiges SLAM

Full SLAM

Online SLAM

Verfahren EKF SLAM verwendet Extended Kalman Filter Online Fast SLAM verwendet Partikel Filter Graph SLAM vollständiges SLAM

Verfahren Niko Sünderhauf

9.1 Simple SLAM Einfaches Modell

Simple SLAM Roboterposition ( x r, y r N Landmarken (Positionen: ( x l 1, y l1 ( x l 2, y l 2 ( x l, y l N N

Simple SLAM - Zustand x t =( x r (t, y r (t, x l 1, y l1,, x li, y li, x l N, y l N T Bewegung Omnidirektionales Bewegungsmodell (Antrieb in alle Richtungen (Roboterfront zeigt immer in gleiche Richtung u t =(v x (t, v y (t T

Simple SLAM Bewegungsgleichung x t = A t x t 1 +B t u t +ε t Bt=(1 0 0 0 1 0 A t =(1 1 0 0 0 0 1 0 0 0 0 Landmarken bewegen sich nicht 0 0 ε t =(ε rx (t, ε ry (t,0,0,,0 T (ε rx (t, ε ry (t T N (0,V rt ε t N (0, V t V t =(V rt 0 0 0 0 0 0 0 0

Simple SLAM Sensordaten Landmarken seien eindeutig identifizierbar, für jede Landmarke wird ihre Position relativ zum Roboter gemessen =( z1(t x r (t y y r (t z t z i (t x l x N r (t z N (t =(xl1 y l N y r (t

Simple SLAM - Messgleichung z t = H t x t +δ t H t =(H 1(t H 2 (t H N (t H i =( 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 (2i+1-te Spalte

Simple SLAM Messgleichung δ t N (0, W t δ t =(δ 1 (t, δ 2 (t,, δ N (t T z t = H t x t +δ t δ i (t N (0, W it 1t 0 0 0 W W t =(W 2t 0 0 0 W Nt

Simple SLAM Kalmanfilter Damit sind alle alle Systemparameter (lineares System! festgelegt und der lineare Kalman-Filter-Algorithmus kann direkt verwendet werden.

Simple SLAM Erweiterungen Das Bewegungsmodel kann erweitert werden. Zur Roboterposition kommt dann noch die Orientierung dazu. Statt bei jeder Landmarke die relative Position zu messen, kann auch Abstand und Orientierung gemessen werden. Zusätzlich kann noch das Problem der Zuordnung der Messdaten zu den Landmarken- Nummern dazukommen. EKF SLAM

9.2 EKF SLAM

EKF SLAM erster SLAM Algorithmus verwendet erweiterten Kalmanfilter Online SLAM bekannte Korrespondenzen zu den Landmarken unbekannte Korrespondenzen zu den Landmarken

Beispiel Roboterposition Landmarken (8 Hier sieht der Roboter die erste Landmarke erneut, sämtliche Unsicherheiten werden erheblich kleiner.

EKF SLAM zu berechnen: p( y t z 1: t,u 1:t =( y x m t t y t =( x, y,θ,m 1, x, m 1, y, s 1,, m N, x, m N, y, s N T

EKF SLAM μ 0 =(0,0,,0 T 3N+3 - Vektor (3N+3 (3N+3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Σ 0 =(0 0 0 0 0 0 0 0 0 - Matrix

EKF SLAM y t = y t 1 + F x T ( v t w t sin θ + v t w t sin (θ +w t Δt v t w t cosθ v t w t cos(θ +w t Δt w t Δt y t =g (u t, y t 1 +N (0, F x T R t F x +N (0, F T x R t F x F x =( 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 3 N

EKF SLAM y t =g (u t, y t 1 +N (0, F x T R t F x g (u t, y t 1 g (u t, μ t 1 +G t ( y t 1 μ t 1 G t = I +F x T g t F x v t ( cos( μ w t 1,θ +cos( μ t 1, θ +w t Δt t v t 0 0 ( sin( μ w t 1,θ +sin ( μ t 1,θ +w t Δt t 0 0 0 g t =(0 0

EKF SLAM μ t =g ( u t, μ t 1 = μ t 1 + F x T ( v t w t sin θ + v t w t sin (θ +w t Δt v t w t cosθ v t w t cos(θ +w t Δt w t Δt θ= μ t 1,θ Σ t =G t Σ t 1 G t T +F x T R t F x

Sensorbeobachtungen

EKF SLAM Landmarke j wird zum ersten Mal gesehen: ( μ j, x μ j, y, x t, y i μ j, s=( μt s t +(rt i cos(φ i t + μ t, θ r i t sin (φ i t + μ t,θ 0 δ=( δ x y δ = j, x μ t, x ( μ y μ j, y μ t, q=δ T δ

EKF SLAM =( i s t i t z i i t =(r φ t (m j, x x 2 +(m j, y y 2 atan 2( m j, y y, m j, x x θ+n (0, Q t m j, s m={m 1,, m N } m j =(m j, x, m j, y, m j, s T j=c t i z t i =h( y t, j +N (0, Q t h ( y t, j h( μ t, j+h t i ( y t μ t 2 r 0 0 2 Q t =(σ 0 σ φ 0 0 0 σ s 2

EKF SLAM h( y t, j h( μ t, j+h t i ( y t μ t H t i =h t i F x, j q( H i t = 1 q δ x q δ y 0 q δ x q δ y 0 δ y δ x 1 δ y δ x 0 x, j 0 0 0 0 0 1 F

EKF SLAM H t i =h t i F x, j 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 F x, j =(1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 3 j 3 3 N 3 j

EKF SLAM for all features z t i : S t i = H t i Σ t (H ti T +Q t K t i = Σ t (H ti T (S ti 1 q ( μ t = μ t +K i t ( z i t atan 2(δ y,δ x μ t,θ Σ t =( I K t i H t i Σ t μ j, s μ t = μ t Σ t = Σ t

9.3 Graph SLAM

9.3.1 Pose Graph SLAM Problem

Idee Karte alle Roboterpositionen, keine Landmarken Graph (Pose Graph zur Repräsentation des Problems Knoten Roboterpositionen Kante Constraint zwischen 2 Knoten (Odometrie Messung Konstruiere den Graphen und finde eine Knotenmenge, die einen Fehler über alle Constraints minimiert

Karte und Pose Graph 2D Welt: x =( x, y,θ T Roboterpositionen: x 0, x 1, Pose Graph: x 0 x 1 x 2 x 3 x 4 Odometrie Constraints

Weg des Roboters

Roboter sieht Positionen erneut

Kanten Constraints x 0 x 1 x 2 x 3 x 4 Bewegungsmodell Odometrie: x i+ 1 =g( x i,u i +w i w i N (0,Σ i x i+ 1 N (g ( x i,u i, Σ i Normalverteilung

Kanten Constraints Loop closure constraints: x 0 x 1 x 2 x 3 x 4 Der Roboter sieht eine Position erneut. x j N (g (x i, u i, j, Λ ij

Graph SLAM Optimierung Gegeben: u i, u ij U Gesucht: X * X *=argmax X x i X P ( X U

Graph SLAM Optimierung X *=argmax X P ( X U P ( X U =α i P (x i +1 x i,u i i, j P (x j x i,u i, j Odometry Constraints Loop Closure Constraints

Graph SLAM Optimierung P ( X U =α i Squared Mahalanobis distance: P (x i +1 x i,u i i, j P (x j x i,u i, j a b Σ 2 =(a b T Σ 1 (a b P (x i +1 x i,u i =ηe 1 2 g (x i, u i x i+1 Σ i 2 P (x j x i,u ij =ηe 1 2 g (x i, u ij x j Λ i, j 2

Graph SLAM Optimierung P ( X U =η i e 1 2 g( x i,u i x i+1 Σ i 2 i, j e 1 2 g ( x i,u i, j x j Λ ij 2 log(p( X U =η( g (x i,u i x i +1 Σi i 2 + i, j g ( x i,u i, j x j 2 Λij X *=argmax X P ( X U X *=argmin log P( X U X

Graph SLAM Optimierung X *=argmin log P( X U X X *=argmin( g ( x i,u i x i+ 1 Σi X i 2 + i, j g ( x i, u i, j x j 2 Λij (weighted least squares optimization problem

Least Squares Optimization Problem f i : R m R x R m x =( x 1,, x m T n F (x = 1 2 i=1 f i ( x 2 F (x = 1 2 f ( xt f (x f (x =( f 1 (x, f 2 (x,, f n ( x T Optimierungsproblem: x *=argmin x F (x =argmin x 1 2 f (x T f ( x

Weighted Least Squares Optimization Problem x *=argmin x F (x =argmin x 1 2 f (x T Ω f (x F = 1 2 i f i 2 Σi = 1 2 f T Σ 1 f = 1 2 f T Ω f covariance matrix information matrix

Lösung Gauss Newton x *=argmin x F (x =argmin x 1 2 f (x T Ω f (x Iteration: x 0 x x+δ x J = f x J T Ω J Δ x= J T Ω T f (x

Beispiel u 0 u x 0 x 1 u 1 x 2 u 2 x 3 3 x 4 u 0,4 prior constraint odometry constraints loop closure constraints

Beispiel u 0 u x 0 x 1 u 1 x 2 u 2 x 3 3 x 4 u 0,4 exakter Wert Messung u 0 1 1.1 u 1 1 1.0 u 2 1 1.1 u 3-3 -2.7 u 0,4 0 0

Beispiel u 0 u x 0 x 1 u 1 x 2 u 2 x 3 3 x 4 u 0,4 exakter Wert Messung x 0 0 0.0 x 1 1 1.1 x 2 2 2.1 x 3 3 3.2 x 4 0 0.5

Beispiel u 0 u x 0 x 1 u 1 x 2 u 2 x 3 3 x 4 u 0,4 Constraints: g (x i, u i x i +1 Σi 2 2 = x i +u i x i +1 Σi i=0,1,2,3 g (x 0,u 0,4 x 4 Λ0,4 2 2 = x 0 +u 0,4 x 4 Λ0,4 x 0 0 Π 2 prior constraint

Beispiel u 0 u x 0 x 1 u 1 x 2 u 2 x 3 3 x 4 x *=argmin x x0+u0 x1 x 1 +u 1 x 2 x f (x =( 2 +u 2 x 3 x 3 +u 3 x 4 x 0 +u 0,4 x 4 x 0 0 Ω=(0.01 u 0,4 F (x=argmin x 1 2 f (x T Ω f (x 0 0 0 0 0 0 0.01 0 0 0 0 0 0 0.01 0 0 0 0 0 0 0.01 0 0 0 0 0 0 0.01 0 0 0 0 0 0 0.001 1

Beispiel u 0 u x 0 x 1 u 1 x 2 u 2 x 3 3 x 4 x *=argmin x x0+u0 x1 x 1 +u 1 x 2 x f (x =( 2 +u 2 x 3 x 3 +u 3 x 4 x 0 +u 0,4 x 4 x 0 0 Ω=(100 u 0,4 F (x=argmin x 1 2 f (x T Ω f (x 0 0 0 0 0 0 100 0 0 0 0 0 0 100 0 0 0 0 0 0 100 0 0 0 0 0 0 100 0 0 0 0 0 0 1000

x *=argmin x x0+u0 x1 x 1 +u 1 x 2 x f (x =( 2 +u 2 x 3 x 3 +u 3 x 4 x 0 +u 0,4 x 4 x 0 0 J = f x = ( f x 0 F (x=argmin x f x 1 Ω=(100 f x 2 Beispiel 1 2 f (x T Ω f (x 0 0 0 0 0 0 100 0 0 0 0 0 0 100 0 0 0 0 0 0 100 0 0 0 0 0 0 100 0 0 0 0 0 0 1000 f x 3 =(1 1 0 0 0 f 4 0 1 1 0 0 0 0 1 1 0 x 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0

Beispiel Iteration J T Ω J Δ x= J T Ω T f (x x x+δ x x 0 =(0 1.1 2.1 3.2 0.5 T

9.3.2 Graph SLAM mit Landmarken

Graph SLAM mit Landmarken Full SLAM Knoten sind Roboterpositionen und Landmarken Kanten beschreiben Bewegungen und Sensorbeobachtungen Kanten sind nichtlineare Constraints zugeordnet

Graph SLAM mit Landmarken wird minimiert

Konstruktion

Konstruktion

Konstruktion