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