92
HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev http://www.ece.iastate.edu/~alexs/classes/ 2010_Spring_575/

HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Embed Size (px)

Citation preview

Page 1: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

HCI / CprE / ComS 575:

Computational Perception

Instructor: Alexander Stoytchevhttp://www.ece.iastate.edu/~alexs/classes/2010_Spring_575/

Page 2: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Particle Filters

HCI/ComS 575X: Computational PerceptionIowa State UniversityCopyright © Alexander Stoytchev

Page 3: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Sebastian Thrun, Wolfram Burgard and Dieter Fox (2005).

Probabilistic Robotics

MIT Press.

Page 4: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

F. Dellaert, D. Fox, W. Burgard, and S. Thrun (1999).

"Monte Carlo Localization for Mobile Robots", IEEE International Conference on Robotics

and Automation (ICRA99), May, 1999.

Page 5: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Ioannis Rekleitis (2004).

A Particle Filter Tutorial for Mobile Robot Localization.

Technical Report TR-CIM-04-02, Centre for Intelligent Machines, McGill University,

Montreal, Quebec, Canada.

Page 6: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Wednesday

Page 7: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Next Week

• Preliminary Project Presentatons

Page 8: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Represent belief by random samples

Estimation of non-Gaussian, nonlinear processes

Monte Carlo filter, Survival of the fittest, Condensation, Bootstrap filter, Particle filter

Filtering: [Rubin, 88], [Gordon et al., 93], [Kitagawa 96]

Computer vision: [Isard and Blake 96, 98] Dynamic Bayesian Networks: [Kanazawa et al., 95]d

Particle Filters

Page 9: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Example

Page 10: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Using Ceiling Maps for Localization

Page 11: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Vision-based Localization

P(z|x)

h(x)z

Page 12: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Under a LightMeasurement z: P(z|x):

Page 13: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Next to a LightMeasurement z: P(z|x):

Page 14: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

ElsewhereMeasurement z: P(z|x):

Page 15: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Global Localization Using Vision

Page 16: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Sample-based Localization (sonar)

Page 17: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575
Page 18: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Example

Page 19: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Importance Sampling with Resampling:Landmark Detection Example

Page 20: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Distributions

Page 21: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Distributions

Wanted: samples distributed according to p(x| z1, z2, z3)

Page 22: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

This is Easy!We can draw samples from p(x|zl) by adding noise to the detection parameters.

Page 23: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Importance Sampling with Resampling

Weighted samples After resampling

Page 24: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Quick review of Kalman Filters

Page 25: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Conditional density of position based on measured value of z1

[Maybeck (1979)]

Page 26: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Conditional density of position based on measured value of z1

[Maybeck (1979)]

position

measured position

uncertainty

Page 27: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Conditional density of position based on measurement of z2 alone

[Maybeck (1979)]

Page 28: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Conditional density of position based on measurement of z2 alone

[Maybeck (1979)]measured position 2

uncertainty 2

Page 29: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Conditional density of position based on data z1 and z2

[Maybeck (1979)]position estimate

uncertainty estimate

Page 30: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Propagation of the conditional density

[Maybeck (1979)]

Page 31: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Propagation of the conditional density

[Maybeck (1979)]

movement vector

expected position just prior to taking measurement 3

Page 32: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Propagation of the conditional density

[Maybeck (1979)]

movement vector

expected position just prior to taking measurement 3

Page 33: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Propagation of the conditional density

z3

σx(t3)

measured position 3

uncertainty 3

Page 34: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Updating the conditional density after the third measurement

z3

σx(t3)

position uncertainty

position estimate

x(t3)

Page 35: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575
Page 36: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Some Questions

• What if we don’t know the start position of the robot?

• What if somebody moves the robot without the robot’s knowledge?

Page 37: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Robot Odometry Errors

Page 38: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Raw range data, position indexed by odometry

[Thrun, Burgard & Fox (2005)]

Page 39: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Resulting Occupancy Grid Map

[Thrun, Burgard & Fox (2005)]

Page 40: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Basic Idea Behind Particle Filters

x

Page 41: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

In 2D it looks like this

[http://www.ite.uni-karlsruhe.de/METZGER/DIPLOMARBEITEN/dipl2.html]

Page 42: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Robot Pose

Page 43: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Odometry Motion Model

Page 44: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Sampling From the Odometry Model

Page 45: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Motion Model

Page 46: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Motion Model

Page 47: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Velocity model for different noise parameters

Page 48: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Sampling from the velocity model

Page 49: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

In Class Demoof Particle Filters

Page 50: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Example

[Thrun, Burgard & Fox (2005)]

Page 51: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Initially we don’t know the location of the robot so we have particles everywhere

Page 52: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Next, the robot senses that it is near a door

Page 53: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Since there are 3 identical doors the robot can be next any one of them

Page 54: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Therefore, we inflate balls (particles) that are next to doors and shrink all others

Page 55: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Therefore, we grow balls (particles) that are next to doors and shrink all others

Page 56: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Before we continue we have to make all ball to be of equal size. We need to resample.

Page 57: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Before we continue we have to make all ball to be of equal size. We need to resample.

Page 58: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Resampling Rules

=

=

=

Page 59: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Resampling

• Given: Set S of weighted samples.

• Wanted : Random sample, where the probability of drawing xi is given by wi.

• Typically done n times with replacement to generate new sample set S’.

[From Thrun’s book “Probabilistik Robotics”]

Page 60: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

w2

w3

w1wn

Wn-1

Roulette wheel Resampling

w2

w3

w1wn

Wn-1

• Roulette wheel

• Binary search, n log n

• Stochastic universal sampling

• Systematic resampling

• Linear time complexity

• Easy to implement, low variance

[From Thrun’s book “Probabilistik Robotics”]

Page 61: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

1. Algorithm systematic_resampling(S,n):

2.

3. For Generate cdf4. 5. Initialize threshold

6. For Draw samples …7. While ( ) Skip until next threshold reached8. 9. Insert10. Increment threshold

11. Return S’

Resampling Algorithm

11,' wcS

ni 2i

ii wcc 1

1],,0]~ 11 inUu

nj 1

11

nuu jj

ij cu

1,'' nxSS i

1ii

Also called stochastic universal sampling

[From Thrun’s book “Probabilistik Robotics”]

Page 62: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Next, The robot moves to the right

Page 63: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

… thus, we have to shift all balls (particles) to the right

Page 64: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

… thus, we have to shift all balls (particles) to the right

Page 65: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

… and add some position noise

Page 66: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

… and add some position noise

Page 67: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Next, the robot senses that it is next to one of the three doors

Page 68: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Next, the robot senses that it is next to one of the three doors

Page 69: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Now we have to resample again

Page 70: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

The robot moves again

Page 71: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

… so we must move all balls (particles) to the right again

Page 72: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

… and add some position noise

Page 73: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

And so on …

Page 74: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Now Let’s Compare that With Some of the Other Methods

Page 75: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Grid Localization

[Thrun, Burgard & Fox (2005)]

Page 76: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Grid Localization

[Thrun, Burgard & Fox (2005)]

Page 77: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Grid Localization

[Thrun, Burgard & Fox (2005)]

Page 78: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Grid Localization

[Thrun, Burgard & Fox (2005)]

Page 79: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Grid Localization

[Thrun, Burgard & Fox (2005)]

Page 80: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Markov Localization

[Thrun, Burgard & Fox (2005)]

Page 81: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Kalman Filter

[Thrun, Burgard & Fox (2005)]

Page 82: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Particle Filter

[Thrun, Burgard & Fox (2005)]

Page 83: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575
Page 84: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Importance Sampling

• Ideally, the particles would represent samples drawn from the distribution p(x|z).– In practice, we usually cannot get p(x|z) in

closed form; in any case, it would usually be difficult to draw samples from p(x|z).

• We use importance sampling:– Particles are drawn from an importance

distribution.– Particles are weighted by importance weights.

[ http://www.fulton.asu.edu/~morrell/581/ ]

Page 85: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Monte Carlo Samples (Particles)

• The posterior distribution p(x|z) may be difficult or impossible to compute in closed form.

• An alternative is to represent p(x|z) using Monte Carlo samples (particles):– Each particle has a value and a weight

x

x

[ http://www.fulton.asu.edu/~morrell/581/ ]

Page 86: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

In 2D it looks like this

[http://www.ite.uni-karlsruhe.de/METZGER/DIPLOMARBEITEN/dipl2.html]

Page 87: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Objective-Find p(xk|zk,…,z1)

• The objective of the particle filter is to compute the conditional distribution

p(xk|zk,…,z1)

• To do this analytically, we would use the Chapman-Kolmogorov equation and Bayes Theorem along with Markov model assumptions.

• The particle filter gives us an approximate computational technique.

[ http://www.fulton.asu.edu/~morrell/581/ ]

Page 88: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Initial State Distribution

x0

x0

[ http://www.fulton.asu.edu/~morrell/581/ ]

Page 89: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

State Update

x0

x1 = f0 (x0, w0)

x1

[ http://www.fulton.asu.edu/~morrell/581/ ]

Page 90: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Compute Weights

x1

x1

p(z1|x1)

x1

Before

After

[ http://www.fulton.asu.edu/~morrell/581/ ]

Page 91: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

Resample

x1

x1

[ http://www.fulton.asu.edu/~morrell/581/ ]

Page 92: HCI / CprE / ComS 575: Computational Perception Instructor: Alexander Stoytchev alexs/classes/2010_Spring_575

THE END