The City College of New York 1 Dr. John (Jizhong) Xiao Department of Electrical Engineering City College of New York [email protected] Mobile Robot Mapping Introduction to ROBOTICS
Dec 22, 2015
The City College of New York
1
Dr. John (Jizhong) Xiao
Department of Electrical Engineering
City College of New York
Mobile Robot Mapping
Introduction to ROBOTICS
The City College of New York
2
Topics• Brief Review: Motion Planning
• Mobile Robot Mapping– Using sonar to create maps– Bayes Rule– Evidence Grids
The City College of New York
3
Review: Motion Planning
– Configuration Space
– Motion Planning Methods• Roadmap Approaches• Cell Decomposition• Potential Fields• Bug Algorithms
Motion Planning: Find a path connecting an initial configuration to goal configuration without collision with obstacles
The City College of New York
4
Review: Motion Planning• Motion Planning Methodololgies – Roadmap – Cell Decomposition – Potential Field
• Roadmap – From Cfree a graph is defined (Roadmap) – Ways to obtain the Roadmap
• Visibility graph• Voronoi diagram
• Cell Decomposition – The robot free space (Cfree) is decomposed into simple regions (cells) – The path in between two poses of a cell can be easily generated• Potential Field – The robot is treated as a particle acting under the influence of a potential field U, where: • the attraction to the goal is modeled by an additive field • obstacles are avoided by acting with a repulsive force that yields a negative field
Global methods
Local methods
The City College of New York
5
Full-knowledge motion planning
approximate free space
represented via a quadtree
Cell decompositionsRoadmaps
exact free space
represented via convex polygons
visibility graph
voronoi diagram
The City College of New York
6
Potential field Method• Usually assumes some knowledge at the global level
The goal is known; the obstacles sensed
Each contributes forces, and the robot follows the resulting gradient.
The City College of New York
7
Mobot System Overview
Abstraction level
Motor Modeling: what voltage should I set now ?
Control (PID): what voltage should I set over time ?
Kinematics: if I move this motor somehow, what happens in other coordinate systems ?
Motion Planning: Given a known world and a cooperative mechanism, how do I get there from here ?
Bug Algorithms: Given an unknowable world but a known goal and local
sensing, how can I get there from here?
Mapping: Given sensors, how do I create a useful map?
low-level
high-level
Localization: Given sensors and a map, where am I ?Vision: If my sensors are eyes, what do I do?
The City College of New York
8
Mobile Robot Mapping
• Answering robotics’ big questions– How to get a map of an environment with
imperfect sensors (Mapping)– How a robot can tell where it is on a map
(localization)– Getting from place to place under uncertain
conditions– Using vision effectively
The City College of New York
9
Sonar sensing
Why is sonar sensing limited to between ~12 in.
and ~25 feet ?
“The sponge”
Polaroid sonar emitter/receivers
sonar timeline
0
a “chirp” is emitted into the environment
75s
typically when reverberations from the initial chirp have stopped
.5sthe transducer goes into “receiving” mode and awaits a signal...
after a short time, the signal will be too weak to be detected
Sonar (sound navigation and ranging): range sensing using acoustic (i.e., sound) signal
Blanking time Attenuation
The City College of New York
10
Sonar effects
resolution: time / space
(d) Specular reflections cause walls to disappear
(e) Open corners produce a weak spherical wavefront
(f) Closed corners measure to the corner itself because of multiple reflections --> sonar ray tracing
(a) Sonar providing an accurate range measurement
(b-c) Lateral resolution is not very precise; the closest object in the beam’s cone provides the response
The City College of New York
11
Sonar modelinginitial time response
spatial response
Sonar amplitude profile: 3-D cone with side lobes
blanking time
accumulated responses
cone width
The City College of New York
12
Sonar Modelingresponse model (Kuc &
Siegel)
sonar reading
obstacle
c = speed of sound
a = diameter of sonar element (transducer)
t = time
z = orthogonal distance
= angle of environment surface
• Models the response, hR,with
• Then, add noise to the model to obtain a probability:
p( S | o )
chance that the sonar reading is S, given an obstacle at
location o
z =
S
o
The City College of New York
13
Using sonar to create maps
What should we conclude if this sonar reads 10 feet?
10 feet
what would a local map look like?
The City College of New York
14
Using sonar to create maps
What should we conclude if this sonar reads 10 feet?
10 feet
there is something somewhere around here
there isn’t something here
Local Map
unoccupied
occupied
The City College of New York
15
Using sonar to create maps
What should we conclude if this sonar reads 10 feet?
10 feet
there is something somewhere around here
there isn’t something here
Local Mapunoccupied
occupied
or ...
no information
The City College of New York
16
Using sonar to create maps
What should we conclude if this sonar reads 10 feet...
10 feet
and how do we add the information that the next sonar reading (as the robot moves) reads 10 feet, too?
10 feet
The City College of New York
17
Combining sensor readings
• The key to making accurate maps is combining lots of data.
• But combining these numbers means we have to know what they are !
What should our map contain ?
• small cells
• each represents a bit of the robot’s environment
• larger values => obstacle
• smaller values => free
what is in each cell of this sonar model / map ?
The City College of New York
18
What is it a map of?
Several answers to this question have been tried:
It’s a map of occupied cells. oxy oxy cell (x,y) is occupied
cell (x,y) is unoccupied
Each cell is either occupied or unoccupied -- this was the approach taken by the Stanford Cart.
pre ‘83
What information should this map contain, given that it is created with sonar ?
The City College of New York
19
Several answers to this question have been tried:
It’s a map of occupied cells.
It’s a map of probabilities: p( o | S1..i )
p( o | S1..i )
The certainty that a cell is occupied, given the sensor readings S1, S2, …, Si
The certainty that a cell is unoccupied, given the sensor readings S1, S2, …, Si
oxy oxy cell (x,y) is occupied
cell (x,y) is unoccupied
• maintaining related values separately
• initialize all certainty values to zero
‘83 - ‘88
pre ‘83
What is it a map of ?
• contradictory information will lead to both values near 1 • combining them takes some work...
The City College of New York
20
Several answers to this question have been tried:
It’s a map of occupied cells.
It’s a map of probabilities: p( o | S1..i )
p( o | S1..i )
It’s a map of odds.
The certainty that a cell is occupied, given the sensor readings S1, S2, …, Si
The certainty that a cell is unoccupied, given the sensor readings S1, S2, …, Si
The odds of an event are expressed relative to the complement of that event.
odds( o | S1..i ) = p( o | S1..i )p( o | S1..i )
The odds that a cell is occupied, given the sensor readings S1, S2, …,
Si
oxy oxy cell (x,y) is occupied
cell (x,y) is unoccupied
‘83 - ‘88
pre ‘83
What is it a map of ?
probabilities
evidence = log2(odds)
The City College of New York
21
An example map
units: feetEvidence grid of a tree-lined outdoor path
lighter areas: lower odds of obstacles being present
darker areas: higher odds of obstacles being presenthow to combine them?
The City College of New York
22
Combining probabilities
How to combine two sets of probabilities into a single map ?
The City College of New York
23
Conditional probability
Some intuition...
p( o | S ) = The probability of event o, given event S .The probability that a certain cell o is occupied, given that the robot sees the sensor reading S .
p( S | o ) = The probability of event S, given event o .The probability that the robot sees the sensor reading S , given that a certain cell o is occupied.
• What is really meant by conditional probability ?
• How are these two probabilities related?
p( o | S ) = p(S | o) ??
The City College of New York
24
Bayes Rule
p( o S ) = p( o | S ) p( S )
- Joint probabilities/Conditional probabilities
The City College of New York
25
Bayes Rule
- Bayes rule relates conditional probabilities
p( o | S ) = p( S | o ) p( o )
p( S )Bayes rule
p( o S ) = p( o | S ) p( S )
- Joint probabilities/Conditional probabilities
The City College of New York
26
Bayes Rule
- Bayes rule relates conditional probabilities
p( o | S ) = p( S | o ) p( o )
- So, what does this say about
p( S )Bayes rule
odds( o | S2 S1 ) ?
p( o S ) = p( o | S ) p( S )
- Joint probabilities/Conditional probabilities
Can we update easily ?
The City College of New York
27
Combining evidence
So, how do we combine evidence to create a map?
What we want --
odds( o | S2 S1) the new value of a cell in the map after the sonar reading S2
What we know --
odds( o | S1) the old value of a cell in the map (before sonar reading S2)
p( Si | o ) & p( Si | o ) the probabilities that a certain obstacle causes the sonar reading Si
The City College of New York
28
Combining evidence
odds( o | S2 S1) = p( o | S2 S1 )
p( o | S2 S1 )
The City College of New York
29
Combining evidence
odds( o | S2 S1) = p( o | S2 S1 )
p( o | S2 S1 )
. = p( S2 S1 | o ) p(o)
p( S2 S1 | o ) p(o)
def’n of odds
The City College of New York
30
p( S2 | o ) p( S1 | o ) p(o)
Combining evidence
odds( o | S2 S1) = p( o | S2 S1 )
p( o | S2 S1 )
. =
. =
p( S2 S1 | o ) p(o)
p( S2 S1 | o ) p(o)
p( S2 | o ) p( S1 | o ) p(o)
def’n of odds
Bayes’ rule (+)
The City College of New York
31
p( S2 | o ) p( S1 | o ) p(o)
Combining evidence
odds( o | S2 S1) = p( o | S2 S1 )
p( o | S2 S1 )
. =
. =
. =
p( S2 S1 | o ) p(o)
p( S2 S1 | o ) p(o)
p( S2 | o ) p( S1 | o ) p(o)
def’n of odds
Bayes’ rule (+)
conditional independence of S1 and
S2
p( S2 | o ) p( o | S1 )p( S2 | o ) p( o | S1 ) Bayes’ rule
(+)
The City College of New York
32
p( S2 | o ) p( S1 | o ) p(o)
Combining evidence
odds( o | S2 S1) = p( o | S2 S1 )
p( o | S2 S1 )
. =
. =
. =
p( S2 S1 | o ) p(o)
p( S2 S1 | o ) p(o)
p( S2 | o ) p( S1 | o ) p(o)
Update step = multiplying the previous odds by a precomputed weight.
def’n of odds
Bayes’ rule (+)
conditional independence of S1 and
S2
p( S2 | o ) p( o | S1 )p( S2 | o ) p( o | S1 ) Bayes’ rule
(+)
previous oddsprecomputed valuesthe sensor model
The City College of New York
33
Evidence Grids...
Mapping Using Evidence grids
The City College of New York
34
represent space as a collection of cells, each with the odds (or probability) that it contains an obstacle
Lab environment
not surelikely obstacle
likely free space
Evidence Grids...
evidence = log2(odds)
Mapping Using Evidence grids
lighter areas: lower odds of obstacles being present
darker areas: higher odds of obstacles being present
The City College of New York
35
represent space as a collection of cells, each with the odds (or probability) that it contains an obstacle
Lab environment
not surelikely obstacle
likely free space
• The relative locations of the robot within the map are assumed known.• It is important that the robot odometry is correct
Evidence Grids...
Mapping Using Evidence grids
The City College of New York
36
hallway with some open doors
known map and estimated evidence grid
lab spaceCMU -- Hans
Moravec
Mapping Using Evidence grids
The City College of New York
37
Motion Planning in Evidence Grids
Reduces to a search problem within the graph of cells, and the graph is created on the fly.
Search for a minimum-cost path, depending on
•length
•probability of collision
The City College of New York
38
Path Planning in Evidence Grids
Reduces to a search problem within the graph of cells, and the graph is created on the fly.
Search for a minimum-cost path, depending on
cost = K stepij + collision penalty
•length
•probability of collision
(i,j) path (i,j) path
stepij = length of traversing cell (i,j)
What should this be?
The City College of New York
39
Path Planning in Evidence Grids
Reduces to a search problem within the graph of cells, and the graph is created on the fly.
Search for a minimum-cost path, depending on
cost = K stepij + -log( 1-p )
•length
•probability of collision
(i,j) path (i,j) path
Suppose p is the chance of colliding with an obstacle in cell (i,j).
stepij = length of traversing cell (i,j)
The City College of New York
40
Robot Mapping
represent space as a collection of cells, each with the odds (or probability) that it contains an obstacle
Lab environment
not surelikely obstacle
likely free space
• The relative locations of the robot within the map are assumed known.• It is important that the robot odometry is correct
• Equally plausible to consider the converse problem...
Evidence Grids...
Given a map of the environment, how do I determine where I am?
“Robot localization problem”
The City College of New York
41
Localization via mapping
Key idea: use what we already know how to do -- mapping
• Map the area around the robot
• Match the result to the known map of the world
The City College of New York
42
Localization via mapping
Key idea: use what we already know how to do -- mapping
• Map the area around the robot
• Match the result to the known map of the world
The City College of New York
43
Thank you!Homework 9 posted on the web
Next class: Localization