mcl -> slam. x: pose m: map u: robot motions z: observations
TRANSCRIPT
MCL -> SLAM
x: posem: mapu: robot motionsz: observations
The SLAM Problem
Given:-Robot’s controls (u)-Observations of features (z)
Produce:-Map of features (m)-Path of the robot (x)
Indoors
Space
Undersea
Underground
Can’t map without a pose!Can’t localize without a map!
Given:-Robot’s controls (u)-Observations of features (z)
Produce:-Map of features (m)-Path of the robot (x)
Given:-Robot’s controls (u)-Observations of features (z)-Map of features (m)
Produce:-Path of the robot (x)
8Landmark 1 Landmark 2 Landmark M…x, y,
Landmark 1 Landmark 2 Landmark M…x, y, Particle#1
Landmark 1 Landmark 2 Landmark M…x, y, Particle#2
ParticleN
…
So, what’s a particle?
So how do we represent a landmark?
MCL
Landmark’s location: knownLandmark:
SLAM
Landmark’s location: estimatedLandmark:
covariance matrix
So how do we represent a landmark?
MCL
Landmark’s location: knownLandmark:
SLAM
Landmark’s location: estimatedLandmark:
covariance matrix
How do we run this particle filter? =robot_motionobs=robot_observationsforeach p in Particles
p.weight=1p.move( ) // Motion Model!foreach in obs
if never seen beforep.map.add_landmark( ) // Sensor Model!
elsep.map.update_landmark( ) // Sensor Model!
p.weight=p.weight * p.update_weight( ) // Independence!resample()
13
FastSLAM – Action Update
Particle #1
Particle #2
Particle #3
Landmark #1Filter
Landmark #2Filter
14
FastSLAM – Sensor Update
Particle #1
Particle #2
Particle #3
Landmark #1Filter
Landmark #2Filter
15
FastSLAM – Sensor Update
Particle #1
Particle #2
Particle #3
Weight = 0.8
Weight = 0.4
Weight = 0.1
Discussion Questions
• What happens to one landmark’s estimated location if another landmark is observed wrongly?
• What will happen if each landmark is seen exactly once in a trajectory?
• What happens if the robot should see a landmark, and doesn’t? (negative information)
• What happens if the robot misidentifies a landmark?
Discussion Questions
• What if your robot gets re-kidnapped?• What will happen if your robot never moves?• What happens if the robot should see a
landmark, and doesn’t? (negative information)• What happens if the robot misidentifies a
landmark?