Folien - Fachgebiet Simulation, Systemoptimierung und Robotik

Transcription

Folien - Fachgebiet Simulation, Systemoptimierung und Robotik
Verfolgung bewegter
Objekte mit Partikelfiltern
Betreuer: Martin Friedman
Fachgebiet Simulation und Systemoptimierung (SIM)
Fachbereich 20 (Informatik)
Technische Universität Darmstadt
Christian Hett
8--xxxxxxxx
1
08
10
24.1.2005
Gliederung
Problemstellung
Andere, bereits bekannte Verfahren
Kalmanfilter
Markovfilter
Monte Carlo Methode
Rao-Blackwellised Partikel Filter
Algorithmus
Effizienzsteigerungen
Obligatorische Robocup-Videos
24.Januar 2005
Christian Hett
2
Ziel
Mobile Roboter benötigen genaues
Wissen über Position von sich und
Objekten sowie deren Bewegung
Odometrie- und Sensordaten sind
immer mit Unsicherheit behaftet
Selbstlokalisierung
Ballverfolgung
24.Januar 2005
Christian Hett
3
Probleme im RoboCup
sehr dynamisches Spiel
viele Interaktionen/plötzliche Änderungen:
Ball Gegenspieler
Ball Bande
Ball aufnehmen und schießen
Umsetzen durch Schiedsrichter (Strafe)
stark verrauschte Odometriedaten
Miserable Eingabedaten:
CMOS-Chip 176x144 Pixel
Schwierige Abstandbestimmung zu Ball
24.Januar 2005
Christian Hett
4
Vorhandene Verfahren
Kalmanfilter
Markovfilter
Monte Carlo Methode
24.Januar 2005
Christian Hett
5
Kalmanfilter
Funktion:
Zustandsvariable mit Varianzen
Schätzen des nächsten Zustands plus Fehler
Korrektur des Zustands durch Messung.
Eigenschaften:
Tradeoff zw. Stabilität/schnellem Anpassen
Basiert auf Linearität und Gaussverteilung
Uni-modal: repräsentiert nur eine Schätzung
über Zustand
☺ Sehr effizient
24.Januar 2005
Christian Hett
6
Markov-Filter
Funktion:
Zustandsraum wird diskretisiert
(z.B. Würfel mit Gitter versehen)
Jeder Teilwürfel hat Wahrscheinlichkeit, dass Roboter in diesem
Zustand ist. (Bel-Funktion)
Vorhersage nächster Zustand
Bewerten mit Sensordaten
Eigenschaften:
☺ Multimodal (repräsentiert alle Schätzungen über
Zustand (diskretisiert) mit Wahrscheinlichkeitsverteilung)
Nur für endliche Zustandsräume
Sehr ineffizient, wächst exponentiell mit
Zustandsraum
24.Januar 2005
Christian Hett
7
Monte-Carlo Partikelfilter
Funktion:
Partikelfilter
Partikel=Zustand+Wahrscheinlichkeit
Immer N (z.B. 300) Partikel aktiv
Jeder Partikel repräsentiert eine Schätzung über
Zustand + Wahrscheinlichkeit für diesen Zustand
Schlechte werden aussortiert
Eigenschaften:
☺ Nähert Markov-Filter an
☺ Multi-modal
Weniger effizient als Kalman
24.Januar 2005
Christian Hett
8
Monte-Carlo/Partikelfilter
A Teilmenge des Zustandsraums
| …unter der Annahme dass,…
p Zufallsverteilung wie bei Markov
{xt(i) } Partikelmenge
{
}
1
(i)
p(xt ∈ A|y1:t ) ≈
i:xt ∈ Α
N
Integrierte Wahrscheinlichkeit für A soll proportional
zu Anzahl Partikel in A sein
24.Januar 2005
Christian Hett
9
Rao-Blackwellised particle filters
☺ Kombinieren Effizienz von Kalmanfiltern
mit Darstellungsreichtum von Partikelfiltern
☺ Multimodal
Funktion:
Unterteilung des Zustandsraums in lineare und
nicht-lineare Anteile
Ein Kalman-Filter pro Partikel für lineare Anteile
Zustand:
Roboterposition
Ballbewegungsmodell
Ballposition
24.Januar 2005
Christian Hett
(Nicht-linear)
(Nicht-linear)
(Linear pro Partikel)
10
Herkömmlicher
Partikelfilter
Rao Blackwellised
Partikelfilter
2x16=32 Partikel
2 Partikel mit je
einem Kalmanfilter
=Roboterpositionschätzung
24.Januar 2005
=Ballpositionsschätzung
Christian Hett
11
Ballbewegungsmodelle
Übergänge zwischen Bewegungsmodellen sind extrem
nicht-linearen Probleme für Kalman-Filter
Kalman-Filter wird auf Bewegungsmodell und
Roboterposition konditioniert
Ballbewegungsmodelle:
None: Ball ruhig oder bewegt sich linear
Grabbed: Ball zwischen Roboterbeinen
(normalerweise Spezialfall im Code)
Kicked: Roboter hat Ball geschossen
Bounced: An Bande oder Roboter abgeprallt.
Reflektion mit starker Unsicherheit der Schätzung +
reduzierte Geschwindigkeit
Deflected: Trajektorie hat sich plötzlich verändert
(unerkanntes Hindernis). Schätzung sehr ungenau,
muss sich wieder stabilisieren.
24.Januar 2005
Christian Hett
12
Zustandsübergangsdiagramm
Ball bleibt zwischen den
Beinen (0,8)
Roboter verliert Griff
(0,2)
24.Januar 2005
(1
=s ,0)
ofo
rt
Deflected
Christian Hett
Grabbed
Schuß
mißlingt (0,1)
Roboter schießt
Ball erfolgreich
(0,9)
Bounced
Wenn Roboter zugreifen
kann und das tut
,0)
(1 fort
o
=s ,1)
(0
we
nn
lau Koll
t K isio
art
n
e
(1
=s ,0)
ofo
rt
None
Kicked
13
{None, Grabbed, Kicked,
Bounced, Deflected}
Ballzustand
bk = xb , yb , x&b , y&b + Varianz
Algorithmus
Eingabe
Roboterposition
s k( i−)1 = m k( i−)1 , bk( i−)1 , rk(−i )1
N=300
Partikelmenge
S k −1 = {sk( i−)1 , wk(i−)1 1 ≤ i ≤ N }
Steuerungsparameter uk −1
Beobachtung: Landmarke zkl oder Ball zkb
Ausgabe
Neue Partikelmenge S k = {s k( i ) , wk( i ) 1 ≤ i ≤ N }
24.Januar 2005
Christian Hett
14
Abhängigkeiten im Zustandsraum
Landmarkenerkennung
Roboterposition hängt nur von
vorheriger und Steuerung ab
Roboterposition
Robotersteuerung
Ball wird je nach
Ballbewegungsmodell simuliert
akt. Ballbewegungsmodell
Für Grabbed
Ballposition und -geschwindigkeit
Ballerkennung
Zeitlicher Verlauf
24.Januar 2005
Erkennungen sind
relative Angaben
Christian Hett
15
Algorithmus Hauptschleife
Schleife über die N Elemente der alten
Partikelmenge Sk-1
(
(i )
(i )
r
≈
p
r
|
r
Neue Roboterposition rk schätzen k
k
k −1 , u k −1
Neue Partikel für neue Partikelmenge Sk je
nach Fallunterscheidung:
Robotersteuerung
zk=Landmarkenerkennung
zk=Ballerkennung
Mehr als N Partikel:
Schlechte Partikel aussortieren
Partikelwahrscheinlichkeiten normalisieren
24.Januar 2005
Christian Hett
16
)
Fall Landmarkenerkennung
Neues Ballbewegungsmodell m schätzen
(
mk( i ) ≈ p mk | mk( i−)1 , rk( i ) , bk(i−)1 , u k −1
)
Ballposition schätzen (Kalman)
(
bk(i ) := kalman _ prediction rk(i ) , mk( i ) , bk(i−)1
)
auf Basis von Roboterposition und Ballbewegungsmodell
Ergibt Partikel für nächste Runde
{
Sk := Sk −1 ∪ b , m , r
24.Januar 2005
(i )
k
(i )
k
(i )
k
}
(
wk(i ) := p z k | rk( i )
Wahrscheinlichkeit für diesen Partikel=
Wahrscheinlichkeit, dass zk von dieser 17
Christian Hett
Roboterposition aus gesehen werden kann
)
Fall Ballerkennung
Mehrere Partikel einfügen durch
Unterschleife über alle 5 Ballbewegungsmodelle:
Jeweils Kalman-Updateschritt mit Messwert für
Position des Balls, konditioniert auf
Roboterposition rk und Bewegungsmodell mk
Wahrscheinlichkeit für Partikel=
(Wahrscheinlichkeit der Beobachtung) *
(Wahrscheinlichkeit des Ballbewegungsmodells)
Bei Landmarke war keine Unterschleife,
weil Wahrscheinlichkeit dort immer gleich
24.Januar 2005
Christian Hett
18
Ergebnisse
Funktionierte sehr gut mit
gesammelten Daten
Aber: 300 Partikel
= 300 Kalmanfilter
Zuviel für den AIBO
in Echtzeit
24.Januar 2005
Christian Hett
19
Effizienzsteigerung
Grund für große Partikelzahl: Kopplung von
Ball- und Roboterschätzungen
Roboterposition beeinflusst Ballmessung: klar
Ball beeinflusst Roboter: durch Wahrscheinlichkeit
für Partikel, entfernt zu werden
Übergewicht von Ballmessungen:
Ballupdates 20x pro Sekunde
Landmarkenupdates 2x pro Sekunde
Lösung:
Fasse 10 Ballbeobachtungen zusammen pro
Landmarke
Ignoriere Einfluss Ballerkennung auf Position
24.Januar 2005
Christian Hett
20
Idee neuer Algorithmus
Zustandsraum in Roboter- und
Ballposition partitionieren
2 Partikelmengen getrennt updaten
Roboterposition mit normalen Partikeln
Ballposition neu an Roboterposition
binden, wenn Landmarke gesehen. Sonst
Roboterposition des Ballpartikels
fortschreiben.
Funktionierte mit 20 Samples (für Ball)
24.Januar 2005
Christian Hett
21
Das obligatorische Robocup-Video
Videos unter
http://www.cs.washington.edu/ai/M
obile_Robotics/projects/mcl/
24.Januar 2005
22
Christian Hett
22
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.
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
24.Januar 2005
Christian Hett
23
Literatur und Referenzen
Vorgeführte Videos:
http://www.cs.washington.edu/ai/Mobile_Robotics/projects/
mcl/ (Projektseite zum ersten Paper)
Oskar v. Stryk: Vorlesung Mobile und sensorgeführte
Robotiksysteme, Teil 8: Navigation
Oskar v. Stryk: Vorlesung Mobile und sensorgeführte
Robotiksysteme, Teil 5: Markov-Lokalisierung
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
24.Januar 2005
Christian Hett
24
Vielen Dank fürs Zuhören
24.Januar 2005
Christian Hett
25