Particle filter demonstration using TrackSim program -------------------- Movitation Filter->Kalman SysNoise->Gaussian MeasNoise->Half Gaussian (pause here, look at distribution) Display scale: 128:1 (default) MeasNoise scale: 1.0 (default) SysNoise scale: 0.015625 (press 'k' 6 times) Run->continuous KF cannot handle non-Gaussian distribution -------------------- The basics -- use 's' to run, so can pause note: MeasNoise/SysNoise = actual MEAS_NOISE/DYN_NOISE = filter Filter->Particle SysNoise->Gaussian MeasNoise->Half Gaussian Plot->Display->matrix values (so can see ratio of Q to R) Display scale: 128:1 (default) MeasNoise scale: 1.0 (default) SysNoise scale: 0.015625 (press 'k' 6 times) Run pressing 's' one step at a time, look at particle distribution and weights Pause and step through resampling iteration (ESS < 0.1) Increase dynamic noise SysNoise scale: 0.125 (press 'i' 3 times) look at effect of dynamic noise on distribution Pause and look at output (using E[] = mean) System->reset (if particle weights all low, this crashes) think about iterative nature of process if p(y|x) for every particle ~= 0, what happens? solution-finding process is stuck -------------------- Explain effect of #particles System->reset Variables->PF->#particles = 30 Run pressing 's' .... (look at ability of particles to accurately represent distribution) Run->continuous (notice speed - fast with few particles) Run->stop System->reset Variables->PF->#particles = 9999 (max) Run pressing 's' .... (now look at distribution - much more defined) Run->continuous (slow; this is the tradeoff) -------------------- Demo magnets system System->reset Variables->PF->#particles = 1000 SysNoise->Gaussian MeasNoise->Gaussian System->Magnets (automatically sets noise amounts) Plot->Display->Filter output (turn off) Run->continuous ... wait for bigger oscillations Explain axes -- sensor ossilating past magnets, reading strength upside down (lower = closer to magnet) this is easiest to see with very low MeasNoise Plot->Display->Filter output (turn on) Run->continuous ... particle distribution is clearly non-Gaussian ** output may mirror due to symmetry of problem