Handout

Werbung
Christian Hett
24.1.2005
Handout zum Vortrag:
Verfolgung bewegter Objekte mit Partikelfiltern
von
Christian Hett
Abstrakt
In diesem Vortrag geht es um ein Verfahren, um z.B. im RoboCup die eigene Position und die
Ballverfolgung durchzuführen. Dies wird mit Rao-Blackwellised Partikelfiltern in einem vereinheitlichten Framework realisiert. Partikelfilter haben gegenüber Kalman-Filtern den Vorteil, dass
sie multi-modal sind, d.h. die Simulation in völlig verschiedene Bewegungsarten fortführen können, was bei den vielfältigen Interaktionen im Roboterfußballspiel zu besseren Ergebnissen führt.
Das besondere an dem hier vorgestellten Verfahren ist, dass lineare Anteile an den Bewegungsmodellen über Kalman-Filter effizient berechnet werden, indem jeder Partikel einen Kalmanfilter
enthält. Durch diese Reduktion des Anteils des Zustandsraums, der mit Partikeln simuliert werden muss kommt man mit weniger Partikeln aus, so dass der Algorithmus auf einem AIBO aus
der Sony-RoboCup-League gute Ergebnisse liefern kann.
Inhalt
1. Problemstellung
2. andere, bereits bekannte Verfahren
a. Kalmanfilter
b. Markovfilter
c. Monte Carlo Methode
3. Rao-Blackwellised Partikel-Filter
4. Zustände und Übergangsdiagramm
5. Der Algorithmus
6. Ergebnisse
7. Verbesserungen am Algorithmus
8. Literatur und Referenzen
1. Problemstellung
In diesem Vortrag und dem zugehörigen Paper geht es um die Selbstlokalisation und Ballverfolgung im RoboCup. Im Allgemeinen benötigt ein mobiler Roboter genaues Wissen über seine
eigene Position, die Objekte in der Umwelt und deren Bewegung. Dies ist eine aufwendige Aufgabe, da sowohl die Sensordaten (z.B. Kamera oder Ultraschall), als auch die Odometriedaten
(Auswertung der Bewegungen die der Roboter bisher ausgeführt hat um daraus die neue Position
zu errechen) immer mit Unsicherheiten behaftet sind.
In der RoboCup-Domäne stellen sich besondere Herausforderungen. Es handelt sich um ein sehr
dynamisches Spiel mit vielen Interaktionen
o Der Ball wird von anderen Spielern aufgenommen oder geschossen
o Der Ball prallt an Spielern ab
o Der Ball prallt an der Bande ab
o Der eigene Roboter nimmt den Ball auf oder schießt ihn
o Der Schiedsrichter kann den Roboter zur Strafe neu ins Spielfeld setzen
1/8
Christian Hett
24.1.2005
Diese Interaktionen sind hochgradig nicht linear und stellen Filter, die auf Linearität beruhen, vor
große Probleme.
Außerdem sind die Sensordaten und Odometriedaten im RoboCup außerordentlich verrauscht:
- Der Hauptsensor ist eine CMOS-Kamera mit nur 176x144 Pixeln. Damit lassen sich Abstände zum Ball oder zu Landmarken nur schwer abschätzen. Außerdem müssen die Filter
robust sein gegen Fehlerkennungen in der Bildverarbeitung, sowie Verdeckungen des
Balls durch andere Roboter
- Das sich aus der Laufbewegung auf dem rutschigen Boden ergebende Bewegungsmodell
ist mit großen Unsicherheiten behaftet. Man kann aus den Odometriedaten also nur unsicherer Rückschlüsse auf die Position ziehen
2. Andere, bereits bekannte Verfahren
a) Der Kalmanfilter
Der Kalmanfilter wurde im Referat am 6.12.2004 von Patrick Winkler bereits vorgestellt, da er
hier aber eine entscheidende Rolle spielt, wird er mit seinen Nachteilen nochmals kurz vorgestellt.
Der Kalmanfilter wird im German-Team des RoboCup derzeit auch zur Ballbestimmung eingesetzt und zeigt dort auch die angesprochenen Probleme.
☺ Effizient
Uni-modal
Nur für lineare oder linearisierbare Modelle
Trade/Off zwischen Stabilität/schnellem Anpassen
Die Funktionsweise ist, dass man zu der Zustandsvariable zusätzlich noch die Varianz, also die Unsicherheit mit der diese bekannt ist speichert.
Darauf werden zwei wesentliche Rechenschritte
angewendet:
- Schätzung (kalman_prediction): Mit
Hilfe eines Bewegungsmodells wird der aktuelle Zustand fortgeschrieben, also eine
Schätzung des Folgezustands durchgeführt.
Dazu benötigt man die Steuerungsdaten des Prinzipieller Ablauf des Kalmanfilters
Roboters. Das Modell beschreibt ebenfalls
die damit verbundene Unsicherheit
- Filter-Update (kalman_update): Sobald Sensordaten vorliegen, können diese in die
Zustandsvariable eingerechnet werden. Dazu gibt es wieder ein Modell, welches aus den
Sensordaten die Änderung der Zustandsvariable sowie die damit in dieser Situation verbundene Unsicherheit angibt
Über die Parameter/Funktionen P (Systemrauschen) und Q (Messrauschen) muss man beim Implementieren angeben, wie genau die Schätzung und wie genau die Messung ist. Man hat hier einen Trade-Off zwischen einem stabilen Filter, der sich von Messungenauigkeiten nicht so leicht
aus dem Tritt bringen lässt und einem flexiblen Filter, der auf unvorhergesehene Änderungen
(z.B. Ball wird von einem anderen Roboter geschossen – Dies wird von einem Bewegungsmodell, welches ein lineares Rollen vorhersagt nicht erfasst) schnell reagieren kann. Wählt man einen Kompromiss, wird die Ballerkennung insgesamt nicht sehr leistungsfähig sein.
2/8
Christian Hett
24.1.2005
Der Kalman-Filter ist uni-modal, d.h. er simuliert nur eine Schätzung über den Zustand und kann
sich nicht in mehrere denkbare Zustände verzweigen
Der Kalman-Filter ist eigentlich für lineare Modellfunktionen geeignet, funktioniert aber auch
mit linearisierten Funktionen sehr gut. Dies versagt allerdings, wenn es um extreme NichtLinearitäten wie z.B. das Abprallen eines Balls geht. In diesem Fall funktionieren die dem Kalman-Filter zugrunde liegenden Annahmen nicht mehr (Linearität und Gaussverteilung der Zustandsvariablen).
b) Markovfilter
Der Markovfilter wurde im Referat am 28.11.2004 von Dorian Scholz bereits vorgestellt.
☺ Multi-modal
Ineffizient
Dieser Filter ist multi-modal, da er mit Wahrscheinlichkeitsverteilungen arbeitet, indem er den möglichen Zuständen
Wahrscheinlichkeiten zuordnet. Um dies praktisch realisieren
zu können, kann ein z.B. 3-dimensionaler Zustandsraum (Die
drei Dimensionen sind X- und Y-Position des Roboters, sowie
Winkel der Ausrichtung des Roboters) mit einem Gitter über
einen Würfel diskretisiert werden. Für jeden kleinen Teilwürfel wird dann eine Wahrscheinlichkeit abgespeichert. Dieser
Speicherplatz sowie die Rechenzeit wachsen leider exponentiell mit der Anzahl der Dimensionen des Zustandsraums. Außerdem sind umso mehr Wahrscheinlichkeitswerte zu speichern und mit jedem Simulationsschritt fortzuschreiben, je
feiner man diskretisiert.
c) Monte-Carlo Partikelfilter
Würfel für Zustände eines Roboter
mit Diskretisierung als Gitter.
Bel=Wahrscheinlichkeit
Der Monte-Carlo-Filter wurde im Referat am 28.11.2004 von Alexander Pass bereits vorgestellt.
☺ Multi-modal
Bei hoher Zustandsraum-Dimension große Menge Partikel erforderlich
Bei Partikelfiltern hat man es in der Regel (es gibt viele
Varianten) mit einer festen (z.B. N=300) Anzahl Partikel zu
tun. Diese stellen jeweils einen Systemzustand dar, verknüpft
mit der Wahrscheinlichkeit für diesen Zustand.
Die Partikel werden einzeln simuliert, bei der Simulation geht
die Unsicherheit des jeweiligen Bewegungs- oder
Messmodells als zufällige Abweichung mit ein.
Schlechte, also unwahrscheinliche Partikel (mit niedrigen Spielfeld mit vielen Partikeln für die
Wahrscheinlichkeitswerten) werden aussortiert, gute Partikel Roboterposition. Anfangszustand
verdichten sich zügig an der Position, wo man den Roboter
erwarten kann.
3/8
Christian Hett
24.1.2005
Durch dieses Verfahren wird der Markov-Filter angenähert, allerdings wird nur für die
vielversprechenden Bereiche Rechenzeit verwendet:
p(xt ∈ A|y1:t ) ≈
{
}
1
i:xt(i) ∈ Α
N
In dieser Formel ist
- N die Anzahl der Partikel
- A eine Teilmenge des Zustandsraums
- p( a | b) die Wahrscheinlichkeit für a unter der Vorraussetzung, dass b eingetreten ist
-
1
{...} der Anteil der Partikel, die sich in der Menge befinden (zwischen 0 und 1 wie eiN
ne Zufallsvariable)
Die Verteilung der Partikel auf den Zustandsraum soll also der Wahrscheinlichkeit nach dem
Markov-Modell proportional sein. Bei diesem beschreibt p die Wahrscheinlichkeit für Zustand xt
unter der Annahme, dass bisher die Messungen y1:t durchgeführt wurden
3. Rao-Blackwellised Partikelfilter
Rao-Blackwellised Partikel-Filter kombinieren die Effizienz des Kalmanfilters mit dem Darstellungsreichtum der Partikelfilter, die multi-modal sind und dadurch mehrere denkbare Zustände
gleichzeitig simulieren können.
Dazu erhalten die Partikel je einen Kalman-Filter. Ein Partikel zeichnet sich jetzt also nur noch
durch die Zustandsvariablen aus, die nicht-linear sind. Die linearen Anteile werden durch den
Kalman-Filter simuliert, wobei dieser auf die nicht-linearen Anteile konditioniert wird, d.h. er
simuliert das System unter der Annahme, dass die nicht-linearen Anteile so sind, wie in seinem
Partikel beschrieben.
Dadurch wird es möglich, den Zustandsraum, der mit Partikeln simuliert werden muss zu verkleinern und mit weniger Partikeln effizient zu rechnen.
4. Zustände und Übergangsdiagramm
Für die Simulation mit RB-Filtern bietet es sich an, ein Zustandsdiagramm zu erstellen. Dabei
steht jeder der folgenden Zustände für ein Ballbewegungsmodell. Dies ermöglicht es, den Zustand in die nicht-linearen Anteile der Partikel aufzunehmen und die Kalman-Filter der Partikel
jeweils auf genau das in diesem Partikel simulierte Bewegungsmodell zu tunen.
Die Zustandsübergänge stellen außerdem gerade die extremen Nicht-Linearitäten dar, die es einem gewöhnlichen Kalman-Filter so schwer machen würden.
Die Zustände des Ballbewegungsmodells:
- None: Ball liegt ruhig oder bewegt sich linear ( ideal für Kalman-Filter!)
- Grabbed: Ball befindet sich zwischen den Roboterbeinen und wird vom Roboter bewegt. Diese Situation wird von anderen Algorithmen oft als Spezialfall implementiert
- Kicked: Dieser Zustand wird verwendet, wenn der Ball vom Roboter weggeschossen
wurde.
- Bounced: Der Ball ist an der Bande oder einem anderem Roboter abgeprallt. Für diesen
Fall wird eine Reflektion simuliert. Dabei wird die geschätzte Geschwindigkeit reduziert
und eine starke Unsicherheit in die Schätzung mit eingerechnet.
4/8
Christian Hett
24.1.2005
Aus diesen Zuständen ergibt sich nun folgendes Zustandsübergangsdiagramm:
residuelle
Wahrscheinlichkeit
Roboter verliert Griff
(0,8)
(0,2)
None
Grabbed
Wenn Roboter zugreifen
kann und das tut
(1
=s ,0)
ofo
rt
Bounced
Schuß
mißlingt (0,1)
Deflected
Kicked
Das Diagramm beschreibt, wie man für einen Partikel von einem Ballbewegungsmodell auf das
folgende schließen kann. Die Wahrscheinlichkeiten für die Übergänge entstanden durch Ausprobieren und Optimierungen. Die Wahrscheinlichkeit von 0,1 für den Übergang vom Zustand None zu Deflected wurde eingeführt, da der Ball an einem nicht erkannten Roboter abprallen
könnte.
Der Übergang von None zu Grabbed ist nicht probabilistisch und erfolgt dann, wenn der Roboter nahe genug am Ball ist. Genauso geht man nur dann in den Bounced-Zustand, wenn sich aus
der Ballposition ein Kontakt zur Bande oder einem anderen Roboter ermitteln lässt.
Die Zustände Bounced, Deflected und Kicked kehren aus ihrem Zustand sofort wieder in
den None-Zustand zurück, da sie lediglich Änderungen im Kalman-Filter initiieren.
5. Der Algorithmus
Der im Paper vorgestellte Algorithmus hat folgende Ein- und Ausgaben:
Eingabe:
{
}
-
Die alte Partikelmenge S k −1 = sk −1 , wk −1 1 ≤ i ≤ N
Die Steuerungsparameter uk-1 mit denen das Bewegungsmodell simuliert werden kann
-
Die Beobachtungen: Landmarke
Ausgabe:
-
{
(i )
(i )
z kl oder Ball z kb
Die neue Partikelmenge S k = sk , wk 1 ≤ i ≤ N
(i )
(i )
}
(i )
(i )
(i )
(i )
Dabei ist sk −1 = mk −1 , bk −1 , rk −1 ein Partikel (zum Zeitpunkt k-1) und
wk(i−)1 das dazugehörige
Gewicht, also die Wahrscheinlichkeit (0..1) für diesen Partikel. N ist die Anzahl der Partikel, i die
Nummer eines Partikels.
5/8
Christian Hett
24.1.2005
Zu einem Partikel gehören:
-
mk( i−)1
-
(i )
k −1
r
-
bk = xb , yb , x&b , y&b
Das Ballbewegungsmodell bzw. der Zustand für diesen Partikel:
m∈{None, Grabbed, Kicked, Bounced, Deflected}
= xr , y r , θ r
Die Position des Roboters sowie die Ausrichtung
Zustand des Balls: Position und Beschleunigung sowie die zugehörigen Varianzen.
Unabhängigkeiten im Zustandsraum:
Zur effizienten Berechnung
Landmarkenerkennung
der Folgewahrscheinlichkeiten werden in dieser Abbildung die Abhängigkeiten der
Roboterposition
Zufallsvariablen von einem
Robotersteuerung
Simulationsschritt zum darauf folgenden gezeigt.
akt. Ballbewegungsmodell
Man sieht, dass die (Zufallsvariable) Roboterposition rk
Ballposition und
nur von der vorherigen Ro-geschwindigkeit
boterposition rk-1 und der
Robotersteuerung uk-1 abBallerkennung
hängt.
Die Schätzung für BallbeweZeitlicher Verlauf
gung bk ergibt sich nicht nur
aus der vorherigen Ballposition bk-1, sondern auch aus dem aktuellen Ballbewegungsmodell mk
(da die Bewegung ja vom Bewegungsmodell abhängt). Außerdem hat die aktuelle Roboterposition rk noch einen Einfluss auf die Ballschätzung, da mk=grabbed sein könnte.
Die Wahrscheinlichkeit, eine Landmarke an einer bestimmten Position zu erkennen, ist nur von
der Roboterposition abhängig. Die Ballerkennung hingegen von der Ball- und Roboterposition
Der Algorithmus hat folgenden Aufbau:
Neue Partikelmenge Sk als leere Menge initialisieren
Schleife über die N Elemente der alten Partikelmenge Sk-1
Neue Roboterposition rk schätzen: rk( i ) ≈ p rk | rk(−i )1 , u k −1
Hier wird das Bewegungsmodell auf die Roboterposition des alten Partikels angewendet
und dieser gemäß der Robotersteuerung uk-1 simuliert. Das sich aus dem Modell für diesen Fall ergebene Rauschen wird durch in diesem Ausmaß zufällige Störwerte eingerechnet. (Dies macht Sinn, da ja dies ja mehreren Partikeln widerfährt und somit das
Rauschen für die neuen Partikel eine entsprechende Zufallsverteilung erzeugt)
Neue Partikel für die neue Partikelmenge Sk je nach Fallunterscheidung bestimmen:
zk=Landmarkenerkennung
zk=Ballerkennung
[…]
[…]
Partikelwahrscheinlichkeiten normalisieren
Bei mehr als N Partikel:
Schlechte Partikel aussortieren
(
)
6/8
Christian Hett
24.1.2005
Fall Landmarkenerkennung
Der neue Zustand bzw. das neue Ballbewegungsmodell m wird gemäß dem Zustandsübergangsdiagramm geschätzt:
(
mk( i ) ≈ p mk | mk( i−)1 , rk( i ) , bk(i−)1 , uk −1
)
An dieser Stelle wird z.B. aus Ball- und Roboterposition ermittelt, ob ein Abprallen an der Bande
laut dem Wirklichkeitsbild dieses Partikels stattfinden würde. Erlaubt das Zustandsübergangsdiagramm mehrere Möglichkeiten mit verschiedenen Wahrscheinlichkeiten, so wird dies entsprechen stochastisch entschieden.
Nun kann – da Zustand und Roboterposition für diesen Partikel bekannt sind – der Ballverlauf
linearisiert mit einem Kalmanfilter geschätzt werden. Dabei wird auch entsprechend dem Bewegungsmodell die Varianz der Ballposition für diesen Partikel aktualisiert:
(
bk(i ) := kalman _ prediction rk( i ) , mk(i ) , bk(i−)1
)
Der neue Partikel wird nun noch in die neue Partikelmenge aufgenommen:
{
S k := S k −1 ∪ ≈ bk(i ) , mk(i ) , rk(i )
}
Das dabei benutze Gewicht entspricht der Wahrscheinlichkeit für die von der Kamera stammende
Landmarkenerkennung unter der Annahme, dass sich der Roboter an dieser Position befindet, die
in diesem Partikel gespeichert ist:
(
wk(i ) := p z k | rk( i )
)
Fall Ballerkennung
Bei einer Ballerkennung wird nicht für jeden vorhandenen Partikel ein neuer eingefügt, sondern
mehrere: Einer für jedes Bewegungsmodell.
Dabei wird in jeden Partikel für jedes Ballmodell per Kalman-Filter-Updateschritt die Messung
des Balls in die Ballposition eingerechnet und der der Kalman-Filter so eingestellt (Messmodell,
Messrauschen), dass dies zur Roboterposition rk und dem jeweiligen Bewegungsmodell passt.
(i )
Die Wahrscheinlichkeit wk für einen solchen Partikel ergibt sich aus der Wahrscheinlichkeit
für diese Ballerkennung unter dem aktuellen Modell, der geschätzten Roboterposition und der
alten Ballposition. Dazu kommt noch multiplikativ die Wahrscheinlichkeit für diesen Zustand/Ballbewegungsmodell unter der Annahme des kompletten Zustands und der Bewegungskontrolle.
6. Ergebnisse
Der Algorithmus funktionierte mit von einem AIBO-Roboter gesammelten Daten
sehr gut, allerdings leider nicht in Echtzeit:
Es mussten 300-500 Partikel simuliert werden. Da jeder Partikel einen Kalman-Filter
enthält, war die Rechenlast zu hoch für den
400Mhz Prozessor der AIBOs.
7/8
Christian Hett
24.1.2005
Die hohe Partikelzahl kommt dadurch zustande, dass die Roboterposition und die Ballposition
gekoppelt sind: Dass die Roboterposition die Ballmessung beeinflusst ist klar, da die Balldaten ja
relativ sind. Allerdings gibt es auch in die andere Richtung Einfluss: Die Partikel mit der geringsten Wahrscheinlichkeit werden aussortiert und eine schlechte Ballerkennung sorgt somit auch
dafür, dass Partikel (mit ihren Roboterpositionen) durch gegenüber den Ballmessungen unwahrscheinliche Ballpositionen früher entfernt werden.
Es gibt noch ein prinzipielles Problem: Da die Position des Balls sehr wichtig für die Entscheidungen des Roboters ist und er sich schnell bewegt, wird seine Position etwa 20x pro Sekunden
bestimmt, während die Landmarken nur 2x pro Sekunde ermittelt werden. Dadurch gehen die
Ballbestimmungen zu stark in die Rechnung ein, auch wenn die Roboterposition eigentlich einen
viel höheren Einfluss auf die Ballbestimmung haben müsste als umgekehrt.
Die Lösung für diese Probleme bestand darin, den Zustandsraum und die Partikel in zwei Mengen zu unterteilen: Partikel für die Roboterposition und Partikel für die Ballpositionen. Der Informationsfluss von den Ballpartikeln zu den Roboterpartikeln wird dabei komplett vernachlässigt. (Dies ist in Ordnung, da die stark verrauschten Ballinformationen nicht viel zur Bestimmung/Verifizierung von Roboterpositionen beitragen konnten) Wann immer eine der 10x selteneren Landmarkenerkennungen stattfindet, werden die Roboterpositionen wieder in die BallPartikel eingerechnet, die bis zu diesem Zeitpunkt unabhängig von den Roboterpartikeln geschätzt wurden (dabei wird auch die Roboterbewegung von jedem Ballpartikel weitergeschätzt).
Der modifizierte, effizientere Algorithmus funktionierte mit z.B. 20 Ball-Partikeln sehr gut und
konnte den AIBO besser als frühere Verfahren steuern.
7. Literatur
-
-
Cody Kwok und Dieter Fox. Map-based Multiple Model Tracking of a Moving Object Proceedings of RoboCup Symposium, 2004 (best scientific challenge award)
A. Doucet, J.F.G. de Freitas, K. Murphy, and S. Russell. Rao-Blackwellised particle filtering for
dynamic Bayesian networks. In Proc. of the Conference on Uncertainty in Artificial Intelligence
(UAI), 2000.
S. Funiak and B. Williams. Multi-modal particle filtering for hybrid systems with autonomous
mode transitions. In Proc. of SafeProcess 2003, Washington, USA
Dieter Fox. Adapting the sample size in particle filters through KLD-sampling. International
Journal of Robotics Research (IJRR), 22(12), 2003.
http://www.cs.washington.edu/ai/Mobile_Robotics/projects/mcl/ (Projektseite zum ersten Paper
mit Videos)
Oskar v. Stryk: Vorlesung Mobile und sensorgeführte Robotiksysteme, Teil 8: Navigation
Oskar v. Stryk: Vorlesung Mobile und sensorgeführte Robotiksysteme, Teil 5: MarkovLokalisierung
Wikipedia: Bayestheorem http://de.wikipedia.org/wiki/Bayes-Theorem
Wikipedia: Bedingte Wahrscheinlichkeit
http://de.wikipedia.org/wiki/Bedingte_Wahrscheinlichkeit
Referat von Alexander Pass, 29.11.2004
Referat von Dorian Scholz, 29.11.2004
Referat von Partrick Winkler, 6.12.2004
Röfer, T., Dahm, I., Düffert, U., Hoffmann, J., Jüngel, M., Kallnik, M., Lötzsch, M., Risler, M.,
Stelzer, M., Ziegler, J. GermanTeam 2003. 7th International Workshop on RoboCup 2003
8/8
Herunterladen