CMPUT 412 Experimental Robotics

CMPUT 412
Autonomous Map Building
Csaba Szepesvári
University of Alberta
1
Autonomous Map Building
Starting from an arbitrary initial point,
a mobile robot should be able to
autonomously explore the environment
with its on board sensors,
gain knowledge about it,
interpret the scene,
build an appropriate map
and localize itself relative to this map.
SLAM
The Simultaneous Localization and Mapping Problem
2
How to Establish a Map?
 Methods
 By hand
 Learning
 Why learn?
 Spare cost
 Keep map up-to-date
 Specialize to robot’s perceptual caps
 What map to learn? Uses of a map?
 Localization
 Navigation/planning
 Updateable
 What is a good map?
 Metric correctness
 Topological correctness
 Perceptual correctness
 Map alone is not enough!
12 3.5
3
The Challenges
1. Changes in the environment
e.g. disappearing
cupboard
2. Chicken-egg-problem
position of robot  position of wall
?
position of wall  position of robot
 Represent posterior over presence
of objects in the map!
 Posterior over maps!
4
Map Building – Main Idea
 Localization:
 P( Xt=x | Y1,A1, …, At-1,Yt ) = ?
 x: Possible position
 Xt: Robot’s position at time t
 At: Action at time t
 Yt: percept at time t
 “posterior over states”
 Position from observations
 pdfs over positions!
 Inferring a map from observations?
 pdfs over maps!
 M0: Map randomly drawn at step 0!
 P( M0 = m | Y1,A1, …, At-1,Yt ) = ?
 Dynamic maps:
 Mt+1 ~ p(.|Mt)
 P( Mt = m | Y1,A1, …, At-1,Yt ) = ?
5
How to Build Maps?
 M0: Map randomly drawn at step 0!
 P( M0 = m | Y1,A1, …, At-1,Yt ) = ?
 Dynamic maps:
 Mt+1 ~ p(.|Mt)
 P( Mt = m | Y1,A1, …, At-1,Yt ) = ?
 How to get the posterior?
 BAYES RULE; H_t = Y1,A1, …, At-1,Yt
P( Mt=m|Ht)
~ P(At-1,Yt|Mt=m,Ht-1) P(Mt=m|Ht-1)
¼ P(Yt|Mt=m,Xt-1) x
m’ P(Mt=m|Mt-1=m’)P(Mt-1=m’|Ht-1)
 Too many maps!
 HEURISTICS:
 store likely maps only
 [and/or] compression
6
Map Building
Localization:
 Action update:
bt’ = Act(bt-1)
 Perception update:
bt = See(bt’,Yt,M)
1. Map and action update:
1. mt’ =Evol(mt-1)
2. bt’ = Act(bt-1)
2. Perception update:
1. (bt,,mt) = Consensus(bt’,Yt,mt’)
7
A Semi-Parametric Representation..
m = (Á1 ; : : : ; Ám )
Ái = (x i ; zi ; § i ; ci )
xi – location of feature
zi – mean observation
§i – covariance
ci – confidence
8
Particle Filtering – Localization




Belief representation ¼ “particle cloud”
Particle  position hypothesis
Survival of the fittest
Particle deprivation (histories are not well represented)
ParticleFilter(Xt-1(1),..,Xt-1(N))
1. For i=1 to N do
1. Action update:
// “proposing”
Xt’(i) ~ Act(.|Xt-1(i))
2. Perc. Update:
// “filtering”
wt(i) = p( Yt| Xt’(i))
2. For i=1 to N do
// “resampling”
1. Draw It ~ wt(.)
2. Put Xt’ in Cloud
3. Return (Cloud)
9
Example – Laser Scanning
10
FastSLAM – PF for SLAM
ParticleFilter((Mt-1(i),Xt-1(i)); i=1.., N)
1. For i=1 to N do
1. Xt’(i) = Act(.|Xt-1(i))
2. wt(i) = P(Yt|Xt’(i),Mt-1(i))
3. Mt’(i) = Learn(Yt,Xt’(i),Mt-1(i))
2. For i=1 to N do
1. Draw J with probability / wt(.)
2. Add (Mt’(J),Xt(J)) to Cloud
3. Return (Cloud)
11
Example
3 particles
map of particle 1
map of particle 2
map of particle 3
12
Problem
 Each map is quite big in case of grid maps
 Since each particle maintains its own map
 Therefore, one needs to keep the number
of particles small
 Solution:
Compute better proposal distributions!
 Idea:
Improve the pose estimate before applying
the particle filter
13
Motion Model for Scan Matching
Raw Odometry
Scan Matching
14
When to Resample?
 Resampling is dangerous
 “Effective number of samples”:
 How much variation in weights..
 Only re-sample when neff drops below
a given threshold (n/2)
15
Typical Evolution of neff
visiting new
areas
closing the
first loop
visiting
known areas
second loop closure
16
Intel Lab
 15 particles
 four times faster
than real-time
P4, 2.8GHz
 5cm resolution
during scan
matching
 1cm resolution in
final map
17
Intel Lab
 15 particles
 Compared to
FastSLAM with
Scan-Matching,
the particles are
propagated
closer to the true
distribution
18
Intel Lab
19
Outdoor Campus Map
 30 particles
 250x250m2
 1.75
1.088km
miles
(odometry)
 20cm resolution
during scan
matching
 30cm resolution
in final map
20
Dynamic Environments
?
 Changes require continuous mapping
 Need for better perception!
21
Summary





SLAM
Probabilistic Approach
Particle Filters
FastSLAM
Still many open problems!
 Dynamic Environments
 Exploration?
22