150 likes | 332 Views
Paul Sundvall www.s3.kth.se/~pauls Presentation in course “Optimal filtering” Signals, Sensors and Systems, KTH November 11th 2004. An introduction to Particle filtering. Outline. Introduction Comparison with the Kalman filter Description of the algorithm Implementation Example.
E N D
Paul Sundvall www.s3.kth.se/~pauls Presentation in course “Optimal filtering” Signals, Sensors and Systems, KTH November 11th 2004 An introduction to Particle filtering
Outline • Introduction • Comparison with the Kalman filter • Description of the algorithm • Implementation • Example Paul Sundvall
Introduction Particle filtering • is a method for state estimation • is a Monte Carlo method • handles nonlinear models with non-Gaussian noise Paul Sundvall
Kalman filter Particle filter State equation Noise type Output Solution Exact, optimal Approximate Computational speed Fast Slow Comparison to the discrete Kalman filter Any distribution, uni- or multimodal Gaussian, unimodal Paul Sundvall
Significant property The particle filter gives an approximate solution to an exact model, rather than the optimal solution to an approximate model. Paul Sundvall
Algorithm • The propability density function is approximated using point weights • Each point is called a particle • Each particle has a positive weight Basic algorithm: • Initialize • Time update (move particles) • Measurement update (change weights) • Resample (if needed) • Goto 2 when new measurement arrives • Each point is called a particle • Each particle has a positive weight • Initializew
Time Update One-step prediction of each particle Note that a realization of the process noise is used for every particle.
Measurement update • The weights are adjusted using the measurement • All weights are normalized • Particles that can explain the measurement gain weight • Particles far off the true state lose weight. • The density of the cloud changes
Resampling • It can be shown that the algorithm degenerates • Allt particles but one become very light Solved by resampling so that all weights become equal
Implementation • Calculation demand is proportional to the number of particles • The approximation error decreases as the number of particles grow • N can easily be changed during runtime • One needs to know what to do with p(x) is not a good choice for multimodal distributions!
Example • A boat travels on a one-dimensional sea • Noisy depth measurements are given • Given a perfect sea-chart d(x), estimate the position! • Matlab code for the example is available on www.s3.kth.se/~pauls
Final comments • Better the more multimodal, non-linear and non-gaussian the system is • The most basic variants are simple to implement • It is easy to add model knowledge (saturation, limit checking, nonnegativeness...) • Variants of the particle filters exist • To reduce the number of particles needed, by combining Kalman filters and particle filters • To ensure that states with low propability but high risk are tracked despite few particles (fault detection) • To use discrete states • To use both discrete and continuous states (hybrid)
References • A good introduction is given in”A tutorial on Particle Filters for Online Nonlinear/Non-Gaussian Bayesian Tracking”M. Sanjeev Arulampalam et. al. • Very good application examples can be found in”Particle Filters for Positioning, Navigation and Tracking”Fredrik Gustafsson et. al. • A description of how particle filters can be used for fault detection is found in”Particle Filters for Rover Fault Diagnosis”Vandi Verma et. al.