robotic motion planning: cell decompositionsmotionplanning/lecture/lec15.pdf• you may want to...
TRANSCRIPT
RI 16-735 Howie Choset
Robotic Motion Planning:Cell Decompositions
(with some discussion on coverage)
Robotics Institute 16-735http://www.cs.cmu.edu/~motionplanning
Howie Chosethttp://www.cs.cmu.edu/~choset/
RI 16-735 Howie Choset
Homework 6• Handout: Wed Oct 17th• Due: Mon Nov 5th
• For a two-dimensional configuration space, implement the Voronoi diagram using incremental methods.
• You may want to consider breaking your code down into separate modules
• Compute distance to the individual obstacles (assume you have a sensor with infinite sensor range)
• Move away from the closest obstacle until reaching double equidistance • Compute the tangent space of the GVD by passing a line through the two closest points on the
two closest obstacle and taking the line perpendicular to it • Correct by rotating 90 degrees and move onto the GVD • Detect the nodes (meet points) • Compute tangents pairwise of three closest obstacles • Create the graph structure • On your web page, show at least two images in different environments.
RI 16-735 Howie Choset
Reminding Show-Tell (Monday)
• Prepare slides and send them to Hyungpil by Sunday 9pm
• Each group has maximum 75min / 8group = 9 min/group
• So, prepare 8-9 slides to report your progress• Please include the final demo that you plan to do
RI 16-735 Howie Choset
Exact Cell vs. Approximate Cell
• Cell: simple region • Approximate cell
Neighboring cells share boundary
“Exact” cell decomposition
RI 16-735 Howie Choset
Adjacency Graph
– Node correspond to a cell– Edge connects nodes of adjacent cells
• Two cells are adjacent if they share a common boundary
c11c1
c2
c4
c3c6
c5 c8
c7
c10
c9c12
c13
c14
c15
c1 c10
c2
c3
c4 c5
c6
c7
c8
c9
c11
c12
c13
c14
c15
RI 16-735 Howie Choset
Path Planning
• Path Planning in two steps:– Planner determines cells that contain the start
and goal (point location query)– Planner searches for a path within adjacency
graph
RI 16-735 Howie Choset
Types of Decompositions
• Trapezoidal Decomposition• Morse Cell Decomposition
– Boustrophedon decomposition– Morse decomposition definition– Sensor-based coverage– Examples of Morse decomposition
• Visibility-based Decomposition
RI 16-735 Howie Choset
Implementation
• Input is vertices and edges• Sort n vertices O(n logn) – ex. Binary tree sort
• Determine vertical extensions– For each vertex, intersect vertical line with
each edge – O(n) time– Total O(n2) time
RI 16-735 Howie Choset
Sweep line approach
Sweep a line through the space stopping at vertices which are oftencalled events
Maintain a list L of the current edges the slice intersects
Determining the intersection of slice with L requires O(n) time but withan efficient data structure like a balanced tree, perhaps O(log n)
Really, determine between which two edges the vertex or event liesThese edges are
So, really maintaining L takes O(n log n) – log n for insertions, n for vertices
RI 16-735 Howie Choset
Events
In
Out Middle
Anything left to the sweep line is deletedAnything right to the sweep line is inserted
RI 16-735 Howie Choset
A Search Structure
• What data structure supports point location queries?
• Does q lie to the left or to the right of the vertical line thru the endpoint stored at this node?
• Does q lie above or below the segment s stored here?
T(E)
D
AA
AA
BB
CCGG
v1
v3
e1
BBe2
v2
GG
CC
FFDD
CC FF
e2
e3
DDHH
HH
right
right
left
below
below
v1v3
v2e2e3
e1
AA
BB
CC
DDFF
HHGG
x-nodes
y-nodes
left
above below
q
q
RI 16-735 Howie Choset
Randomized Incremental Algorithm
• Simultaneously construct the Trapezoidal map and a data structure
• Algorithm: TrapezoidalMap(E)Input: A set E of n non-crossing line segmentsOutput: Trapezoidal map T(E) and a search structure D1. Initialize the trapezoidal map structure T and D for it2. Compute a random permutation e1, e2, …, en of the elements of E3. for i = 1 to n4. do Find the set ∆0, … ,∆k of trapezoids in T intersected by ei5. remove ∆0, … ,∆k from T, replace them with new trapezoids that appear due to insertion of ei6. remove the leaves for ∆0, … ,∆k from D, create leaves for the new trapezoids. Link new leaves to the existing ones
RI 16-735 Howie Choset
Algorithm: FollowSegment(T,D,si)Input: A trapezoidal map T, a search structure D for T,
and a new segment siOutput: The sequence of trapezoidal intersected by si1. Let p and q be the left and right endpoint of si2. Search with p in D to find ∆03. j ← 04. While q lies to the right of rightp(∆j)5. do if rightp(∆j) lies above si6. then Let ∆j+1 be the lower right neighbor of ∆j7. else Let ∆j+1 be the upper right neighbor of ∆j8. j ← j+19. Return ∆0,…., ∆j
rightp(∆j)
top(∆j)
bottom(∆j)
∆j
RI 16-735 Howie Choset
RIA Example
v1
v3
v2e2
e3e1
v1
v3
e1
AA
BB
CC
DD
T(E)
D
AA
AA
BBCC
DD
v1
v3
e1
BBCC
DD
x-nodes
y-nodes
leftright
above below
{e1, e2, e3}
RI 16-735 Howie Choset
RIA Example
v1
v3
v2e2
e3e1
v1
v3
e1
AA
BB
C?C?
D?D?
T(E)
D
AA
AA
BBCC
DD
v1
v3
e1
BBC?C?
D?D?
x-nodes
y-nodes
leftright
above below
v2
e2
{e1, e2, e3}
RI 16-735 Howie Choset
RIA Example
v1
v3
v2e2
e3e1
v1
v3
e1
AA
BB
CC
DD
T(E)
D
AA
AA
BB
CCGG
v1
v3
e1
BB
v2
e2
FF
e2
v2 GG
GG
DD
FF DD
CC FF
e2
{e1, e2, e3}
RI 16-735 Howie Choset
RIA Example
v1
v3
v2e2
e3e1
v1
v3
e1
AA
BB
CC
D?D?
T(E)
D
AA
AA
BB
CCGG
v1
v3
e1
BB
v2
e2
FF
e2
v2 GG
GG
D?D?CC
FF DD
??
CC FF
e2
{e1, e2, e3}
e3
RI 16-735 Howie Choset
RIA Example
v1
v3
v2e2
e3e1
v1
v3
e1
AA
BB
CC
DD
T(E)
D
AA
AA
BB
CCGG
v1
v3
e1
BB
v2
e2
FFe2
v2
GGGG
CC
FFDD
CC FF
e2
{e1, e2, e3}
e3
e3
HH
DDHH
HH
RI 16-735 Howie Choset
RIA Example: point location query
v1
v3
v2e2
e3e1
v1
v3
e1
AA
BB
CC
DD
T(E)
D
AA
AA
BB
CCGG
v1
v3
e1
BB
v2
e2
FFe2
v2
GGGG
CC
FFDD
CC FF
e2
{e1, e2, e3}
e3
e3
HH
DDHH
HH
right
right
left
below
below
RI 16-735 Howie Choset
Coverage
Planner determines an exhaustive walk through the adjacency graph
Planner computes explicit robot motions within each cell
Problems
1. Polygonal representation2. Quantization3. Position uncertainty4. Full information5. What else?
RI 16-735 Howie Choset
Boustrophedon Decomposition
a b cd
e
ab
c
d
ef
g
h
ij
k
l m
g i jh
fk l m
A
A
B
B
C
hj F
CF
RI 16-735 Howie Choset
• Slice function: h(x,y)= x
• At a critical point x of where M = {x|m(x)=0})()(,| xmxhh M ∇=∇
h∇
m∇
Morse Decomposition in Terms of Critical Points
RI 16-735 Howie Choset
Incremental construction•While covering the space, look for critical points
Stage 1
RI 16-735 Howie Choset
Algorithm• Cover a cell until the closing critical point is
detected• If the closing critical point has “uncleaned” cells
associated with it, chose one and cover, repeat• If the closing critical point has no uncleaned
cells, – search reeb graph for a critical point with an
uncleaned cell– Plan a path (on average shorter than bug2) to critical
point– Cover cell, repeat
• Else coverage is complete
RI 16-735 Howie Choset
Sensor-based Complete Coverage
Time-exposure photo of a coverage experiment
Goal: Complete coverage of an unknown environmentComplete coverage of an unknown environment
RI 16-735 Howie Choset
Sensor-based Complete Coverage
Goal: Complete coverage of an unknown environmentComplete coverage of an unknown environment
Time-exposure photo of a coverage experiment
RI 16-735 Howie Choset
Notation
• A slice is a codimension one manifold (Qλ)
• Slices are parameterized by λ– varying λ sweeps a slice through the
space• The portion of the slice in the free
configuration space (Qfree) is Qfreeλ• Qfreeλ = Qλ ∩ Qfree