particle filters - people · particle filters revisited 1. algorithm particle_filter( s t-1, u t, z...

57
Particle Filters Pieter Abbeel UC Berkeley EECS Many slides adapted from Thrun, Burgard and Fox, Probabilistic Robotics

Upload: ngothu

Post on 26-May-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Particle Filters

Pieter Abbeel UC Berkeley EECS

Many slides adapted from Thrun, Burgard and Fox, Probabilistic Robotics TexPoint fonts used in EMF.

Read the TexPoint manual before you delete this box.: AAAAAAAAAAAAA

Page 2: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

2

§  For continuous spaces: often no analytical formulas for Bayes filter updates

§  Solution 1: Histogram Filters: (not studied in this lecture)

§  Partition the state space

§  Keep track of probability for each partition

§  Challenges:

§  What is the dynamics for the partitioned model?

§  What is the measurement model?

§  Often very fine resolution required to get reasonable results

§  Solution 2: Particle Filters:

§  Represent belief by random samples

§  Can use actual dynamics and measurement models

§  Naturally allocates computational resources where required (~ adaptive resolution)

§  Aka Monte Carlo filter, Survival of the fittest, Condensation, Bootstrap filter

Motivation

Page 3: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Sample-based Localization (sonar)

Page 4: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Given a sample-based representation

of Bel(xt) = P(xt | z1, …, zt, u1, …, ut)

Find a sample-based representation

of Bel(xt+1) = P(xt+1 | z1, …, zt, zt+1 , u1, …, ut+1)

Problem to be Solved

St = {xt1, xt

2,..., xtN}

St+1 = {xt+11 , xt+1

2 ,..., xt+1N }

Page 5: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Given a sample-based representation

of Bel(xt) = P(xt | z1, …, zt, u1, …, ut)

Find a sample-based representation

of P(xt+1 | z1, …, zt, u1, …, ut+1)

n  Solution: n  For i=1, 2, …, N

n  Sample xit+1 from P(Xt+1 | Xt = xi

t, ut+1)

Dynamics Update

St = {xt1, xt

2,..., xtN}

Page 6: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Given a sample-based representation of

P(xt+1 | z1, …, zt)

Find a sample-based representation of

P(xt+1 | z1, …, zt, zt+1) = C * P(xt+1 | z1, …, zt) * P(zt+1 | xt+1)

n  Solution: n  For i=1, 2, …, N

n  w(i)t+1 = w(i)

t* P(zt+1 | Xt+1 = x(i)t+1)

n  the distribution is represented by the weighted set of samples

Observation update

{xt+11 , xt+1

2 ,..., xt+1N }

{< xt+11 ,wt+1

1 >,< xt+12 ,wt+1

2 >,...,< xt+1N ,wt+1

N >}

Page 7: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Sample x11, x2

1, …, xN1 from P(X1)

n  Set wi1= 1 for all i=1,…,N

n  For t=1, 2, …

n  Dynamics update: n  For i=1, 2, …, N

n  Sample xit+1 from P(Xt+1 | Xt = xi

t , ut+1)

n  Observation update: n  For i=1, 2, …, N

n  wit+1 = wi

t* P(zt+1 | Xt+1 = xit+1)

n  At any time t, the distribution is represented by the weighted set of samples

{ <xit, wi

t> ; i=1,…,N}

Sequential Importance Sampling (SIS) Particle Filter

Page 8: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  The resulting samples are only weighted by the evidence

n  The samples themselves are never affected by the evidence

à Fails to concentrate particles/computation in the high probability areas of the distribution P(xt | z1, …, zt)

SIS particle filter major issue

Page 9: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  At any time t, the distribution is represented by the weighted set of samples

{ <xit, wi

t> ; i=1,…,N}

à  Sample N times from the set of particles

à  The probability of drawing each particle is given by its importance weight

à More particles/computation focused on the parts of the state space with high probability mass

Sequential Importance Resampling (SIR)

Page 10: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

1.  Algorithm particle_filter( St-1, ut , zt):

2. 

3.  For Generate new samples 4.  Sample index j(i) from the discrete distribution given by wt-1

5.  Sample from using and

6.  Compute importance weight 7.  Update normalization factor

8.  Insert 9.  For

10.  Normalize weights

11.  Return St

0, =∅= ηtSni …1=

},{ ><∪= it

ittt wxSS

itw+=ηη

itx p(xt | xt!1,ut ) )(

1ij

tx −

)|( itt

it xzpw =

ni …1=

η/itit ww =

ut

Sequential Importance Resampling (SIR) Particle Filter

Page 11: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Particle Filters

Page 12: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Sensor Information: Importance Sampling

Page 13: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Robot Motion

Page 14: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Sensor Information: Importance Sampling

Page 15: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Robot Motion

Page 16: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

20

Page 17: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

21

Page 18: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

22

Page 19: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

23

Page 20: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

24

Page 21: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

25

Page 22: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

26

Page 23: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

27

Page 24: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

28

Page 25: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

29

Page 26: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

30

Page 27: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

31

Page 28: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

32

Page 29: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

33

Page 30: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

34

Page 31: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

35

Page 32: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

36

Page 33: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

37

Page 34: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Noise Dominated by Motion Model

[Grisetti, Stachniss, Burgard, T-RO2006]

à Most particles get (near) zero weights and are lost.

Page 35: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Theoretical justification: for any function f we have:

n  f could be: whether a grid cell is occupied or not, whether the position of a robot is within 5cm of some (x,y), etc.

Importance Sampling

Page 36: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Task: sample from density p(.)

n  Solution:

n  sample from “proposal density” ¼(.)

n  Weight each sample x(i) by p(x(i)) / ¼(x(i))

n  E.g.:

n  Requirement: if ¼(x) = 0 then p(x) = 0.

Importance Sampling

p ¼

Page 37: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Particle Filters Revisited 1.  Algorithm particle_filter( St-1, ut , zt):

2. 

3.  For Generate new samples 4.  Sample index j(i) from the discrete distribution given by wt-1

5.  Sample from

6.  Compute importance weight

7.  Update normalization factor 8.  Insert 9.  For

10.  Normalize weights 11.  Return St

0, =∅= ηtSni …1=

},{ ><∪= it

ittt wxSS

itw+=ηη

itx ! (xt | x

j (i)t!1,ut, zt )

wti =

p(zt | xti )p(xt

i | xt!1i ,ut )

! (xti | xt!1

i ,ut , zt )

ni …1=

η/itit ww =

Page 38: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Optimal =

à

n  Applying Bayes rule to the denominator gives:

n  Substitution and simplification gives

Optimal Sequential Proposal ¼(.)

! (xt | xit!1,ut, zt ) p(xt | x

it!1,ut, zt )

p(xit|xi

t−1, ut, zt) =p(zt|xi

t, ut, xit−1)p(x

it|xi

t−1, ut)

p(zt|xit−1, ut)

wit =

p(zt|xit)p(x

it|xi

t−1, ut)

π(xit|xi

t−1, ut, zt)

=p(zt|xi

t)p(xit|xi

t−1, ut)

p(xit|xi

t−1, ut, zt)

Page 39: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Optimal =

n  à

n  Challenges:

n  Typically difficult to sample from

n  Importance weight: typically expensive to compute integral

! (xt | xit!1,ut, zt ) p(xt | x

it!1,ut, zt )

p(xt | xit!1,ut, zt )

Optimal Sequential Proposal ¼(.)

Page 40: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Nonlinear Gaussian State Space Model:

n  Then:

with

n  And:

Example 1: ¼(.) = Optimal Proposal Nonlinear Gaussian State Space Model

Page 41: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Example 2: ¼(.) = Motion Model

n  à the “standard” particle filter

Page 42: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Example 3: Approximating Optimal ¼ for Localization

[Grisetti, Stachniss, Burgard, T-RO2006]

n  One (not so desirable solution): use smoothed likelihood such that more particles retain a meaningful weight --- BUT information is lost

n  Better: integrate latest observation z into proposal ¼

Page 43: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

1.  Initial guess

2.  Execute scan matching starting from the initial guess , resulting in pose estimate .

3.  Sample K points in region around .

4.  Proposal distribution is Gaussian with mean and covariance:

5.  Sample from (approximately optimal) sequential proposal distribution.

6.  Weight =

Example 3: Approximating Optimal ¼ for Localization: Generating One Weighted Sample

x�p(zt|x�,m)p(x�|xi

t−1, ut)dx� ≈ ηi

Build Gaussian Approximation to Optimal Sequential Proposal

Page 44: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Example 3: Example Particle Distributions

[Grisetti, Stachniss, Burgard, T-RO2006]

Particles generated from the approximately optimal proposal distribution. If using the standard motion model, in all three cases the particle set would have been similar to (c).

Page 45: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Consider running a particle filter for a system with deterministic dynamics and no sensors

n  Problem:

n  While no information is obtained that favors one particle over another, due to resampling some particles will disappear and after running sufficiently long with very high probability all particles will have become identical.

n  On the surface it might look like the particle filter has uniquely determined the state.

n  Resampling induces loss of diversity. The variance of the particles decreases, the variance of the particle set as an estimator of the true belief increases.

Resampling

Page 46: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Effective sample size:

n  Example:

n  All weights = 1/N à Effective sample size = N

n  All weights = 0, except for one weight = 1 à Effective sample size = 1

n  Idea: resample only when effective sampling size is low

Resampling Solution I

Normalized weights

Page 47: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

Resampling Solution I (ctd)

Page 48: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  M = number of particles

n  r 2 [0, 1/M]

n  Advantages:

n  More systematic coverage of space of samples

n  If all samples have same importance weight, no samples are lost

n  Lower computational complexity

Resampling Solution II: Low Variance Sampling

Page 49: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Loss of diversity caused by resampling from a discrete distribution

n  Solution: “regularization”

n  Consider the particles to represent a continuous density

n  Sample from the continuous density

n  E.g., given (1-D) particles

sample from the density:

Resampling Solution III

Page 50: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  = when there are no particles in the vicinity of the correct state

n  Occurs as the result of the variance in random sampling. An unlucky series of random numbers can wipe out all particles near the true state. This has non-zero probability to happen at each time à will happen eventually.

n  Popular solution: add a small number of randomly generated particles when resampling.

n  Advantages: reduces particle deprivation, simplicity.

n  Con: incorrect posterior estimate even in the limit of infinitely many particles.

n  Other benefit: initialization at time 0 might not have gotten anything near the true state, and not even near a state that over time could have evolved to be close to true state now; adding random samples will cut out particles that were not very consistent with past evidence anyway, and instead gives a new chance at getting close the true state.

Particle Deprivation

Page 51: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Simplest: Fixed number.

n  Better way:

n  Monitor the probability of sensor measurements

which can be approximated by:

n  Average estimate over multiple time-steps and compare to typical values when having reasonable state estimates. If low, inject random particles.

Particle Deprivation: How Many Particles to Add?

Page 52: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with
Page 53: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  Consider a measurement obtained with a noise-free sensor, e.g., a noise-free laser-range finder---issue?

n  All particles would end up with weight zero, as it is very unlikely to have had a particle matching the measurement exactly.

n  Solutions:

n  Artificially inflate amount of noise in sensors

n  Better proposal distribution (e.g., optimal sequential proposal)

Noise-free Sensors

Page 54: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  E.g., typically more particles need at the beginning of localization run

n  Idea:

n  Partition the state-space

n  When sampling, keep track of number of bins occupied

n  Stop sampling when a threshold that depends on the number of occupied bins is reached

n  If all samples fall in a small number of bins à lower threshold

Adapting Number of Particles: KLD-Sampling

Page 55: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

n  z_{1-±}: the upper 1-± quantile of the standard normal distribution

n  ± = 0.01 and ² = 0.05 works well in practice

Page 56: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

KLD-sampling

Page 57: Particle Filters - People · Particle Filters Revisited 1. Algorithm particle_filter( S t-1, u t, z t): 2. 3. ... " Consider running a particle filter for a system with

KLD-sampling