pdf Datei / 1.7 MB - robocup.hs-weingarten.de

Transcription

pdf Datei / 1.7 MB - robocup.hs-weingarten.de
Hochschule für Technik und Sozialwesen Ravensburg-Weingarten (FH)
Untersuchung von statistischen
Selbstlokalisierungsmethoden
in der mobilen Robotik
Projektarbeit am Institut für Informatik
Fachbereich Elektrotechnik und Informatik
Hochschule Ravensburg-Weingarten
University of Applied Sciences
von
Nico Hochgeschwender
Betreuer:
Herr Prof.Dr.rer.nat. W.Ertel
Institut für Informatik (Robocup-Team)
Ich erkläre hiermit, dass ich die vorliegende Arbeit selbständig verfasst und keine
anderen als die angegebenen Quellen und Hilfsmittel verwendet habe.
Weingarten, den 23. Juni 2005
Inhaltsverzeichnis
1 Einleitung
1.1
1
Zielsetzung der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Selbstlokalisierung
2
3
2.1
Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2
Problemklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.3
Verfügbare Information . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3.1
A priori Information . . . . . . . . . . . . . . . . . . . . . . .
4
2.3.1.1
Landkarten . . . . . . . . . . . . . . . . . . . . . . .
4
Information durch Navigation . . . . . . . . . . . . . . . . . .
4
2.3.2.1
6
2.3.2
Landmarken
. . . . . . . . . . . . . . . . . . . . . .
3 Selbstlokalisierungsmethoden
3.1
3.2
Lokalisierung mit Odometrie . . . . . . . . . . . . . . . . . . . . . . .
7
3.1.1
8
Zusammenfassung und weiterführende Literatur . . . . . . . .
Bayes Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1
Beispiel: Ein generischer Bayesfilter . . . . . . . . . . . . . . . 12
3.2.2
Kalman Filter (KF ) . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.3
3.3
7
3.2.2.1
Formale Definition . . . . . . . . . . . . . . . . . . . 14
3.2.2.2
Algorithmus . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.2.3
Beispiel zu einem KF
3.2.2.4
Extended Kalman Filter (EKF ) . . . . . . . . . . . . 17
3.2.2.5
Zusammenfassung und weiterführende Literatur . . . 18
. . . . . . . . . . . . . . . . . 16
Monte Carlo Methode (MCM ) . . . . . . . . . . . . . . . . . . 18
3.2.3.1
Beispiel: Ein eindimensionaler PF
. . . . . . . . . . 18
3.2.3.2
Der PF Algorithmus . . . . . . . . . . . . . . . . . . 20
3.2.3.3
Beispiel zu einem PF . . . . . . . . . . . . . . . . . . 20
3.2.3.4
Zusammenfassung und weiterführende Literatur . . . 22
Vergleich zwischen PF und KF . . . . . . . . . . . . . . . . . . . . . 22
ii
Inhaltsverzeichnis
4 Zusammenfassung
23
A Abkürzungen und Symbole
25
B Graphiken
27
B.1 Kalman Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
C Tabellen
29
C.1 Vergleich von Topologischen und Metrischen Landkarten . . . . . . . 29
D Theoretische Grundlagen
31
D.1 Gesetze der Wahrscheinlichkeit . . . . . . . . . . . . . . . . . . . . . 31
D.1.1 Axiome der Wahrscheinlichkeit . . . . . . . . . . . . . . . . . 31
D.1.2 Erwartungswert, Varianz und Kovarianz . . . . . . . . . . . . 32
D.1.2.1 Erwartungswert . . . . . . . . . . . . . . . . . . . . . 32
D.1.2.2 Varianz . . . . . . . . . . . . . . . . . . . . . . . . . 32
D.1.2.3 Kovarianz . . . . . . . . . . . . . . . . . . . . . . . . 32
D.1.3 Bedingte Wahrscheinlichkeit . . . . . . . . . . . . . . . . . . . 32
D.1.4 Produkt -und Summengesetz der Wahrscheinlichkeit . . . . . . 32
D.1.5 Kettenregel und Unabhängigkeit . . . . . . . . . . . . . . . . . 33
D.2 Bayes-Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
E Sourcecode
35
E.1 Sourcecode zur Odometrie . . . . . . . . . . . . . . . . . . . . . . . . 35
E.1.1 Hauptprogramm . . . . . . . . . . . . . . . . . . . . . . . . . 35
E.1.2 Benötigte Funktionen . . . . . . . . . . . . . . . . . . . . . . . 36
E.2 Sourcecode zum PF
. . . . . . . . . . . . . . . . . . . . . . . . . . . 38
E.2.1 Hauptprogramm . . . . . . . . . . . . . . . . . . . . . . . . . 38
E.2.2 Benötigte Funktionen . . . . . . . . . . . . . . . . . . . . . . . 39
Literatur
43
1. Einleitung
Mobile Roboter werden schon in naher Zukunft in unserem alltäglichen Leben an
Bedeutung gewinnen. Schon heute spielen sie Fussball1 oder saugen Staub2 . Der Roboter Sage [LuBo99]3 (Siehe Abbildung 1.1) zum Beispiel führt Besucher durch die
Dinosaurier Ausstellung des Carnegie Museum of Natural History4 und informiert
die Besucher mit einer Sprachausgabe über die jeweiligen Exponate. Zum erstenmal
entscheiden Maschinen selber, man denke zum Beispiel an die Fussball spielenden
Roboter im Robocup5 , Wohin und Wie sie sich zu einem Ziel bewegen. Diese gewünschte Mobilität impliziert Navigation [ArSi00] welche sich nach [J.L.99] in drei
zentrale Fragen zusammenfassen lässt:
1. wo bin ich ?
2. wo will ich hin ?
3. wie komme ich dort hin ?
Die Frage wo bin ich ?” bezeichnet das Lokalisierungsproblem [ArSi00] und ist
”
eine der fundamentalsten Fragen in der mobilen Roboternavigation [J.Co91]. Ohne eine exakte Beantwortung dieser Frage ist es nicht möglich intelligente Roboter
zu entwickeln die zum Beispiel im Robocupumfeld einen möglichst schnellen Pfad
zum gegnerischen Tor planen. Dabei liegt die Schwierigkeit in der mobilen autonomen Roboternavigation darin, das nur Sensordaten der Plattform z.B Vision, RFID,
Laserscanner usw. zur Verfügung stehen. Während z.B in der Robocup SmallSizeLeague6 Deckenkameras zur Lokalisierung verwendet werden können, besteht diese
Möglichkeit bei autonomen mobilen Robotern nicht.
1
www.robocup.fhwgt.de
www.kaercher.de
3
http://www-2.cs.cmu.edu/ illah/SAGE/
4
http://www.carnegiemnh.org/
5
www.robocup.org
6
http://www-2.cs.cmu.edu/7Ebrettb/robocup/
2
2
1. Einleitung
Doch nicht nur im Robocupumfeld sondern im wirtschaftlichen sehr interessanten
Bereich der Servicerobotik7 spielen die oben genannten Fragen eine wichtige Rolle.
Die vorliegende Arbeit wird auf die entscheidene Frage nach dem wo bin ich ?”
”
eingehen und Verfahren zur Lösung des Lokalisierungsproblem vorstellen.
Abbildung
1.1:
Sage
ein
Museumsroboter.
Quelle:http://www-
2.cs.cmu.edu/˜illah/SAGE/
1.1
Zielsetzung der Arbeit
Die vorliegende Arbeit, welche im Rahmen meiner Projektarbeit im Studiengang
Angewandte Informatik an der HS Weingarten enstanden ist, hat zum Ziel Selbstlokalisierungsverfahren theoretisch und experimentiell zu betrachten. Der Schwerpunkt
liegt dabei jedoch auf probalistische Verfahren wie z.B den Kalmanfilter.
7
www.service-robots.org
2. Selbstlokalisierung
Dieses Kapitel widmet sich den Definitionen und Grundlagen der Selbstlokalisierung.
2.1
Definition
Wie in Kapitel 1 eingeführt, wird die Frage wo bin ich ?”, als das Lokalisierungs”
problem bezeichnet. Darunter versteht man die Bestimmung der robot pose. Die
robot pose setzt sich aus Komponenten des Ortes und der Orientierung zusammen [J.L.99][S.M.03].


x(k)
(2.1)
X(k) ≡  y(k) 
Θ(k)
Die Komponenten x(k) und y(k) sind die kartesischen Positionskoordinaten des mobilen Roboters in seiner globalen Landkarte M . Θ(k) ist die Orientierung (Siehe
Abbildung 2.1) zur jeweiligen Zeit t = k.
2.2
Problemklassen
In der Literatur wird das Lokalisierungsproblem in weitere Klassen untergliedert.
Das einfachste zu lösende Problem ist das position tracking [STDe00]. In dieser
Problemklasse ist dem Roboter seine Ausgangsposition bekannt. Desweiteren ist
ihm seine Umgebung, in Form einer gespeicherten Landkarte, bekannt. Im Robocupumfeld ist dies das Spielfeld und die Position von statischen Objekten, wie z.B.
das gegnerische Tor. Beim position tracking, auch lokales Lokalisierungsproblem genannt, wertet der Roboter nur interne Sensorendaten wie z.B die Odometrie aus
(Siehe Kapitel 3.1). Bei idealem Untergrund ist anhand der Odometrieauswertung
und der Verzicht auf weitere Sensoren eine genaue Lokalisierung möglich [J.Co91].
Bewegt sich der Roboter auf einem nicht günstigen Untergrund fort und seine Räder
drehen durch, so erhält der Roboter verfälschte Odometriedaten und die Positionsbestimmung ist fehlerhaft [A.Sg]. Im Gegensatz zum postion tracking sind beim global
localization problem [STDe00] die Initialisierungskoordinaten unbekannt. Der Roboter hat sich daraufhin selbst zu lokalisieren. Für diese Aufgaben verfügt ein mobiler
4
2. Selbstlokalisierung
Roboter in den meisten Fällen eine Reihe von Sensoren, mit denen er Informationen über seine Umwelt sammeln kann, wie z.B Vision, Laserscanner, Odometrie
und IR-Sensoren [H.Du94]. Diese gilt es dann, mit entsprechenden Fusionsmethoden [H.Du94], auszuwerten. Das schwierigste Problem stellt das kidnap robot problem [STDe00] dar. Dabei wird ein gut lokalisierter Roboter an eine andere Stelle
gesetzt, ohne daß er eine Mitteilung darüber erhält. Mit dem kidnap robot problem [STDe00] wird geprüft, ob sich ein Roboter, z.B nach Ausfall seiner Sensoren,
wieder selbständig lokalisieren kann.
2.3
Verfügbare Information
Damit sich das autonome mobile System (AMS ) selbständig lokalisieren kann, benötigt es Informationen über sich und seine Umwelt. Diese Informationen können
a priori vorhanden sein oder durch exploration der Umgebung gewonnen werden.
Dabei wertet das System Informationen, welches es durch Observation und Aktion
gewinnt, aus und bewertet sie.
2.3.1
A priori Information
A priori Informationen sind Informationen über die Umwelt, in der sich das AMS
bewegt [A.Si97]. Diese Informationen stehen dem AMS meistens während seiner
Initialisierungsphase1 zur Verfügung, können jedoch auch während seiner exploration
der Umwelt gewonnen und später wiederverwendet werden [A.Si97].
2.3.1.1
Landkarten
Meistens stehen a priori Informationen in Form von Landkarten zur Verfügung.
Diese Landkarten können entweder geometrischer oder topologischer Natur sein.
Geometrische Landkarten beschreiben die Umwelt anhand von geometrischen Metriken2 . Topologische Landkarten repräsentieren die Umwelt als einen Graph bestehend aus einer Menge von Knoten K ∈ {K1 , K2 , ..., Kn } und einer Menge von
Kanten V ∈ {V1 , V1 , ..., Vn } zwischen den Knoten. Die Knoten sind im allgemeinen
geometrische Objekte mit einer Beschreibung, wie z.B Farbe und Größe. Die Kanten
in der topologischen Landkarte repräsentieren einen Pfad von einem Knoten Kn zu
einem Knoten Kn+1 [A.Si97] [KuBy90]. Ein Vergleich von metrischen und topologischen Landkarten findet man im Anhang C.1
Gegenstand der modernen Forschung ist es Methoden zu entwickeln, mit denen autonome mobile Systeme während ihrer Exploration der Umwelt, selbständig Karten
erstellen. Diese Karten dienen bei einer wiederholten exploration als Orientierungshilfe. Die Arbeit auf diesem Gebiet wird unter dem Begriff SLAM(Simultanouos
Localization and Mapping) zusammengefasst [Howi01].
2.3.2
Information durch Navigation
Die zweite Art von Information stellen die Informationen dar, die das AMS während seiner Exploration der Umwelt gewinnt. Diese Art von Information ist unter
1
2
Bevor das AMS seine Umwelt exploriert
Zum Beispiel beim Robocup die Fläche des Spielfeldes
2.3. Verfügbare Information
5
Abbildung 2.1: Ein autonomer Roboter im Bezug zu seiner globalen Landkarte (Robotpose). Quelle: Eigene Darstellung
Abbildung 2.2: Eine Landkarte wurde mit Hilfe von Laser -und Sonarscannern während der Exploration erstellt. Quelle: www.radish.sourceforge.net
6
2. Selbstlokalisierung
dem Oberbegriff der navagational information bekannt. Man unterscheidet zwischen
Informationen durch Aktion und Observation [Nege03].
Unter Aktion versteht man zum Beispiel Translation und Rotation eines AM S mit
Hilfe eines Antriebes. Wie in Kapitel 3.1 noch gezeigt wird, lassen sich diese Informationen zur Lokalisierung verwenden.
Unter Observation sind alle Techniken gemeint, mit der das AM S seine Umwelt
beobachtet. Dazu kann es verschiedene Sensoren, wie zum Beispiel Videokamera,
Sonar und/oder Laserscanner, verwenden. Als Beispiel folgt die Observation von
Landmarken.
2.3.2.1
Landmarken
Neben a priori Landkarten stehen oft Landmarken zur Verfügung [Thru98c] [BeGu94].
Ist a priori Wissen über diese Landmarken vorhanden, so beschränkt sich dies, in
den meisten Fällen, auf die 2-dimensonalen kartesischen Koordinaten.
Abbildung 2.3: Auswahl von passiven Landmarken Quelle: [K.I.01]
Mit Hilfe von Landmarken und dem geometrischen Triangulationsverfahren [CoKo92]
ist es möglich die Position eines AM S zu bestimmen. Während aktive Landmarken
selbständig Informationen3 senden, verhalten sich passive Landmarken, wie der Name schon sagt, passiv. Das AM S muss in diesem Fall die Landmarken während der
exploration entdecken und, mit Hilfe von z.B der Visioneinheit, Informationen wie
Entfernung und Winkel gewinnen. Nach jedem Zeitintervall und darauffolgende neue
Lokalisierung müssen diese Informationen erneuert werden.
3
Zum Beispiel Position und Entfernung zu anderen Landmarken
3. Selbstlokalisierungsmethoden
Es folgt das wichtigste Kapitel in dieser Projektarbeit. Es werden die bedeutesten Selbstlokalisierungsmethoden anhand von einfachen und intuitiven Beispielen
erklärt. Am anfang widmet sich das Kapitel der Odometrie basierten Lokalisierung.
Danach folgt die Beschreibung der Bayesfilter.
3.1
Lokalisierung mit Odometrie
Die Odometrie basierte Lokalisierung [Mäke01] hat Kenntnis über die Initialposition
eines AMS. Desweiteren besitzt sie Kenntnis über die physikalischen Eigenschaften1
eines AMS.
Mit Hilfe von z.B Encodern [J.L.99] wird die Antriebsumdrehung der Räder gemessen
und so die zurückgelegte Strecke bestimmt. Die Ausrichtung kann z.B bei einem
differential Antrieb über die zurückgelegte Strecke des linken und rechten Rades
bestimmt werden. Dabei gilt folgende geometrische Beziehung:


x(k)
X(k) ≡  y(k) 
Θ(k)

x(k) + d · cos(Θ)
X(k + 1) =  y(k) + d · sin(Θ) 
Θ(k) + α
(3.1)

(3.2)
X(k +1) steht hier für die robot pose am Ende eines Intervalls, d ist die zurückgelegte
Strecke und α eine mögliche Richtungsänderung.
Jedoch, so haben empirische Untersuchungen gezeigt [H.Du94], lassen sich Odometrie basierte Verfahren nicht per se zur Lokalisierung verwenden. Vielmehr müssen
Fehlerquellen berücksichtigt werden. Diese Fehlerquellen kann man in nicht systematische und systematische Fehler unterteilen [J.L.99].
1
zum Beispiel Durchmesser der Räder, differential Antrieb oder Omnidrive usw.
8
3. Selbstlokalisierungsmethoden
Systematische Fehler
• ungleicher Raddurchmesser
• endliche Auflösung der Encoder
• endliche Abtastrate der Encoder
• Abstand der Räder weicht von dem angenommen Wert ab
Nicht systematische Fehler
• Räder drehen bei rutschigem Untergrund durch
• AMS stößt gegen ein unbekanntes Objekt
• AMS fährt über einen ungleichen Untergrund
Die meisten systematischen Fehlerquellen, lassen sich durch Kalibrierung z.B des
Raddurchmessers reduzieren. Borenstein et al. [J.L.99] zum Beispiel entwickelte für
zweirädrige Roboter eine Kalibrierungstechnik.
Das Odometriefehlermodell für einen differential Antrieb beschreibt [MaSi03] so,
indem er für das rechte und linke Rad einen Fehler in die Translation einbaut. Der
Fehler wird dabei als eine Gaußsche Zufallsvariable angenommen, deren Mittelwert
eR/L
sich aus dem aktuellen Encoderwert ρk
ergibt. Sowohl Mittelwert als auch Varianz
der Gaußschen Verteilung steigen bei dem Fehlermodell von [MaSi03] linear mit der
zurückgelegten Strecke. Die Fehler für das linke und rechte Rad sind unabhängig
voneinander.
Zur Veranschaulichung, wurde mit Matlab ein ähnliches Fehlermodell mit Hilfe von
simulierten Encoderwerten erstellt. Siehe dazu Abbildung 3.1 und Beschreibung.
3.1.1
Zusammenfassung und weiterführende Literatur
Die Odometrie basierte Lokalisierung ist sehr einfach auf einem AM S zu implementieren. Jedoch, so wurde gezeigt, weißt sie eine sehr starke Fehleranfälligkeit
auf. Systematische Fehler [J.L.99] und vorallem nicht systematische Fehler verursachen ein starkes Rauschen. Aufgrund des starken Rauschens der Odometrie, ist es
notwendig weitere Informationen über die Umwelt zu sammeln und diese zu fusionieren. Diese Notwendigkeit führte zu den in den nächsten Kapiteln beschriebenen
Verfahren.
[H.A.03],[Mart02] und [Klee95] versuchen mit diversen statistischen Methoden die
systematischen und nicht systematischen Fehler in der Odometrie zu reduzieren bzw.
in ihr Fehlermodell einzubauen.
3.1. Lokalisierung mit Odometrie
9
Abbildung 3.1: Mit Matlab wurde ein AM S mit differential Antrieb simuliert. Es
wird angenommen, daß das AM S die Umdrehung des rechten und linken Rades zu
einem diskreten Zeitindex k erfassen kann. Zur Vereinfachung wurde nur die Translation betrachtet. Mit Hilfe der Datenquelle und der Bewegungsgleichung aus Kapitel 3.1 lässt sich die robot pose Xk absolut bestimmen. Systematische Fehler wurden
nicht berücksichtigt. Um nicht-systematische Fehler entsprechend zu modellieren
eR/L
wurde ähnlich wie bei [MaSi03] der aktuelle Encoderwert ρk
als Mittelwert µ der
eR/L
Gaußschen Normalverteilung N (ρk , 1) gewählt. Die somit gewonnene gaußsche
eR/L
Zufallsvariable x wurde zu dem echten Encoderwert ρk
dazu addiert, da dieser
als Grundlage zur Berechnung der aktuellen Position dient. In diesem Plot kann man
gut erkennen wie zu Beginn der Exploration die Odometrie basierte Lokalisierung
sich mit den echten (x, y) − Koordinaten deckt. Doch schon nach kurzer Zeit ist es
mit der Odometrie basierten Lokalisierung nicht mehr möglich vertrauensvolle Werte
zu erhalten. Diese Erkenntniss deckt sich im wesentlichen mit vielen Resultaten in
der entsprechenden Literatur. Siehe dazu auch [Mäke01] Quelle: Eigene Darstellung
10
3. Selbstlokalisierungsmethoden
Abbildung 3.2: Ein weiteres Beispiel für die Fehlerbehaftete Odometrie basierte
Selbstlokalisierung. Oben ist der tatsächliche Pfad und unten der gemessene Pfad
dargestellt. Quelle:[Hirt01]
3.2. Bayes Filter
3.2
11
Bayes Filter
Die in den folgenden Abschnitten 3.2.2 beschriebenen Lokalisierungsmethoden gehören zu der Klasse der sogannten Bayesfilter [Fox04] an. Bayesfilter wie z.B der
Kalmanfilter schätzen rekursiv unter Unsicherheit einen Zustand Xk , k ∈ N wie z.B
die Position eines mobilen Roboters (Siehe Abbildung 2.1).
Xk = fk (Xk−1 , vk−1 )
(3.3)
fk : <nx × <nv → <nx ist dabei eine eventuell nicht lineare Funktion des Zustandes
Xk−1 . nx und nv sind die Dimensionen des Fehlervektors vk−1 , k ∈ N. Der Zustand
Xk kann dabei nicht direkt ausgelesen werden, sondern nur mit Hilfe ungenauer
Messdaten zk .
zk = hk (Xk , nk )
(3.4)
hk : <nx × <nn → <nz ist wiederum eine eventuell nicht lineare Funktion. Wie in
(3.3) bezeichnen nx und nn die Dimensionen des Fehlervektors der Messung nk .
Da Bayesfilter mit Wahrscheinlichkeiten arbeiten, wird der Glauben an den Systemzustand Xk durch eine Belieffunktion Bel(Xk ) repräsentiert.
Bel(Xk ) = P (Xk |z1 , z2 , ..., zk )
(3.5)
Um eine gute Lokalisierung zu ermöglichen, reichen, wie in Kapitel 3.1 gezeigt, nur
die Daten der Odometrie nicht aus. Aus diesem Grund wird bei den Bayesfiltern2 die
Messdaten z0 ...zk in observation 3 -und action 4 -Messungen untergliedert [STDe00].
Bel(Xk ) = P (Xk |ok , ak−1 , ok−1 , ak−2 ..., o0 )
(3.6)
Zusammenfassend muss ein Bayesfilter rekursiv seinen Glauben Bel(Xk ) an einen
Systemzustand zu jedem Zeitindex berechnen. Dazu gliedert sich das Verfahren in
zwei Phasen:
Prediction Phase: In der ersten Phase wird der aktuelle Systemzustand berechnet.
Es wird angenommen das das System Markov Eigenschaften aufweist, das heißt daß
der aktuelle Systemzustand ausschließlich von seinem direkten Vorgängerzustand
Xk−1 abhängig ist. Mit der Chapman-Kolmogorov Gleichung ergibt sich somit:
Z
(3.7)
Bel(Xk ) = P (Xk |zk−1 ) = P (Xk |Xk−1 )P (Xk |zk−1 )dXk−1
Update Phase: In der zweiten Phase ist eine Messung zk zum Zeitpunkt k verfügbar. Dies wird dazu benutzt den Glauben Bel(Xk ) aufzufrischen [DBFT99]. Dazu
wenden wir die Bayssche Regel an:
Bel(Xk ) = P (Xk |zk ) =
P (zk |Xk )P (Xk |zk−1 )
P (zk |zk−1 )
(3.8)
Nach der Updatephase wird der ganze Prozess rekursiv wiederholt.
Bayesfilter stellen ein soganntes probabilistisches Framework zur rekursiven Bestimmung eines Systemzustandes zur Verfügung. Die einzelnen Implementierungen (Siehe Abbildung 3.3) unterscheiden sich wesentlich in der Art und Weise wie sie ihre
Belieffunktion Bel(Xk ) repräsentieren.
2
angewandt an das Lokalisierungsproblem
observation enstricht Vision, Sonar usw.
4
action enstpricht den Daten der Odometrie
3
12
3. Selbstlokalisierungsmethoden
Abbildung 3.3: Eigenschaften der gängigen Bayesfilter Implementierungen. Quelle:
[Fox03]
3.2.1
Beispiel: Ein generischer Bayesfilter
Es folgt eine Erklärung der Funktionsweise eines generischen Bayesfilters [FHLS+ 03].
Es handelt sich dabei um einen eindimensionalen Bayesfilter. Ziel ist es, die Position der Person an der Wand zu bestimmen. Zu diesem Zweck ist die Person mit
einem Sensor ausgestattet. Der Sensor erkennt Türen, kann jedoch nicht erkennen
um welche Tür es sich handelt. Desweiteren ist die ungefähre Laufgeschwindigkeit
der Person bekannt.
Abbildung 3.4: Generischer Bayesfilter, Bild 1 Quelle: [FHLS+ 03]
3.2. Bayes Filter
13
a) In a) ist die Person noch an keiner Tür vorbeigekommen. Das heißt der Sensor
wurde noch nicht aktiviert. Der Glaube Bel(Xk ) weisst jeder möglichen Position eine gleiche Wahrscheinlichkeit zu.
b) Die Person bewegt sich nun an einer Tür vorbei, und der Sensor wird aktiviert.
Da nicht erkannt werden kann um welche Tür es sich handelt, müssen drei
unabhängige Hypothesen aufgestellt werden.
c) Da wir Kenntniss über die ungefähre Laufgeschwindigkeit der Person haben,
können wir die Hypothesen entsprechend verschieben. Da die ungefähre Laufgeschwindigkeit mit Unsicherheit behaftet ist, flachen die Hypothesen entsprechend ab.
d) Die Person bewegt sich nun an der zweiten Tür vorbei. Der Sensor erkennt die
Tür. Mit Hilfe der zweiten Messung kann nun die ensprechende erste Hypothese
aus b) verstärkt werden. Die anderen Hypothesen werden wiederum abgeflacht.
e) In e) wird die Bewegung der Person vorhergesagt und wie in c) die Hypothesen
verschoben.
Abbildung 3.5: Generischer Bayesfilter, Bild 2 Quelle: [FHLS+ 03]
3.2.2
Kalman Filter (KF )
KF gehören zu den bekanntesten Bayesfilter [Kalm60]. Ihre Belieffunktion repräsentieren sie durch Mittelwert µ und Varianz σ 2 einer Gaußschen Verteilung. Durch
diese Beschränkung lassen sich mit KF nur unimodale Belieffunktionen aufstellen.
14
3. Selbstlokalisierungsmethoden
Desweiteren ist der KF in seiner ursprünglichen Form nur für Systeme mit einem linearen Systemmodel geignet. Zum Zeitpunkt k = 0, also in der Initialisierung, muss
der Glaube Bel(Xk ) bekannt sein.
Bel(X0 ) = N (X0 , P0 )
3.2.2.1
(3.9)
Formale Definition
Ein KF besteht aus zwei formalen Modellen.
System Model: Es wird benötigt um Vorhersagen zu machen, wie sich das System
über die Zeit entwickelt.
Xk = AXk−1 + Buk−1 + wk−1
(3.10)
wk = N (O, Qk )
(3.11)
Die n × n Matrix Ak bezeichnet die Beziehung zwischen dem Zustand Xk−1
und dem Zustand Xk . Das heißt Ak−1 ist die Zustandsübergangsmatrix. wk
(engl. system noise) ist ein Rauschen und modelliert das Rauschen des Systems. uk−1 ist ein zusätzlicher Kontrollinput. Dieser Kontrollinput wird dann
benötigt, um Ereignisse während der Ausführung zu modellieren5 . B ist zu diesem Kontrollinput zugehörige n × l Matrix, die den Zusammenhang zwischen
dem Zustand Xk−1 und uk−1 herstellt [Zwei04].
Measurement model: Das measurement model beschreibt Messungen6 , welche in
Beziehung mit dem System stehen.
zk = HXk + vk
(3.12)
vk = N (0, Rk )
(3.13)
Die m × n Matrix H beschreibt den Zusammenhang zwischen Zustand Xk
und der Messung zk [Nege03]. Wie wk ist vk (engl. measurement noise) ein
Rauschen. In diesem Fall das Rauschen der Messung. R und Q sind die zu dem
Rauschen zugehörigen measurement -und system Kovarianzmatrix. Erwähnt
sei, daß v und w unabhängig voneinander sind [Kalm60].
Analog wie beim generischen Bayesfilter unterscheidet man zwischen zwei Zuständen.
Der a priori Zustand
X̂k̄ ∈ <n
(3.14)
vor einer Messung zk . Und der a posteriori Zustand mit der Messung zk .
X̂k ∈ <n
(3.15)
Die dazugehörigen a priori und a posteriori Schätzfehler, setzen sich aus der jeweiligen Differenz zwischen dem aktuellen Zustand und dem Zustand der Vorhersage,
oder zum Zeitpunkt der Messung, zusammen.
ek̄ = Xk − X̂k̄
(3.16)
5
z.B ein Roboter fährt mit konstanter Geschwindigkeit und stößt unerwartet gegen einen Gegenstand.
6
Siehe dazu 3.2
3.2. Bayes Filter
15
ek = Xk − X̄k
(3.17)
Die entsprechenden Kovarianzmatrix lautet
Pk̄ = E[ek̄ eTk̄ ]
(3.18)
für den a priori Fall. Enstprechendes für die a posteriori Kovarianzmatrix.
Pk = E[ek eTk ]
(3.19)
Mit den obigen Gleichungen ist es nun möglich eine Gleichung einzuführen, welche
den a posteriori Zustand xˆk beschreibt [G.G.04].
xˆk = xˆk̄ + K(zk − H xˆk̄ )
(3.20)
Besonders zu beachten ist die Differenz zk − H xˆk̄ , auch Messungs-Innovationsfaktor
oder Residium genannt, welche die Diskrepanz zwischen dem geschätzen Messwert
H xˆk̄ und dem gemessenen Messwert zk beschreibt. Ist die Differenz 0, so folgt daraus,
daß es keinen Unterschied zischen a priori und a posteriori Schätzung gibt.
Die n × m Matrix K, in der Literatur Kalman Gain Matrix genannt, wird dazu
benutzt die a posteriori Fehlerkovarianz zu verringern.
Kk = Pk̄ HkT (Hk Pk̄ H T + Rk )−1
(3.21)
Auf einen ausführlichen Beweis und Herleitung sei hier verzichtet und auf die entsprechende Literatur [Kalm60] und [G.G.04] verwiesen.
3.2.2.2
Algorithmus
Die Grundidee des KF ist es, einen Zustand zu schätzen (time update) und dann
den Messwert miteinzubeziehen (measurement update). Damit ergibt sich für den
KF Algorithmus zwei Stufen.
Time-Update()
1 while true
2 do
3
Xk = AXk−1 + Buk−1
4
Pk̄ = APk−1 AT + Q
Beim time update wird der a priori Schätzwert und die entsprechende
Fehlerkovarianzgleichung errechnet.
Measurement-Update(zk )
1 while true
2 do
3
if zk new
4
then
5
Kk = Pk̄ HkT (Hk Pk̄ H T + Rk )−1
6
xˆk = xˆk̄ + Kk (zk − H xˆk̄ )
7
Pk = (I − Kk H)Pk̄ )
Liegt ein Messwert an, so wird der a posteriori Zustand, die zugehörige
Fehlerkovarianzmatrix und die Kalman-Gain Matrix berechnet. Eine ausführliche
graphische Darstellung des KF Zyklus findet sich im Anhang B.
16
3. Selbstlokalisierungsmethoden
3.2.2.3
Beispiel zu einem KF
Um die Theorie aus 3.2.2 zu veranschaulichen, wird im folgenden ein 1-dimensionaler
KF betrachtet.
Wir nehmen an ein AMS mit dem Systemmodel
X(k + 1) = X(k) + u(k) + w(k)
(3.22)
E[wk wkT ] = σw2
(3.23)
z(k) = X(k) + v(k)
(3.24)
E[vk vkT ] = σv2
(3.25)
und seinem Messmodel
befindet sich in einem 1-dimensionalen kartesischen Raum. Das AMS kann sich mit
linearer Translation vorwärts bewegen. Ziel ist es nun die Position X̂(k) und die
Varianz σx2 (k) zu bestimmen.
Zum Zeitpunkt k = k1 steht eine erste Messung z1 zur Verfügung. Bei einem realen
AMS könnte die erste Messung in Form von a priori Informationen7 entnommen
werden.
(3.26)
X̂(k1 ) = z1
2
2
σX
(k1 ) = σX
z1
(3.27)
Abbildung 3.6: Eindimensionaler KF, Bild 1 (Quelle: Eigene Darstellung)
Kurz darauf k = k2 ∼
= k1 steht eine weitere unabhängige Messung z2 mit der Varianz
2
σz2 zur Verfügung.
Um die beiden Messungen z1 und z2 zu kombinieren, wenden wir die eingeführten
Gleichungen aus 3.2.2 und [M.I.04] an.
2
2
2
K(k2 ) = σX
z1 /(σX z1 + σX z2 )
7
zum Beispiel Initialisierungskoordinaten in Form einer Logdatei
(3.28)
3.2. Bayes Filter
17
X̂(k2 ) = X̂(k1 ) + K(k2 )[z2 − X̂(k1 )]
2
(k2 )
σX
=
σz21 σz22 /(σz21
+
σz22 )
(3.29)
(3.30)
Kurz bevor eine dritte Messung z3 zur Verfügung steht, bewegt sich das AMS vorwärts.
(3.31)
X̂(k3 |k2 ) = X̂(k2 ) + u(k2 )
Nach der Bewegung nimmt nun das AMS eine dritte Messung z3 mit der Varianz σz23
auf. Analog zum allgeimeinen Fall (Siehe 3.2.2) wird nun der Zustand des Systems
basierend auf dem vorherigen Zustand und der neuen Messung aufgefrischt (update
phase) [Roja02].
2
2
(k3 |k2 ) + σz23 ]
(k3 |k2 )/[σX
(3.32)
K(k3 ) = σX
X̂(k3 |k2 ) = X̂(k3 |k2 )K(k3 )[z3 − X̂(k3 |k2 )]
2
(k3 |k3 )
σX
=I−
2
(k3 |k2 )
K(k3 )σX
(3.33)
(3.34)
Abbildung 3.7: Eindimensionaler KF, Bild 2
In Abbildung 3.6 und 3.7 kann man die Verteilungen der Messwerte und Zustände
zum jeweiligen Zeitindex k betrachten. Man kann sehr gut erkennen, wie man mit
der Hilfe des KF die Unsicherheiten in der Kombination von zwei verschiedenen
Messungen abflachen kann. Man spricht dabei auch von einer optimalen Schätzung.
3.2.2.4
Extended Kalman Filter (EKF )
Der ursprüngliche KF ist auf ein lineares System Model und Measurement Model
beschränkt, und eignet sich deshalb für viele technische Anwendungen nicht. Die
Bewegungsgleichung aus dem Kapitel 2 beschreibt zum Beispiel ein nicht lineares
System Model des KF. Diese Gründe führten zur Entwicklung des EKF. Um mit
nicht linearen System -und Messgleichungen umzugehen, linearisiert der EKF seine
Bewegungs -und Messgleichung mit der sogenannten Taylor Erweiterung. In heutigen
Lokalisierungsproblemen, im Kontext zu AMS, wird der EKF erfolgreich eingesetzt.
Siehe dazu auch [M.R.01][Nege03] und [KiBu01].
Analog wie für den KF werden beim EKF Formeln für das System
Xk = f (Xk−1 , uk , wk )
(3.35)
-und Measurement Model eingeführt.
Zk = h(Xk , vk )
(3.36)
18
3. Selbstlokalisierungsmethoden
Die Variablen lassen sich wie beim KF in ihrer Bedeutung übernehmen. Es sei jedoch
darauf hingwiesen das es sich beim EKF um Funktionen dieser handelt. Die einzelnen
Schritte 8 des KF Algorithmus lassen sich analog für den EKF übernehmen. Wie
sein lineares Pendant eignet sich der EKF nur für Gaußverteilte Belieffunktionen.
3.2.2.5
Zusammenfassung und weiterführende Literatur
Der KF und EKF werden in sehr vielen technischen Anwendungen eingesetzt. Der
schwierigste Schritt bei der Anwendung eines KF und EKF ist dabei jedoch die
Gleichungen für das System - und Messmodel aufzustellen. Einmal aufgestellt, lassen sich KF vielfältig einsetzen. Johnson et al. [RJZa] setzte z.B den EKF für die
echtzeitfäghige Navigation eines unmaned air vehicle (UAV) ein. Während Stroupe
et al. [AWSBa01] mit Hilfe des EKF die verrauschten Objektobservationen von mehreren Robotern fusionierte und so die Genauigkeit der Objektlokalisierung erhöhte.
3.2.3
Monte Carlo Methode (MCM )
KF können wie in dem Kapitel 3.2.2 gezeigt wurde, nur mit unimodalen Belieffunktionen und linearen System -und Messgleichungen umgehen. In vielen Fällen sind
jedoch die Belieffunktionen multimodal und das System welches beobachtet wird in
höchstem Maße nicht linear.
All diese Gründe führten dazu, das neue Methoden zur Lokalisierung gesucht wurden. Eine dieser Methoden wird Monte Carlo Methode[I.M.71] oder auch Particle
Filter (PF) genannt. Zum erstenmal im Zusammenhang mit AMS und der Thematik
Selbtslokalisierung wurde die Technik von [TFBD00] et al. erwähnt.
PF sind eine weitere Modellierung des generischen Bayes Filters, und basieren auf
dem probabilistischen Framework aus Kapitel 3.2. Die Belieffunktion Bel(Xk ) wird
jedoch bei PF durch diskrete Particle dargestellt. Jeder Particle Sk = hXki , wki i
repräsentiert einen möglichen Systemzustand Xk durch eine Gewichtung wk . Die
Gewichtung wk gibt an wie hoch die Wahrscheinlichkeit ist, das ein AMS sich exakt
an der Position des Particles befindet.
Bel(Xk ) ≈ {hXki , wki i|i = 1, .., N }
(3.37)
Die Anzahl der Particle schwankt dabei je nach Anwendungsgebiet[M.Re02]. Desweiteren ist definiert,
X
wki = 1
(3.38)
i
daß die Summe der Gewichte eins beträgt. Bevor weitere formale Definitionen zum
PF folgen, wird der PF analog wie beim generischen Bayesfilter an einem eindimensionalen Beispiel erläutert.
3.2.3.1
Beispiel: Ein eindimensionaler PF
Es herschen wie beim generischen Bayesfilter (Siehe Kapitel 3.2) die gleichen Vorraussetzungen. Die Person ist mit einem fiktiven Sensor ausgestattet, welcher Türen
erkennt.
8
Time -und Measurement Update
3.2. Bayes Filter
19
Abbildung 3.8: Eindimensionaler PF, Bild 1 Quelle: [FHLS+ 03]
Abbildung 3.9: Eindimensionaler PF, Bild 2 Quelle: [FHLS+ 03]
a) Die Belieffunktion Bel(Xk ) wird wie Eingangs erläutert durch diskrete Particle
repräsentiert. Zu Beginn k = 0 sind alle Particle sik=0 = n1 über dem Zustandsraum gleichgewichtet.
b) Der Sensor der eine Tür erkennt, wird in diesem Schritt aktiviert. Da jedoch nicht
erkannt werden kann, um welche Tür es sich handelt, werden drei Hypothesen
aufgestellt. Sie sind alle, da Sensoren in der Regel nicht perfekt sind, mit einer
Unsicherheit behaftet. Im Gegensatz zum generischen Bayesfilter, werden nun
ebenfalls die Gewichte wi der Particle an der Stelle X i entsprechend einem
Sensormodel P (Sensor|Xk ) gewichtet.
c) Im dritten Schritt bewegt sich die Testperson von einer Tür zur nächsten. Die
Belieffunktion Bel(Xk ), wird entsprechend verschoben. Diese Verschiebung,
auch motion update genannt, kann nur stattfinden, wenn der PF, ähnlich wie
der KF, a priori Kenntniss über die Bewegungsgleichung besitzt.
d) Der Sensor, erkennt im vierten Schritt eine weitere Tür. Wie in b), hat er jedoch
keine Kenntniss um welche Tür es sich dabei handelt. Jedoch besitzt die Testperson im vierten Schritt eine Belieffunktion Bel(Xk ), welche Angaben über
die aktuelle Position macht. Basierend auf diesem Glauben und dem vorhandenen Sensormodel, wird die Belieffunktion geupdatet. Dieses Update wirkt sich
unweigerlich auf die Gewichtung aus.
20
3. Selbstlokalisierungsmethoden
e) Die Testperson bewegt sich nun weiter. Wie in c) wird, entsprechend einem Bewegungsmodell, der Glaube verschoben.
3.2.3.2
Der PF Algorithmus
Der allgemeine PF gliedert sich in drei Teile. Prediction, Resampling und Update.
Prediction: Wie der KF benötigt der PF ein Modell über die Bewegungsgleichung
eines AMS (Siehe Abschnitt 3.2.2). Die Information gliedert sich analog wie
in 3.1 in Rotation und Translation. Basierend auf einem Encoder -oder ähnlichem Fehlermodell [Mäke01] lässt sich mit dem a priori Wissen der Bewegungsgleichung und der Encoderinformation zum Zeitpunkt k eine Prädikation des
Zustandes über k machen. Diese Prädikation ist ähnlich wie beim KF eine Aussage über die Wahrscheinlichkeit. Jedoch, und dies ist der große Unterschied zu
einem KF, wird diese Aussage bei einem PF mit n Particlen approximiert. Für
jeden Particle sik−1 wird aus der Verteilung P (Xk |sik−1 , uk−1 ) ein sogenannter
sample s0ik−1 gezogen. Wir wenden also das Bewegunsgmodell auf unsere Menge
von Particle an. In dieser Phase, werden mögliche Sensorinformationen nicht
berücksichtigt.
Update und Resampling: In der Update Phase wird eine Sensormessung zk dazu
benutzt die samples aus der vorherigen Phase zu gewichten mik = P (zk |s0ik−1 ).
Aus der gewichteten Menge von Particle wählen wir die aus, welche eine hohe
Wahrscheinlichkeit haben. Dieser Prozess wird resampling genannt. In [M.Re02]
werden einige resampling Algorithmen genauer beschrieben.
3.2.3.3
Beispiel zu einem PF
Zum weiteren Verständniss wurde ein trivialer PF in Matlab programmiert. Bei dem
zu beobachteten System handelt es sich um ein Objekt welches sich im 2 dimensonialen kartesischen Raum zufällig in x und y Richtung bewegt. Ein fiktiver Sensor
zur Bestimmung der absoluten Position steht zur Verfügung. Der Sensor ist mit einem Rauschen behaftet. Die Abweichung läßt sich im Programmcode festlegen. Der
Sensor bezieht seine Daten aus simulierten Encoderwerten, welche absolut sind und
die ’echte’ Position darstellen. In Abbildung 3.10 und 3.11 sind die beiden Pfade
dargestellt.
Desweiteren wurde untersucht wie sich die Anzahl der Particle auf die Genauigkeit
der Lokalisierung auswirkt. Zu diesem Anlass wurde die absolute Differenz zwischen
dem ’echten’ Pfad und dem PF Pfad verglichen. Der Zusammenhang zwischen Anzahl der Particle und der Abweichung der Genauigkeit (im arithmetischen Mittel)
in x und y Richtung sind in der folgenden Tabelle dargestellt.
Anz. Particle
50
100
1000
10000
x in m
0,8
0,23
0,09
0,05
y in m
1,06
0,38
0,06
0,04
3.2. Bayes Filter
21
Die Werte in der Tabelle sind nur für eine Konfiguration (Abweichung des Sensors etc.) gültig und daher nicht Aussagekräftig für jede Applikation von einem PF.
Dennoch ist die Tendenz, daß mehr Particle die Genauigkeit eines PF erhöht erkennbar. Diese Erkenntnis deckt sich im wesentlichen mit der Literatur [STDe00]
und [TFBD00]. Möchte man einen PF in einer konkreten Anwendung einsetzten, so
sind weitere Parameter wie z.B Laufzeit des PF -Algorithmus in Abhängigkeit der
Anzahl der Particle zu beachten.
Abbildung 3.10: Vergleich eines ’echten’ Pfades ohne Rauschen (rot), und eines Pfades lokalisiert durch einen PF mit 50 Particle Quelle: Eigene Darstellung
Abbildung 3.11: Vergleich eines ’echten’ Pfades ohne Rauschen (rot), und eines Pfades lokalisiert durch einen PF mit 100 Particle Quelle: Eigene Darstellung
22
3.2.3.4
3. Selbstlokalisierungsmethoden
Zusammenfassung und weiterführende Literatur
In diesem Kapitel wurde die Funktionsweise eines PF erklärt. PF werden nicht nur
zur Lokalisierung von Robotern eingesetzt sondern finden auch Anwendung in der
Bildverarbeitung und Computer-Vision. Moderne Tracking Verfahren basieren unteranderem auf dem Prinzip des PF. Dem interessierten Leser sei hiermit auf [ZaMD04]
verwiesen.
3.3
Vergleich zwischen PF und KF
Möchte man nun z.B einen mobilen Roboter mit einem Lokalisierungssystem ausstatten, so stellt sich die Frage welcher Lokalisierungsalgorithmus verwendet werden
soll. Gutmann et al. [Gutm02] vergleichten in ihrer Arbeit einen KF mit verschiedenen PF. Es wurden diverse Faktoren wie z.B die Genauigkeit und Performance
des jeweiligen Algorithmus verglichen. Als Testplattform dienten Sony AIBO Roboter. Über Landmarks, welche mit der Visioneinheit des Roboters gefunden wurden,
vergleichten die Autoren einen KF und PF basierten Ansatz. Zwar arbeitet der
KF wesentlich schneller als der PF, selbst wenn dieser mit einer geringen Anzahl
von Partikeln betrieben wird (ca. 50). Doch weißt der tradiotionelle KF eine höhere Fehleranfälligkeit auf, als der PF. In der Literatur finden sich weitere Vergleiche
zwischen diversen Lokalisierungsmethoden. Siehe dazu [Tamk05] und [JSGKo98].
4. Zusammenfassung
In dieser Projektarbeit wurden die wichtigsten Selbstlokalisierunsmethoden anhand
von einfachen Beispielen erklärt. Es wurden Vorteile und Nachteile der einzelnen Algorithmen erläutert. Möchte man einen entsprechenden Algorithmus in einer eigenen
Anwendung anwenden, so ist es notwendig sich tiefer mit der Thematik auseinander
zu setzen. Anhand von der Literaturliste kann der interessierte Leser sich tiefer mit
der, teilweise schwierigen, Materie beschäftigen. Im Anhang finden sich darüberhinaus zu allen Beispielen der entsprechende Sourcecode.
Persönlich möchte ich mich bei Professor Ertel für die Aufgabenstellung und Unterstützung bedanken.
24
4. Zusammenfassung
A. Abkürzungen und Symbole
Xk
AMS
KF
EKF
MCL
PF
Robotpose zu einem Zeitindex k
Autonomes mobiles System
Kalman Filter
Extended Kalman Filter
Monte Carlo Methode
Particle Filter
26
A. Abkürzungen und Symbole
B. Graphiken
B.1
Kalman Filter
Abbildung B.1: Ausführliche Darstellung des Kalman Zyklus Quelle: [G.G.04]
28
B. Graphiken
C. Tabellen
C.1
Vergleich von Topologischen und Metrischen
Landkarten
Metrische Landkarten
Vorteile
easy to build, represent, and
maintain
is nonambiguous and view pointindependent
facilitates computation of shortest paths
Nachteile
planning inefficient, spaceconsuming (resolution does not depend
on the complexity of the environment)
requires accurate determination
of the robots position
poor interface for most symbolic
problem solvers
Quelle: [Thru97]
Topologische Landkarten
Vorteile
permits efficient planning, low
space complexity (resolution depends on the complexity of the
environment) recognition of places (based on geometry)
does not require accurate determination of the robots position
convenient representation for
symbolic planner/problem solver,
natural language
Nachteile
difficult to construct and maintain in largescale environments if
sensor information is ambiguous
recognition of places often difficult, sensitive to the point of view
may yield suboptimal paths
30
C. Tabellen
D. Theoretische Grundlagen
In diesem Anhang werden wichtige mathematische Grundlagen zum besseren Verständniss erläutert.
D.1
Gesetze der Wahrscheinlichkeit
Die Grundlage der Statistik, bildet der Begriff der Wahrscheinlichkeit. Sie beschreibt
allgemein formuliert eine Plausibilität. Während bei der traditionellen Statistik einem Ergebnis eines Zufallsexperimentes eine Wahrscheinlichkeit zugeordnet wird,
so führt die Bayes-Statistik Wahrscheinlichkeiten für Aussagen ein. Diese Aussagen
können sich auf zufällige Ereignisse beziehen sind aber sehr viel allgemeiner. Da wie
oben erwähnt die Wahrscheinlichkeit eine Plausibilität ausdrückt, wird unter der
Wahrscheinlichkeit ein Maß für die Plausibilität von Aussagen verstanden [K.R.99].
D.1.1
Axiome der Wahrscheinlichkeit
Analog zu [Bart69] werden im folgenden Axiome der Wahrscheinlichkeitstheorie eingeführt.
Jedem Ereignis E, d.h jedem möglichen Ergebnis eines Versuches, wird eine reelle
Zahl P (E) zugeordnet, die Wahrscheinlichkeit des Ereignisses E.
0 ≤ P (E) ≤ 1
(D.1)
Die Wahrscheinlichkeit des sicheren Ereignisses M ist
P (M ) = 1
(D.2)
Sind Ereignisse E1 , E2 , ..., En unvereinbar, so ist
P (E1 ∪ E2 ∪ ... ∪ En = P (E1 ) + P (E2 ) + ... + P (En )
(D.3)
32
D. Theoretische Grundlagen
D.1.2
Erwartungswert, Varianz und Kovarianz
D.1.2.1
Erwartungswert
Kann eine Zufallsvariable X die Werte a1 ,a2 ,...an mit den Wahrscheinlichkeiten
P (a1 ),P (a2 ),...P (a1 ) annehmen, so ist der Erwartungswert folgend definiert.
X
µ = E(X) =
P (X = ai )ai
(D.4)
i
D.1.2.2
Varianz
Die Varianz ist ein Maß dafür, wie die einzelnen Daten um den Mittelwert verteilt
sind.
n
X
V ar(X) =
(xi − P (X))2 pi
(D.5)
i=1
D.1.2.3
Kovarianz
Sind X und Y zwei Zufallsvariablen mit existierenden Erwartungswerten E(X) und
E(Y ), so ist die Kovarianz
Cov(X, Y ) = E(X − E(X))(Y − E(Y ))
D.1.3
(D.6)
Bedingte Wahrscheinlichkeit
Oft hängt eine Aussage davon ab ob eine weitere Aussage wahr ist. Man schreibt
A|B, um die Situation zu kennzeichnen, daß A wahr ist unter der Bedingung, daß
B wahr ist. Die Wahrscheinlichkeit von A|B wird mit
P (A|B),
(D.7)
bezeichnet.
D.1.4
Produkt -und Summengesetz der Wahrscheinlichkeit
Das Produktgesetz der Wahrscheinlichkeit ergibt sich aus der Beziehung zwischen
der Plausibilität des Produkts AB und der Plausibilität der Aussage A und der
Plausibilität der Aussage B unter der Bedingung, daß die Aussage C wahr ist, wobei
die Wahrscheinlichkeit als Funktion der Plausibiltät eingeführt wird [K.R.99].
P (AB|C) = P (A|C)P (B|AC) = P (B|C)P (A|BC)
(D.8)
P (S|C) = 1
(D.9)
wobei
P (S|C) repräsentiert hierbei die Wahrscheinlichkeit der sicheren Aussage. Das heißt
mit Sicherheit ist die Aussage S unter der Bedingung wahr, daß C wahr ist. Die Aussage C ist in sofern elementar, da sie Zusatzinformationen über den Zusammenhang,
wie die Aussagen A und B gemacht werden, enthält. Aus der Beziehung zwischen
D.2. Bayes-Theorem
33
der Plausibilität der Aussage A und ihrer Negation Ā unter der Bedingung C folgt
nach [K.R.99] das Summengesetz der Wahrscheinlichkeit
P (A|C) + P (Ā|C) = 1.
(D.10)
Betrachtet man nun die Wahrscheinlichkeit der Summe A + B der Aussagen A und
B unter der Bedingung das die Aussage C wahr ist, so ergibt sich nach wiederholtem
Anwenden von (5) und (6) das verallgemeinerte Summengesetz
P (A + B|C) = P (A|C) + P (B|C) − P (AB|C).
(D.11)
Fordert jedoch die Bedingung C das die Aussagen A und B nicht den gleichen
Wahrheitswert w annehmen können d.h sie schließen sich gegenseitig aus, dann gilt
P (AB|C) = 0
(D.12)
und anstatt (8) ergibt sich nun das verallgemeinerte Summengesetz für die beiden
sich gegenseitig ausschließenden Aussagen A und B
P (A + B|C) = P (A|C) + P (B|C).
(D.13)
Nach (10) folgt für n sich gegenseitig ausschließenden Aussagen
P (A1 + A2 + ... + An |C) = P (A1 |C) + P (A2 |C) + ... + P (An |C).
(D.14)
Sind die Aussagen A1 , A2 , ..., An unter der Bedingung C erschöpfend das heißt daß
genau eine Aussage wahr sein muß und, wenn eine wahr ist, alle anderen falsch sein
müssen, so folgt mit (6) aus (11)
X
(D.15)
P (A1 , A2 , ..., An |C) =
...
D.1.5
Kettenregel und Unabhängigkeit
Mit der Kettenregel der Wahrscheinlichkeit wird die Wahrscheinlichkeit des Produkts
von n Aussagen angegeben.
P (A1 A2 ...An |C) = P (An |A1 A2 ...An−1 C)P (An−1 |A1 A2 ...An−2 C)...P (A2 |A1 C)P (A1 |C)
(D.16)
Sind jedoch die n Aussagen voneinander unabhängig, so folgt anstatt (8) das Produktgesetz für n voneinander unabhängigen Aussagen A1 bis An .
P (A1 A2 ...An |C) = P (A1 |C)P (A2 |C)...P (An |C)
D.2
(D.17)
Bayes-Theorem
Wird das Produktgesetz (5) nach P (A|BC) aufgelöst, so erhält man das BayesTheorem
P (A|C)P (B|AC)
P (A|BC) =
.
(D.18)
P (B|C)
Dabei steht die Aussage A in der üblichen Anwendung des Bayes-Theorems für
ein unbekanntes Phänomen. B repräsentiert Aussagen die Informationen über das
unbekannte Phänomen enthalten, und C ist die Aussage über das Hintergrundwissen.
Die Bayes-Statistik bezeichnet P (A|C) als Priori-Wahrscheinlichkeit, P (A|BC) als
Posteriori-Wahrscheinlichkeit und P (B|AC) als Likelihood.
34
D. Theoretische Grundlagen
E. Sourcecode
E.1
E.1.1
Sourcecode zur Odometrie
Hauptprogramm
%---File Handling and Init Stuff
clf;
%clear figure
k=10000;
%max index
fp=fopen(’data.txt’,’r’);
%File Pointer
[Tab,c]=fscanf(fp,’%s %i %f %f’,[4,10000]);
%Load Data in Matrix Tab
Tab=Tab’;
%Convert
Label=Tab(:,1);
%Generate Submatrix
Count=Tab(:,2); Left_Tick=Tab(:,3); Right_Tick=Tab(:,4);
count=0; d_left=0; d_right=0; state=[0 0 0]; state_noise=[0 0
0] error_left=0; error_right=0;
%---Iterate trough Matrix and write positions to file
for i=1:k;
count=Count(i,:)
d_left=Left_Tick(i,:);
d_right=Right_Tick(i,:);
state=pos(count, d_left, d_right, state);
state_matrix(i,:)=state;
%---------------------------------------------------------------------error_left=normalPDF(d_left,d_left,1);
error_right=normalPDF(d_right,d_right,1);
state_noise=pos(count, d_left+error_left,d_right+error_right,state_noise);
state_matrix_noise(i,:)=state_noise;
%---------------------------------------------------------------------end
%---Plotting Path
36
E. Sourcecode
X=state_matrix(:,1); Y=state_matrix(:,2);
%--X_n=state_matrix_noise(:,1); Y_n=state_matrix_noise(:,2);
%---%--hold on; title(’Vergleich von Pfaden ohne
Fehler (blau) und Fehler (grün)’) xlabel(’X
Position in cm’); ylabel(’Y Position in cm’);
plot(X(1),Y(1),’or’) %plot start posO
plot(X_n(1),Y_n(1),’or’)
plot(X,Y,’b’); %Plot path
plot(X_n,Y_n,’g’);
plot(X(10000),Y(10000),’or’) %plot end pos
plot(X_n(10000),Y_n(10000),’or’)
%--fclose(fp);
E.1.2
%Close File
Benötigte Funktionen
%Generate Odometry Data File, just simulation :-)
k=10000;
%run through index
dis_right=0;
%define distance right variable
dis_left=0;
%define distance left variable
fid =
fopen(’data.txt’,’w’);
E=’E’;
for i=0:k;
%for loop i=1 ...i==k
dis_right=rand;
dis_left=rand;
fprintf(fid,’%s %i %f %f\n’,E,i,dis_left, dis_right);
end
fclose(fid);
function[state]=pos(count,d_left,d_right,state)
d_center=(d_left+d_right)/2;
sigma=(d_right-d_left)/30;
theta=state(3)+sigma;
x=state(1)+d_center*cos(theta);
y=state(2)+d_center*sin(theta);
state=[x y theta];
function p=NormalPDF(varargin)
%Calculates normal probability density function
%Syntax:
%
NormalPDF()
%
NormalPDF(x)
E.1. Sourcecode zur Odometrie
37
%
NormalPDF(x,mu)
%
NormalPDF(x,mu,sd)
%Input:
%
x = values of random variable with normal distribution
%
mu = expected value; mean; Default value 0
%
sd = standard deviation; sigma; Default value 1
%Output:
%
Description of normal distribution when no arguments are provided
%
p = values of the probability denstiy function
%
p is an three-dimensional array
%
first dimension corresponds to x
%
second dimension corresponds to mu
%
third dimension corresponds to sd
%
finally p is squeezed to remove dimensions with only one value
%Written by
%
G. Fowler, Mathematics Department, US Naval Academy
%
30 June 2003
switch nargin
%case 0
%open(’Normal.pdf’)
case 1
x=varargin{1};
x=x(:);
m=0;
s=1;
case 2
x=varargin{1};
x=x(:);
m=varargin{2};
m=m(:);
s=1;
case 3
x=varargin{1};
x=x(:);
m=varargin{2};
m=m(:);
s=varargin{3};
s=s(:);
end
nx=size(x,1); nm=size(m,1); ns=size(s,1); p=zeros(nx,nm,ns);
s(s<=0)=NaN; [x,m,s]=ndgrid(x,m,s);
p=exp(-.5*((x-m)./(s)).^2)./(sqrt(2*pi).*s); p=squeeze(p);
38
E. Sourcecode
E.2
E.2.1
Sourcecode zum PF
Hauptprogramm
function pf(N)
% Initialisierung
X = [1;1]
move = [0;0]
F = [1 0; 0 1];
meiner Variablen für den Particle Filter
% Zustand (State) -- kartesische Koordinaten (x,y)
% Bewegungsvektor
% Transitionsmatrix 2x2 Einheitsmatrix
% Noise des Prozesses 2x2 Matrix
Q = zeros(2) + diag([eps,eps])
Q(1,1) = 0.1 % x noise (Standard Abweichung in m\s)
Q(2,2) = 0.1 % y noise (Standard Abweichung in m\s)
% Eigenschaften meines GPS Sensors
H = [1 0;0 1];
% Transitionsmatrix
R = [0.01 0; 0 0.01]; % Standardabweichung (st. dev. in m)
Pest = [1 0;0 1];
% Init Matrix
Xpart = multivariate_gauss(X, Pest, N); % Initialisiere Particle
% ------------------------------------------------% ------------------------------------------------% ------------------------------------------------% Hauptschleife
NLOOPS = 100
pfpath = zeros(2,NLOOPS);
truepath = zeros(2,NLOOPS)
% Particle Filter Pfad
% ’Echter Pfad’
for i=1:NLOOPS
% Erzeuge zufällige Bewegung für x und y
move = [rand;rand];
% Update meine ’echte Bewegung’
X = X + move;
% Speichere diese Position in meinem Pfad
truepath(1,i) = X(1);
truepath(2,i) = X(2);
% Prädikation meiner Particle
s = multivariate_gauss([0;0], Q, N);
Xpart = F*Xpart + s;
% Simuliere observation
E.2. Sourcecode zum PF
39
GPS = multivariate_gauss(X, R, 1);
% Observiere particle
% ------------------% Gewichte meine Particle
w = gauss_likelihood(repvec(GPS,N) - H*Xpart, R);
% Resample meine Particle
[keep, Neff] = stratified_resample(w);
% Speichere die höher gewichteten Particle
Xpart = Xpart(:,keep);
% Nehme den ’mean’ und die ’mean covariance matrix’ und speichere
% diesen particle in meinem Pfad
Xp = sample_mean(Xpart);
pfpath(1,i) = Xp(1);
pfpath(2,i) = Xp(2);
end
% Plotte den particle und den echten pfad
hold on; title(’Pfad des Particle Filter
(grün), und echter Pfad (rot)’); xlabel(’X
Position in Meter’); ylabel(’X Position in
Meter’);
% Differenz Matrix
diffMatrix = zeros(2,NLOOPS);
for i=1:NLOOPS
% Plotte den echten und den PF Pfad
plot(truepath(1,i),truepath(2,i),’or’)
plot(pfpath(1,i),pfpath(2,i),’og’)
% Bestimme die Abweichung in x
% diffMatrix(1,i) = abs(truepath(1,i)) - abs(pfpath(1,i));
% Bestimme die Abweichung in x
% diffMatrix(2,i) = abs(truepath(2,i)) - abs(pfpath(2,i));
end
% mean(diffMatrix(1,:))
% mean(diffMatrix(2,:))
E.2.2
Benötigte Funktionen
function [keep, Neff] =
stratified_resample(w)
%function [keep, Neff] = stratified_resample(w)
%
% INPUT:
%
w - set of N weights [w1, w2, ..]
40
E. Sourcecode
%
% OUTPUTS:
%
keep - N indices of particles to keep
%
Neff - number of effective particles (measure of weight variance)
%
% USAGE:
%
Given a set of N particles p and their associated weights w,
%
[keep, Neff] = stratified_resample(w);
%
if Neff < N/2
%
p = p(:, keep);
%
w = ones(1, N)/N;
%
end
%
% Tim Bailey 2004.
w = w / sum(w); % normalise
Neff = 1 / sum(w .^ 2);
len = length(w); keep = zeros(1,len); select =
stratified_random(len); w = cumsum(w);
ctr=1; for i=1:len
while ctr<=len & select(ctr)<w(i)
keep(ctr)= i;
ctr=ctr+1;
end
end
function s= multivariate_gauss(x,P,n)
%function s= multivariate_gauss(x,P,n)
%
% INPUTS:
%
(x, P) mean vector and covariance matrix
%
obtain n samples
% OUTPUT:
%
sample set
%
% Random sample from multivariate Gaussian distribution.
% Adapted from MVNORMRND (c) 1998, Harvard University.
%
% Tim Bailey 2004.
len= length(x); S= chol(P)’; X = randn(len,n); s = S*X +
x*ones(1,n);
function [xm,P]= sample_mean(x)
%function [xm,P]= sample_mean(x)
E.2. Sourcecode zum PF
%
%
%
%
%
%
%
%
%
%
%
%
%
41
INPUT: set of samples, where each sample is a column vector [x1;...;xi;...]
OUTPUTS: sample mean, and sample covariance matrix
Convert a set of samples to a mean vector and covariance matrix. Results of this
function are (should be) equivalent to calling xm = mean(x,2); and P = cov(x’,1);
from the MatLab library.
Note that P is the second moment of the data (ie, normalised by N) not the
"unbiased" covariance estimate (ie, normalised by N-1). To convert to the latter,
simply write P = P*N/(N-1), where N = size(x,2).
Tim Bailey 2005.
N = size(x,2); % number of samples
xm = sum(x,2) / N; P = (x*x’ / N) - xm*xm’;
%
%
%
%
%
%
%
%
%
%
Alternative formulations:
xc = x - repmat(xm,1,N);
P = xc*xc’ / N;
P = xc*xc’ / (N-1);
P = (x*x’ / N) - xm*xm’
P = (x*x’ - N*xm*xm’) / (N-1)
%
%
%
%
2nd moment version 1
"unbiased covariance" version 1
2nd moment version 2
"unbiased covariance" version 2
Note, for the "unbiased" equations, need to first check for
special case where N equals 1 (wherein P = zeros(length(x))).
function w = gauss_likelihood(v,S,logflag)
%function w = gauss_likelihood(v,S,logflag)
%
% INPUTS:
%
v - a set of innovation vectors.
%
S - the covariance matrix for the innovations.
%
logflag - <optional> - if 1 computes the log-likelihood, otherwise computes
%
the likelihood.
%
% OUTPUT:
%
w - set of Gaussian likelihoods or log-likelihoods for each v(:,i).
%
% This implementation uses the Cholesky factor of S to compute the likelihoods
% and so is more numerically stable than a simple full covariance form.
%
% Adapted from GAUSEVAL, in the ReBEL Toolkit, by Rudolph van der Merwe (2002).
%
% Tim Bailey 2005.
if nargin == 2
logflag = 0;
42
E. Sourcecode
end
D
M
%
%
= size(v,1); Sf = chol(S)’;
= Sf\v; % equivalent to writing inv(Sf)*v
M is the normalised innovation of v, and M(:,i)’*M(:,i) gives the Mahalanobis
distance for each v(:,i).
C = (2*pi)^(D/2) * abs(prod(diag(Sf))); % normalising term (makes Gaussian hyper-vol
E = -0.5 * sum(M.*M, 1);
% exponential term
% Note: writing sum(x.*x, 1) is a fast way to compute sets of inner-products.
if logflag ~= 1
w = exp(E) / C; % likelihood
else
w = E - log(C); % log-likelihood
end
Literatur
[ArSi00]
Kai Oliver Arras und Roland Siegwart. Acht häufig gestellte Fragen an
die Mobilrobotik. In Schweizerische Gesellschaft für Automatik (Hrsg.),
SGA-Bulletin. Institut de Systemes Robotique, Swiss Federal Institute
of Technology, Lausanne, 2000.
[A.Sg]
A.Sgorbissa. Self localization. A brief discussion about existing techniques. Technischer Bericht, University of Genova, Department of Computer, Communication and System Sciences.
[A.Si97]
A.Singhal. Issues in autonomous mobile robot navigation. Technischer
Bericht, Computer Science Department, University of Rochester, 1997.
[AWSBa01] Martin C. Martin Ashley W. Stroupe und Tucker Balch. Distributed
Sensor Fusion for Object Position Estimation by Multi-Robot Systems.
In IEEE (Hrsg.), IEEE International Conference on Robotics and Automation, May 2001.
[Bart69]
Hans Jochen Bartsch. Mathematische Formeln.
Verlagsgesellschaft mbH, Köln, Deutschland. 1969.
Buch -und Zeit-
[BCFH+ 00] W. Burgard, A.B. Cremers, D. Fox, D. Hähnel, G. Lakemeyer,
D. Schulz, W. Steiner und S. Thrun. Experiences with an Interactive Museum Tour-Guide Robot. Artificial Intelligence 114(1-2), 2000.
[BeGu94]
M. Betke und K. Gurvits. Mobile robot localization using landmarks.
In IEEE (Hrsg.), IEEE International Conference on Robotics and Automation, Band 2, May 1994, S. 135–142.
[ChKl97]
K. Chong und L. Kleeman. Accurate Odometry and Error Modelling for
a Mobile Robot. In IEEE (Hrsg.), International Conference on Robotics
and Automation, 1997.
[CoKo92]
C. Cohen und F. Koss. A comprehensive study of three-object triangulation. SPIE Mobile Robots, 1992.
[DBFT99]
Frank Dellaert, Wolfram Burgard, Dieter Fox und Sebastian Thrun.
Using the Condensation Algorithm for Robust, Vision-based Mobile
Robot Localization. IEEE Computer Society Conference on Computer Vision and Pattern Recognition ( CVPR’99 ), June 1999.
[FBDT99]
D. Fox, W. Burgard, F. Dellaert und S. Thrun. Monte Carlo Localization: Efficient Position Estimation for Mobile Robots. In Proc. of the
National Conference on Artificial Intelligence, 1999.
44
Literatur
[FHLS+ 03] D. Fox, J. Hightower, L. Liao, D. Schulz und G. Borriello. Bayesian
Filtering for Location Estimation. IEEE Pervasive Computing, 2003.
[Fox03]
D. Fox. Adapting the sample size in particle filters through KLDsampling. International Journal of Robotics Research (IJRR) Band 22,
2003.
[Fox04]
Dieter Fox. Bayesian Filtering for Location Estimation, 2004.
[G.G.04]
G.Welch und G.Bishop. An Introduction to the Kalman Filter. Technischer Bericht, Department of Computer Science University of North
Carolina at Chapel Hill, 2004.
[Gutm02]
D. Gutmann, J.-S. Fox. An Experimental Comparison of Localization
Methods Continued. In Proc. of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 2002.
[H.A.03]
H.Moshiri und A.Sharif. Improved Pose Estimation for Mobile Robots
by Fusion of Odometry Data and Environment Map. Journal of Intelligent and Robotic Systems 36(36), April 2003, S. 89–108.
[H.Du94]
J.Manyika H.Durrant-Whyte. Data Fusion and Sensor Management.
Ellis Horwood, West Sussex. 1994.
[Hirt01]
Friedrich Hirt. Thema 2: Selbstlokalisierung, Studienarbeit. 2001.
[Howi01]
Keiji Nagatani Howie Choset. Topological Simultaneous Localization
and Mapping (SLAM): Toward Exact Localization Without Explicit
Localization. IEEE Transactions on Robotics and Automation 17(2),
2001, S. 125–137.
[I.M.71]
I.M.Sobol. Die Monte Carlo Methode. VEB Deutscher Verlag der Wissenschaften. 1971.
[J.Co91]
Ingemar J.Cox. Blanche-An Experiment in Guidance and Navigation
of an Autonomous Robot Vehicle. IEEE Trans. on Robotics and Automation 7(2), April 1991, S. 193–204.
[J.H.02]
T.Lefebvre J.D.Schutter, J.D.Getter und H.Bruyninckx. Kalman Filters: A Tutorial. Technischer Bericht, Katholieke Universiteit Leuven,
Belgium, 2002.
[J.L.99]
H.R.Everett J.Borenstein und L.Feng. Navigating mobile Robots. A. K.
Peters, Ltd., Wellesley, MA. 1999.
[JSGKo98] D. Fox J.-S. Gutmann, W. Burgard und K. Konolige. An Experimental
Comparison of Localization Methods. In International Conference on
Intelligent Robots and Systems. IROS, October 1998.
[J.Wo01]
J.Wolf. Bildbasierte Lokalisierung für mobile Roboter. Diplomarbeit,
Uni Freiburg, Institut für Informatik,Arbeitsgruppe Autonome Intelligente System, 2001.
Literatur
45
[Kalm60]
Emil Kalman, Rudolph. A New Approach to Linear Filtering and Prediction Problems. Transactions of the ASME–Journal of Basic Engineering 82(Series D), 1960, S. 35–45.
[K.I.01]
K.Yoon und I.S.Kweon. Landmark design and real-time landmark
tracking for mobile robot localization. SPIE Photonics Band 4573, 2001,
S. 219–226.
[KiBu01]
E. Kiriy und M. Buehler. Three-state Extended Kalman Filter for Mobile Robot Localization. McGill University, 2001.
[Klee95]
Lindsay Kleeman. Odometry Error Covariance Estimation for Two
Wheel Robot Vehicles. Technischer Bericht, Intelligent Robotics Research Centre (IRRC), Department of Electrical and Computer Systems
Engineering, Monash University, 1995.
[K.R.99]
K.R.Koch. Einführung in die Bayes-Statistik. Springer. 1999.
[KuBy90]
Benjamin Kuipers und Yung-Tai Byun. A Robot Exploration and Mapping Strategy Based on a Semantic Hierarchy of Spatial Representations. Technischer Bericht AI90-120, 1, 1990.
[LuBo99]
Ron Lutz und Judith Bobenage. An Affektive Mobile Robot Educator
with a Full-time Job. In Artificial Intelligence, 1999, S. 95–124.
[MACl01]
N. Gordon M.S. Arulampalam, S. Maskell und T. Clapp. A Tutorial on
Particle Filters for On-line Nonlinear/Non-Gaussian Bayesian Tracking.
IEEE Transactions on Signal Processing Band 50, Feb 2001, S. 174–188.
[Mart02]
Agostino Martinelli. The Odometry Error of a Mobile Robot With a
Synchronous Drive System. IEEE Transactions on Robotics and Automation 18(3), 2002, S. 399–405.
[MaSi03]
Agostino Martinelli und Roland Siegwart. Estimating the Odometry
Error of a Mobile Robot during Navigation. In Proceedings of European
Conference on Mobile Robots, 2003.
[M.I.04]
M.I.Ribeiro. Kalman and Extended Kalman Filters: Concept, Derivation and Properties. Technischer Bericht, Institute for Systems and
Robotics Instituto Superior Tecnico, 2004.
[Mäke01]
Hannu Mäkelä. Outdoor Navigation of Mobile Robots. Dissertation,
Helsiki University of Technology, 2001.
[M.R.01]
A.Sgorbissa M.Piaggio und R.Zaccaria. Autonomous Navigation and
Localization in Service Mobile Robotics. In IEEE/RSJ (Hrsg.), IEEE/RSJ International Conference on Intelligent Robots and Systems,
2001.
[M.Re02]
Ioannis M.Rekleitis. A Particle Filter Tutorial for Mobile Robot Localization. Technischer Bericht, Centre for Intelligent Machines, McGill
University, 2002.
46
Literatur
[Nege03]
Rudy Negenborn. Robot Localization and Kalman Filters. Master
Thesis, Utrecht University, Institute of Information and Computing
Sciences, September 2003. Kalman.
[Neum02]
D. Neumann. Kalman-Filter und Partikelfilter zur Selbstlokalisation –
Ein Vergleich. Universität Dortmund, 2002.
[RJZa]
J. Sasiadek R. Johnson und J. Zalewski. Kalman Filter Enhancement
for UAV Navigation. Technischer Bericht, University of Central Florida
and Carleton University.
[Roja02]
R. Rojas. The Kalman Filter. Technischer Bericht, Freie Universität
Berlin, Institut für Informatik, 2002.
[S.M.03]
S.Richter und M.Faschinger. Mobile robot Localization. Technischer
Bericht, Technical University of Graz, Austria, 2003.
[STDe00]
Wolfram Burgard Sebastian Thrun, Dieter Fox und Frank Dellaert. Robost Monte Carlo localization for mobile robots, 2000.
[Tamk05]
A. Tamke. A Framework for Comparison of Diferent Localization Methods for Autonomous Mobile Robots in the RoboCup Scenario. Diplomarbeit, IPVS University of Stuttgart, 2005.
[TFBD00]
S. Thrun, D. Fox, W. Burgard und F. Dellaert. Robust Monte Carlo
Localization for Mobile Robots. Artificial Intelligence 128(1-2), 2000,
S. 99–141.
[Thru97]
Sebastian Thrun. Learning Maps for Indoor Mobile Robot Navigation.
Artificial Intelligence, 1997.
[Thru98a]
S. Thrun. Bayesian Landmark Learning for Mobile Robot Localization.
Machine Learning 33(1), 1998, S. 41–76.
[Thru98b]
S. Thrun. Learning Metric-Topological Maps for Indoor Mobile Robot
Navigation. Artificial Intelligence 99(1), 1998, S. 21–71.
[Thru98c]
Sebastian Thrun. Finding Landmarks for Mobile Robot Navigation. In
ICRA, 1998, S. 958–963.
[U. F99]
U. Frese and M. Hörmann and B. Bäuml and G. Hirzinger. Global
konsistente visuelle Lokalisation ohne vorgegebene Karte. In 15. Fachgespräch Autonome Mobile Systeme (AMS99), 1999.
[U. F01]
U. Frese and G. Hirzinger. Simultaneous Localization and Mapping - A
Discussion. In Proceedings of the IJCAI Workshop on Reasoning with
Uncertainty in Robotics, 2001.
[uG.T96]
M.Greiner und G.Tinhofer. Stochastik für Studienanfänger der Informatik. Carl Hanser Verlag. 1996.
[Wick90]
Dieter Wickmann. Bayes-Statistik, Einsicht gewinnen und entscheiden bei Unsicherheit. Wissenschaftsverlag BI, Mannheim, Deutschland.
1990.
Literatur
47
[ZaMD04]
Mukesh A. Zaveri, Shabbir N. Merchant und Uday B. Desai. Multiple
Model Based Point Targets Tracking Using Particle Filtering in InfraRed Image Sequence. In ICVGIP, 2004, S. 184–189.
[Zwei04]
Oliver Zweigle. Vergleich unterschiedlicher Trackingverfahren im Robocup. Diplomarbeit, Institut für Parallele und Verteilte Systeme Universität Stuttgart, September 2004.