Bayesian Filtering for Robot Localization CSE-473.

77
Bayesian Filtering for Robot Localization CSE-473

Transcript of Bayesian Filtering for Robot Localization CSE-473.

Page 1: Bayesian Filtering for Robot Localization CSE-473.

Bayesian Filteringfor Robot Localization

CSE-473

Page 2: Bayesian Filtering for Robot Localization CSE-473.

Probabilistic Robotics

Key idea: Explicit representation of uncertainty

(using the calculus of probability theory)

•Perception = state estimation

•Control = utility optimization

Page 3: Bayesian Filtering for Robot Localization CSE-473.

Localization

• Given • Map of the environment.• Sequence of sensor measurements.

• Wanted• Estimate of the robot’s position.

• Problem classes• Position tracking• Global localization• Kidnapped robot problem (recovery)

“Using sensory information to locate the robot in its environment is the most fundamental problem to providing a mobile robot with autonomous capabilities.” [Cox ’91]

Page 4: Bayesian Filtering for Robot Localization CSE-473.

Bayes Filters for Robot Localization

Page 5: Bayesian Filtering for Robot Localization CSE-473.

Bayes Filters: Framework

• Given:• Stream of observations z and action data u:

• Sensor model P(z|x).• Action model P(x|u,x’).• Prior probability of the system state P(x).

• Wanted: • Estimate of the state X of a dynamical system.• The posterior of the state is also called Belief:

),,,|()( 121 tttt zuzuxPxBel

},,,{ 121 ttt zuzud

Page 6: Bayesian Filtering for Robot Localization CSE-473.

Graphical Model of Localization

m

x

z

u

x

z

u

2

2

x

z

u

... t

t

x 1

1

0

10 t-1

Page 7: Bayesian Filtering for Robot Localization CSE-473.

Markov Assumption

Underlying Assumptions• Static world• Independent noise• Perfect model, no approximation errors

),|(),,|( 1:11:11:1 ttttttt uxxpuzxxp )|(),,|( :11:1:0 tttttt xzpuzxzp

Page 8: Bayesian Filtering for Robot Localization CSE-473.

Two Time Slice Representation of Dynamic Bayes Net

x

z

u

t-1

t-1

x

z

u

t

t

x0

t-1 t

Page 9: Bayesian Filtering for Robot Localization CSE-473.

Belief Update

xt-1 x

z

u

t

t

t

111

111

11

)d(),|()|(

)d()|(),|(

d),,,(),|(

ttttttt

ttttttt

tttttttt

xxpxuxpxzp

xxpxzpxuxp

xxzuxpzuxp

Page 10: Bayesian Filtering for Robot Localization CSE-473.

Bayes Filters

),,,|(),,,,|( 121121 ttttt uzuxPuzuxzP Bayes

z = observationu = actionx = state

),,,|()( 121 tttt zuzuxPxBel

Markov ),,,|()|( 121 tttt uzuxPxzP

1111 )(),|()|( ttttttt dxxBelxuxPxzP

Markov1121111 ),,,|(),|()|( tttttttt dxuzuxPxuxPxzP

11211

1121

),,,|(

),,,,|()|(

ttt

ttttt

dxuzuxP

xuzuxPxzP

Total prob.

Page 11: Bayesian Filtering for Robot Localization CSE-473.

Representations for Bayesian Robot Localization

Discrete approaches (’95)• Topological representation (’95)

• uncertainty handling (POMDPs)• occas. global localization, recovery

• Grid-based, metric representation (’96)• global localization, recovery

Multi-hypothesis (’00)• multiple Kalman filters• global localization, recovery

Particle filters (’99)• sample-based representation• global localization, recovery

Kalman filters (late-80s?)• Gaussians• approximately linear models• position tracking

AI

Robotics

Page 12: Bayesian Filtering for Robot Localization CSE-473.

Particle Filters

Page 13: Bayesian Filtering for Robot Localization CSE-473.

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 14: Bayesian Filtering for Robot Localization CSE-473.

Sample-based Density Representation

Page 15: Bayesian Filtering for Robot Localization CSE-473.

Weight samples: w = f / g

Importance Sampling

Page 16: Bayesian Filtering for Robot Localization CSE-473.

Particle Filters

Page 17: Bayesian Filtering for Robot Localization CSE-473.

)|()(

)()|()()|()(

xzpxBel

xBelxzpw

xBelxzpxBel

Sensor Information: Importance Sampling

Page 18: Bayesian Filtering for Robot Localization CSE-473.

'd)'()'|()( , xxBelxuxpxBel

Robot Motion

Page 19: Bayesian Filtering for Robot Localization CSE-473.

)|()(

)()|()()|()(

xzpxBel

xBelxzpw

xBelxzpxBel

Sensor Information: Importance Sampling

Page 20: Bayesian Filtering for Robot Localization CSE-473.

Robot Motion

'd)'()'|()( , xxBelxuxpxBel

Page 21: Bayesian Filtering for Robot Localization CSE-473.

draw xit1 from Bel(xt1)

draw xit from p(xt | xi

t1,ut1)

Importance factor for xit:

)|()(),|(

)(),|()|(ondistributi proposal

ondistributitarget

111

111

tt

tttt

tttttt

it

xzpxBeluxxp

xBeluxxpxzp

w

1111 )(),|()|()( tttttttt dxxBeluxxpxzpxBel

Particle Filter Algorithm

Page 22: Bayesian Filtering for Robot Localization CSE-473.

Start

Motion Model Reminder

Page 23: Bayesian Filtering for Robot Localization CSE-473.

Proximity Sensor Model Reminder

Laser sensor Sonar sensor

Page 24: Bayesian Filtering for Robot Localization CSE-473.

Sample-based Localization (sonar)

Page 25: Bayesian Filtering for Robot Localization CSE-473.
Page 26: Bayesian Filtering for Robot Localization CSE-473.
Page 27: Bayesian Filtering for Robot Localization CSE-473.
Page 28: Bayesian Filtering for Robot Localization CSE-473.
Page 29: Bayesian Filtering for Robot Localization CSE-473.
Page 30: Bayesian Filtering for Robot Localization CSE-473.
Page 31: Bayesian Filtering for Robot Localization CSE-473.
Page 32: Bayesian Filtering for Robot Localization CSE-473.
Page 33: Bayesian Filtering for Robot Localization CSE-473.
Page 34: Bayesian Filtering for Robot Localization CSE-473.
Page 35: Bayesian Filtering for Robot Localization CSE-473.
Page 36: Bayesian Filtering for Robot Localization CSE-473.
Page 37: Bayesian Filtering for Robot Localization CSE-473.
Page 38: Bayesian Filtering for Robot Localization CSE-473.
Page 39: Bayesian Filtering for Robot Localization CSE-473.
Page 40: Bayesian Filtering for Robot Localization CSE-473.
Page 41: Bayesian Filtering for Robot Localization CSE-473.
Page 42: Bayesian Filtering for Robot Localization CSE-473.
Page 43: Bayesian Filtering for Robot Localization CSE-473.
Page 44: Bayesian Filtering for Robot Localization CSE-473.

Using Ceiling Maps for Localization

[Dellaert et al. 99]

Page 45: Bayesian Filtering for Robot Localization CSE-473.

Vision-based Localization

P(z|x)

h(x)z

Page 46: Bayesian Filtering for Robot Localization CSE-473.

Under a Light

Measurement z: P(z|x):

Page 47: Bayesian Filtering for Robot Localization CSE-473.

Next to a Light

Measurement z: P(z|x):

Page 48: Bayesian Filtering for Robot Localization CSE-473.

Elsewhere

Measurement z: P(z|x):

Page 49: Bayesian Filtering for Robot Localization CSE-473.

Global Localization Using Vision

Page 50: Bayesian Filtering for Robot Localization CSE-473.

Localization for AIBO robots

Page 51: Bayesian Filtering for Robot Localization CSE-473.

Adaptive Sampling

Page 52: Bayesian Filtering for Robot Localization CSE-473.

Example Run Sonar

Page 53: Bayesian Filtering for Robot Localization CSE-473.

Example Run Laser

Page 54: Bayesian Filtering for Robot Localization CSE-473.

Example Run

Page 55: Bayesian Filtering for Robot Localization CSE-473.

Tracking with a Moving Robot

Page 56: Bayesian Filtering for Robot Localization CSE-473.

Ball Tracking in RoboCup

Extremely noisy (nonlinear) motion of observer

Inaccurate sensing, limited processing power

Interactions between target and environment

Interactions between robot(s) and targetGoal: Unified framework for modeling

the ball and its interactions.

Page 57: Bayesian Filtering for Robot Localization CSE-473.

Dynamic Bayes Network for Ball Tracking

k-2b k-1b kb

r k-2 r k-1 r k

z k-2 z k-1 z k

u k-2 u k-1

z k-1 z kz k-2

kmk-1mk-2m

Ball observation

Ball location and velocity

Ball motion mode

Map and robot location

Robot control

Landmark detection

Bal

l tra

ckin

gR

obot

loca

liza

tion l l l

b b b

Page 58: Bayesian Filtering for Robot Localization CSE-473.

Rao-Blackwellised PF for Inference Represent posterior by random samples

Each sample

contains robot location, ball mode, ball Kalman filter

Generate individual components of a particle stepwise using the factorization

iiiiiii myxbmrs ,,,,,,,

),|(),,|(),,,|(

),|,,(

1:1:1:11:1:1:1:11:1:1:1:1

1:1:1:1:1

kkkkkkkkkkkk

kkkkk

uzrpuzrmpuzrmbp

uzrmbp

Page 59: Bayesian Filtering for Robot Localization CSE-473.

Ball-Environment Interaction

Page 60: Bayesian Filtering for Robot Localization CSE-473.

GPS Receivers We Used

Nokia 6600 Java Cell Phone with Bluetooth

GPS unit

GeoStats wearable

GPS logger

Page 61: Bayesian Filtering for Robot Localization CSE-473.

Geographic Information Systems

Bus routes and bus stopsData source: Metro GIS

Street mapData source: Census 2000

Tiger/line data

Page 62: Bayesian Filtering for Robot Localization CSE-473.

Adding Mode of Transportation

GPS readingzk-1 zk

Edge, velocity, positionxk-1 xk

k-1 k Data (edge) association

Time k-1 Time k

mk-1 mk Transportation mode

Page 63: Bayesian Filtering for Robot Localization CSE-473.

Infer Location and Transportation

Measurements

Projections

Bus mode

Car mode

Foot mode

Green

Red

Blue

Page 64: Bayesian Filtering for Robot Localization CSE-473.

Hierarchical Model

GPS readingzk-1 zk

Edge, velocity, positionxk-1 xk

k-1 k Data (edge) association

Time k-1 Time k

mk-1 mk Transportation mode

tk-1 tk Trip segment

gk-1 gk Goal

Page 65: Bayesian Filtering for Robot Localization CSE-473.

Predict Goal and Path

Predicted goal

Predicted path

Page 66: Bayesian Filtering for Robot Localization CSE-473.

Application: Opportunity Knocks

Page 67: Bayesian Filtering for Robot Localization CSE-473.

Detect User Errors

Untrained Trained Instantiated

Page 68: Bayesian Filtering for Robot Localization CSE-473.

Application: Opportunity Knocks

Page 69: Bayesian Filtering for Robot Localization CSE-473.

Particle Filter Algorithm

Page 70: Bayesian Filtering for Robot Localization CSE-473.

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’.

Page 71: Bayesian Filtering for Robot Localization CSE-473.

w2

w3

w1wn

Wn-1

Resampling

w2

w3

w1wn

Wn-1

• Roulette wheel

• Binary search, log n

• Stochastic universal sampling

• Systematic resampling

• Linear time complexity

• Easy to implement, low variance

Page 72: Bayesian Filtering for Robot Localization CSE-473.

Resampling Algorithm

Page 73: Bayesian Filtering for Robot Localization CSE-473.

Probabilistic Kinematics

22 )'()'( yyxxtrans

)','(atan21 xxyyrot

12 ' rotrot

• Robot moves from to .

• Odometry information .

,, yx ',',' yx

transrotrotu ,, 21

trans1rot

2rot

,, yx

',',' yx

Page 74: Bayesian Filtering for Robot Localization CSE-473.

Noise Model for Motion

•The measured motion is given by the true motion corrupted with noise.

•To predict sample position, just sample from “noisy version” of measured motion.

||||11 211

ˆtransrotrotrot

||||22 221

ˆtransrotrotrot

|||| 2143

ˆrotrottranstranstrans

Page 75: Bayesian Filtering for Robot Localization CSE-473.

Gaussian Noise Model

2

2

22

1

22

1)(

x

ex

Normal distribution

Page 76: Bayesian Filtering for Robot Localization CSE-473.

Examples (odometry based)

Page 77: Bayesian Filtering for Robot Localization CSE-473.

Motion Model with Map

)',|( xuxP )',|()|(),',|( xuxPmxPmxuxP

• When does this approximation fail?