robotic motion planning: cell decompositionsmotionplanning/lecture/lec15.pdf• you may want to...

68
RI 16-735 Howie Choset Robotic Motion Planning: Cell Decompositions (with some discussion on coverage) Robotics Institute 16-735 http://www.cs.cmu.edu/~motionplanning Howie Choset http://www.cs.cmu.edu/~choset/

Upload: vohanh

Post on 22-May-2018

214 views

Category:

Documents


0 download

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

Definition

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

Trapezoidal Decomposition

RI 16-735 Howie Choset

Trapezoidal Decomposition

RI 16-735 Howie Choset

Trapezoidal Decomposition

RI 16-735 Howie Choset

Trapezoidal Decomposition

RI 16-735 Howie Choset

Trapezoidal Decomposition

RI 16-735 Howie Choset

Trapezoidal Decomposition

RI 16-735 Howie Choset

Trapezoidal Decomposition

RI 16-735 Howie Choset

Trapezoidal Decomposition Path

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

Example

RI 16-735 Howie Choset

Example

RI 16-735 Howie Choset

Example

RI 16-735 Howie Choset

Example

RI 16-735 Howie Choset

Trapezoidal Decomposition

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

T(E)

D

AA

AA

AA

{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

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

Complete Coverage

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

1-connected

RI 16-735 Howie Choset

2-connected

RI 16-735 Howie Choset

1-connected

RI 16-735 Howie Choset

2-connected

RI 16-735 Howie Choset

• Connectivity of the slice in the free space changes at the critical points

RI 16-735 Howie Choset

• Each cell can be covered by back andforth motions

RI 16-735 Howie Choset

• Reeb graph represents the topology ofthe cellular decomposition

RI 16-735 Howie Choset

Incremental construction•While covering the space, look for critical points

Stage 1

RI 16-735 Howie Choset

Stage 1

Incremental construction (cont’d)

Stage 2

RI 16-735 Howie Choset

Stage 1

Incremental construction (cont’d)

Stage 2 Stage 3

RI 16-735 Howie Choset

Incremental construction (cont’d)

Stage 1 Stage 2 Stage 4Stage 3

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

Detect Critical Points

RI 16-735 Howie Choset

Encountering Critical Points: Problem

RI 16-735 Howie Choset

Cycle Algorithm

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

Morse Decomposition h(x,y) = x

Boustrophedon decomposition•Canny π1: Q → ℜ)

RI 16-735 Howie Choset

Morse Decompositionh(x,y) = x2 + y2

RI 16-735 Howie Choset

Morse Decomposition h(x,y) = |x| + |y|

squarels

RI 16-735 Howie Choset

Morse Decomposition h(x,y) = tan(y/x)

RI 16-735 Howie Choset

Brushfire Decomposition

RI 16-735 Howie Choset

Brushfire Decompositionh(x,y) = D(x,y)

RI 16-735 Howie Choset

Brushfire Decompositionh(x,y) = D(x,y)

RI 16-735 Howie Choset

Brushfire Decompositionh(x,y) = D(x,y)

RI 16-735 Howie Choset

Brushfire Decompositionh(x,y) = D(x,y)

RI 16-735 Howie Choset

Brushfire DecompositionCoverage Path

RI 16-735 Howie Choset

Wavefront Decomposition

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

RI 16-735 Howie Choset

Slice Definition

• Slice can be defined in terms of the preimage of the projection operator

• h: Q → ℜ (Canny π1: Q → ℜ)• Vertical slice are defined by • Qλ = h−1(λ), with h(x,y) = x for the plane• Increasing λ sweeps the slice to the right

through the plane