Computational Geometry · O (n log n) O (n) O (n) O (log n) O (n) O (1) Robots Create trapezoidal...

Post on 05-Sep-2020

2 views 0 download

transcript

1

Computational Geometry

Thomas van Dijk Winter Semester 2018/19

Lecture #10

Motion Planning

2 - 1

Planning

current situation,desired situation

2 - 2

Planning

current situation,desired situation

2 - 3

Planning

current situation,desired situation

sequence of steps to reachthe one from the other

3 - 1

Path Planning

current location,desired location

3 - 2

Path Planning

current location,desired location

3 - 3

Path Planning

current location,desired location

path to reach theone from the other

4 - 1

Point-ShapedRobots

pstart

pgoal

4 - 2

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.

pstart

pgoal

4 - 3

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

pstart

pgoal

4 - 4

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.• Vertices at centers of trapez. and vertical ext.

pstart

pgoal

4 - 5

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Vertices at centers of trapez. and vertical ext.

pstart

pgoal

4 - 6

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map

• Vertices at centers of trapez. and vertical ext.

pstart

pgoal

4 - 7

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

pstart

pgoal

4 - 8

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

pstart

pgoal

4 - 9

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

pstart

pgoal

4 - 10

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

pstart

pgoal

4 - 11

Point-Shaped

O(n log n)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

pstart

pgoal

4 - 12

Point-Shaped

O(n log n)O(n)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

pstart

pgoal

4 - 13

Point-Shaped

O(n log n)O(n)O(n)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

pstart

pgoal

4 - 14

Point-Shaped

O(n log n)O(n)O(n)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

O(n)

pstart

pgoal

4 - 15

Point-Shaped

O(n log n)O(n)O(n)

O(log n)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

O(n)

pstart

pgoal

4 - 16

Point-Shaped

O(n log n)O(n)O(n)

O(log n)

O(n)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

O(n)

pstart

pgoal

4 - 17

Point-Shaped

O(n log n)O(n)O(n)

O(log n)

O(n)

O(1)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

O(n)

pstart

pgoal

4 - 18

Point-Shaped

O(n log n)O(n)O(n)

O(log n)

O(n)

O(1)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

O(n)

pstart

pgoal

4 - 19

Point-Shaped

O(n log n)O(n)O(n)

O(log n)

O(n)

O(1)

Robots

• Create trapezoidal map of obstacle edges.• Remove vertical extensions inside obstacles.

• Connect “neighboring” vertices by line segm.• Locate pstart, pgoal in map• Do breadth-first search in the roadmap

to find a path π from ∆start to ∆goal.

• Vertices at centers of trapez. and vertical ext.

∆start ∆goal

→ ∆start, ∆goal.

• Connect pstart, pgoal to π by line segments.

O(n)

pstart

pgoal

prep

roce

ssin

gqu

eryi

ng

5 - 1

A First ResultTheorem: We can preprocess a set of polygonal obstacles

with a total of n edges in O(n log n) expectedtime such that, given a start and a goal position,we can find a collision-free path for a pointrobot in O(n) time if it exists.

5 - 2

A First ResultTheorem: We can preprocess a set of polygonal obstacles

with a total of n edges in O(n log n) expectedtime such that, given a start and a goal position,we can find a collision-free path for a pointrobot in O(n) time if it exists.

5 - 3

A First Result

What about, say, polygonal robots?

Theorem: We can preprocess a set of polygonal obstacleswith a total of n edges in O(n log n) expectedtime such that, given a start and a goal position,we can find a collision-free path for a pointrobot in O(n) time if it exists.

6 - 1

Degrees of FreedomEvery robot has some number d of degrees of freedom,meaning that its configuration with respect to the world canbe specified by d parameters.

6 - 2

Degrees of FreedomEvery robot has some number d of degrees of freedom,meaning that its configuration with respect to the world canbe specified by d parameters.

2D translating robot

6 - 3

Degrees of FreedomEvery robot has some number d of degrees of freedom,meaning that its configuration with respect to the world canbe specified by d parameters.

2D translating robot 2D translating, rotating robot

6 - 4

Degrees of FreedomEvery robot has some number d of degrees of freedom,meaning that its configuration with respect to the world canbe specified by d parameters.

2D translating robot 2D translating, rotating robot

3D translating robot

6 - 5

Degrees of FreedomEvery robot has some number d of degrees of freedom,meaning that its configuration with respect to the world canbe specified by d parameters.

2D translating robot 2D translating, rotating robot

3D translating robot 3D translating, rotating robot

7 - 1

Configuration Space

robotic arm

7 - 2

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.

robotic arm

7 - 3

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.

robotic arm

robot

obstacle

work space

7 - 4

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.

robotic arm

robot

obstacle

work spacereferencepoint

7 - 5

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.

robotic arm

robot

obstacle

work space configuration spacereferencepoint

7 - 6

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.

robotic arm

robot

obstacle

work space configuration spacereferencepoint

7 - 7

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.

robotic arm

robot

obstacle

work space configuration spacereferencepoint

7 - 8

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.

robotic arm

robot

obstacle

work space configuration spacereferencepoint

7 - 9

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.Path for a point through configuration space

robotic arm

robot

obstacle

work space configuration spacereferencepoint

7 - 10

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.Path for a point through configuration space

robotic arm

robot

obstacle

work space configuration spacereferencepoint

7 - 11

Configuration Space

The configuration space is the d-dimensional space ofall possible (i.e., obstacle avoiding) parameter valuecombinations.Path for a point through configuration space

path for the robot in the original space.

robotic arm

robot

obstacle

work space configuration spacereferencepoint

8 - 1

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

(0, 0) xx′

(x, y)

configuration space

(x′, y′)

8 - 2

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

• Compute CP i = {(x, y) : R(x, y) ∩ Pi 6= ∅} for each Pi.

(0, 0) xx′

(x, y)

configuration space

(x′, y′)

8 - 3

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

• Compute CP i = {(x, y) : R(x, y) ∩ Pi 6= ∅} for each Pi.

(0, 0) xx′

(x, y)

configuration space

CP1

(x′, y′)

CP2

8 - 4

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

• Compute their union Cforb =⋃

i CP i.• Compute CP i = {(x, y) : R(x, y) ∩ Pi 6= ∅} for each Pi.

(0, 0) xx′

(x, y)

configuration space

CP1

(x′, y′)

CP2

8 - 5

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

• Compute their union Cforb =⋃

i CP i.• Compute CP i = {(x, y) : R(x, y) ∩ Pi 6= ∅} for each Pi.

(0, 0) xx′

(x, y)

configuration space

CP1

(x′, y′)

CP2

Cforb

8 - 6

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

• Compute their union Cforb =⋃

i CP i.• Find a path for a point in the complement Cfree of Cforb.

• Compute CP i = {(x, y) : R(x, y) ∩ Pi 6= ∅} for each Pi.

(0, 0) xx′

(x, y)

configuration space

CP1

(x′, y′)

CP2Cfree

Cforb

8 - 7

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

• Compute their union Cforb =⋃

i CP i.• Find a path for a point in the complement Cfree of Cforb.

• Compute CP i = {(x, y) : R(x, y) ∩ Pi 6= ∅} for each Pi.

(0, 0) xx′

(x, y)

configuration space

CP1

(x′, y′)

CP2Cfree

Cforb

8 - 8

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

• Compute their union Cforb =⋃

i CP i.• Find a path for a point in the complement Cfree of Cforb.⇒ collision-free path for the robot in work space

• Compute CP i = {(x, y) : R(x, y) ∩ Pi 6= ∅} for each Pi.

(0, 0) xx′

(x, y)

configuration space

CP1

(x′, y′)

CP2Cfree

Cforb

8 - 9

Example: Translating 2D Polygonal Robots

R(0, 0)

R(x, y)

x

y′P1

x′

R(x′, y′)

y

P2

work space

• Compute their union Cforb =⋃

i CP i.• Find a path for a point in the complement Cfree of Cforb.⇒ collision-free path for the robot in work space

• Compute CP i = {(x, y) : R(x, y) ∩ Pi 6= ∅} for each Pi.

(0, 0) xx′

(x, y)

configuration space

CP1

(x′, y′)

CP2Cfree

Cforb

9 - 1

Some Linear AlgebraVector sums p

q

9 - 2

Some Linear AlgebraVector sums p

q

p + q

9 - 3

Some Linear AlgebraVector sumsAlgebra: (px, py) + (qx, qy) = (px + qx, py + qy)

pq

p + q

9 - 4

Some Linear AlgebraVector sumsAlgebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

9 - 5

Some Linear AlgebraVector sums

Minkowski sums

Algebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

⊕ ==

9 - 6

Some Linear AlgebraVector sums

Minkowski sums

Algebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

⊕ ==

9 - 7

Some Linear AlgebraVector sums

Minkowski sums

Algebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

Algebra: S1 ⊕ S2 = {p + q | p ∈ S1, q ∈ S2}

⊕ ==

9 - 8

Some Linear AlgebraVector sums

Minkowski sums

Algebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

Algebra:Geometry:

S1 ⊕ S2 = {p + q | p ∈ S1, q ∈ S2}place copy of one shapeat every point of the other

⊕ ==

9 - 9

Some Linear AlgebraVector sums

Minkowski sums

Algebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

Algebra:Geometry:

S1 ⊕ S2 = {p + q | p ∈ S1, q ∈ S2}place copy of one shapeat every point of the other

⊕ =

Inversion

− =

=

9 - 10

Some Linear AlgebraVector sums

Minkowski sums

Algebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

Algebra:Geometry:

S1 ⊕ S2 = {p + q | p ∈ S1, q ∈ S2}place copy of one shapeat every point of the other

⊕ =

Inversion

− =

=

9 - 11

Some Linear AlgebraVector sums

Minkowski sums

Algebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

Algebra:Geometry:

S1 ⊕ S2 = {p + q | p ∈ S1, q ∈ S2}place copy of one shapeat every point of the other

⊕ =

InversionAlgebra: −S = {−p | p ∈ S}

− =

=

9 - 12

Some Linear AlgebraVector sums

Minkowski sums

Algebra:Geometry:

(px, py) + (qx, qy) = (px + qx, py + qy)place vectors head to tail

pq

p + q

Algebra:Geometry:

S1 ⊕ S2 = {p + q | p ∈ S1, q ∈ S2}place copy of one shapeat every point of the other

⊕ =

InversionAlgebra:Geometry:

−S = {−p | p ∈ S}rotate 180◦ (point-mirror)around reference point

− =

=

10 - 1

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP

10 - 2

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

10 - 3

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

10 - 4

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

10 - 5

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof. Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

10 - 6

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐”

10 - 7

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐”

10 - 8

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐”

q

10 - 9

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐”

q

10 - 10

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐”

q

10 - 11

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐” Let (x, y) ∈ P ⊕ (−R(0, 0)).

10 - 12

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐” Let (x, y) ∈ P ⊕ (−R(0, 0)).Then there are pointsq ∈ P and r ∈ R(0, 0)such that . . .

q

10 - 13

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐” Let (x, y) ∈ P ⊕ (−R(0, 0)).Then there are pointsq ∈ P and r ∈ R(0, 0)such that . . .

q

10 - 14

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐” Let (x, y) ∈ P ⊕ (−R(0, 0)).Then there are pointsq ∈ P and r ∈ R(0, 0)such that . . .

q

10 - 15

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐” Let (x, y) ∈ P ⊕ (−R(0, 0)).Then there are pointsq ∈ P and r ∈ R(0, 0)such that . . .

qr

10 - 16

Characterizing CP

R(0, 0)R(x, y)

P

Recall that CP = {(x, y) : R(x, y) ∩ P 6= ∅} for an obstacle P .

CP = P ⊕ (−R(0, 0))Theorem.

R(x, y) intersects P ⇔ (x, y) ∈ CP .In other words:

CP

Proof.

Suppose R(x, y) intersects P .Let q ∈ R(x, y) ∩ P . Then...

“⇒”

Show: R(x, y) intersects P ⇔ (x, y) ∈ P ⊕ (−R(0, 0)).

“⇐” Let (x, y) ∈ P ⊕ (−R(0, 0)).Then there are pointsq ∈ P and r ∈ R(0, 0)such that . . .

qr

11 - 1

Minkowski Sums: ComplexityIf P and R are convex polygons with n and medges, respectively, then P ⊕R is a convexpolygon with at most n + m edges.

PR

P ⊕R

Theorem:

rp

p + r

0

11 - 2

Minkowski Sums: ComplexityIf P and R are convex polygons with n and medges, respectively, then P ⊕R is a convexpolygon with at most n + m edges.

PR

P ⊕R

Theorem:

rp

p + r

d0

11 - 3

Minkowski Sums: ComplexityIf P and R are convex polygons with n and medges, respectively, then P ⊕R is a convexpolygon with at most n + m edges.

PR

P ⊕R

Theorem:

rp

p + r

d

e

0

11 - 4

Minkowski Sums: ComplexityIf P and R are convex polygons with n and medges, respectively, then P ⊕R is a convexpolygon with at most n + m edges.

PR

P ⊕R

Theorem:

rp

p + r

d

e

0

11 - 5

Minkowski Sums: ComplexityIf P and R are convex polygons with n and medges, respectively, then P ⊕R is a convexpolygon with at most n + m edges.

PR

P ⊕R

Theorem:

rp

p + r

d

e

0

11 - 6

Minkowski Sums: ComplexityIf P and R are convex polygons with n and medges, respectively, then P ⊕R is a convexpolygon with at most n + m edges.

PR

P ⊕R

Theorem:

rp

p + r

d

e

0

11 - 7

Minkowski Sums: ComplexityIf P and R are convex polygons with n and medges, respectively, then P ⊕R is a convexpolygon with at most n + m edges.

PR

P ⊕R

Theorem:

rp

p + r

d

e

0

11 - 8

Minkowski Sums: ComplexityIf P and R are convex polygons with n and medges, respectively, then P ⊕R is a convexpolygon with at most n + m edges.

PR

P ⊕R

Theorem:

rp

p + r

d

e

0...

12 - 1

Minkowski Sums: Computation

P

R

P ⊕R

12 - 2

Minkowski Sums: Computation

P

R

P ⊕R

How would you compute P ⊕R given P and R?Task:

12 - 3

Minkowski Sums: Computation

P

R

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea:

12 - 4

Minkowski Sums: Computation

P

R

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

12 - 5

Minkowski Sums: Computation

P

R

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

12 - 6

Minkowski Sums: Computation

P

R

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:

12 - 7

Minkowski Sums: Computation

P

R

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )

12 - 8

Minkowski Sums: Computation

P

R

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

12 - 9

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

:-)

12 - 10

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

:-)

12 - 11

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

:-)

12 - 12

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

:-)

12 - 13

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

:-)

12 - 14

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

:-)

12 - 15

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

:-)

12 - 16

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

:-)

12 - 17

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

12 - 18

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

12 - 19

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

12 - 20

Minkowski Sums: Computation

P

R

The Minkowski sum of two convex polygons Pand R can be computed in O(|P|+ |R|) time.

Theorem.

P ⊕R

. . .

How would you compute P ⊕R given P and R?Task:

Idea: P ⊕R = CH({p + r | p ∈ P , r ∈ R}

)(Proof?)

Problem:︸ ︷︷ ︸

complexity ∈ Θ( )|P| · |R| :-(

13 - 1

Pseudodisks

A pair of planar objects o1 and o2 is a pair ofpseudodisks if:• ∂o1 ∩ int(o2) is connected, and• ∂o2 ∩ int(o1) is connected.

Definition:

o1 o2

13 - 2

Pseudodisks

A pair of planar objects o1 and o2 is a pair ofpseudodisks if:• ∂o1 ∩ int(o2) is connected, and• ∂o2 ∩ int(o1) is connected.

Definition:

o1 o2

13 - 3

Pseudodisks

A pair of planar objects o1 and o2 is a pair ofpseudodisks if:• ∂o1 ∩ int(o2) is connected, and• ∂o2 ∩ int(o1) is connected.

Definition:

p ∈ ∂o1 ∩ ∂o2 is a boundary crossing if ∂o1 crosses at p fromthe interior to the exterior of o2.

o1 o2

13 - 4

Pseudodisks

A pair of planar objects o1 and o2 is a pair ofpseudodisks if:• ∂o1 ∩ int(o2) is connected, and• ∂o2 ∩ int(o1) is connected.

Definition:

p ∈ ∂o1 ∩ ∂o2 is a boundary crossing if ∂o1 crosses at p fromthe interior to the exterior of o2.

Observation: A pair of polygonal pseudodisks defines atmost two boundary crossings.

o1 o2

14 - 1

Extreme DirectionsObservation: Let P1, P2 be interior-disjoint convex polygons

P2P2

P1

14 - 2

Extreme DirectionsObservation: Let P1, P2 be interior-disjoint convex polygons

P2P2

P1

Let d1 and d2 be directions in which P1 ismore extreme than P2.

d1

14 - 3

Extreme DirectionsObservation: Let P1, P2 be interior-disjoint convex polygons

P2P2

P1

Let d1 and d2 be directions in which P1 ismore extreme than P2.

d1

d2

14 - 4

Extreme DirectionsObservation: Let P1, P2 be interior-disjoint convex polygons

P2P2

P1

Let d1 and d2 be directions in which P1 ismore extreme than P2.Then P1 is more extreme than P2 either in[d1, d2] or in [d2, d1].

d1

d2

d1

d2

14 - 5

Extreme DirectionsObservation: Let P1, P2 be interior-disjoint convex polygons

d′

d′′

d′′′

P2P2

P1

Let d1 and d2 be directions in which P1 ismore extreme than P2.Then P1 is more extreme than P2 either in[d1, d2] or in [d2, d1].

d1

d2

d1

d2

14 - 6

Extreme DirectionsObservation: Let P1, P2 be interior-disjoint convex polygons

d′

d′′

d′′′

d′d′′

d′′′P2P2

P1

Let d1 and d2 be directions in which P1 ismore extreme than P2.Then P1 is more extreme than P2 either in[d1, d2] or in [d2, d1].

d1

d2

d1

d2

14 - 7

Extreme DirectionsObservation: Let P1, P2 be interior-disjoint convex polygons

d′

d′′

d′′′

d′d′′

d′′′

P2 and P1equallyextreme

P2 moreextreme

P1 moreextremeP2P2

P1

Let d1 and d2 be directions in which P1 ismore extreme than P2.Then P1 is more extreme than P2 either in[d1, d2] or in [d2, d1].

d1

d2

d1

d2

15 - 1

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

Theorem:Theorem:

15 - 2

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

Theorem:Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸

15 - 3

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

Theorem:Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸Proof. It suffices to show: CP1 \ CP2 is connected.

15 - 4

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

Theorem:Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸Proof. It suffices to show: CP1 \ CP2 is connected.

Suppose CP1 \ CP2 is not connected...

CP1

CP2

15 - 5

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

s

Theorem:

p

qr

Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸Proof. It suffices to show: CP1 \ CP2 is connected.

Suppose CP1 \ CP2 is not connected...

CP1

CP2

15 - 6

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

sds

Theorem:

p

qr

dp

dq

dr

Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸Proof. It suffices to show: CP1 \ CP2 is connected.

Suppose CP1 \ CP2 is not connected...

CP1

CP2

15 - 7

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

sds

Theorem:

p

qr

dp

dq

dr

Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸Proof. It suffices to show: CP1 \ CP2 is connected.

Suppose CP1 \ CP2 is not connected...

CP1

CP2

15 - 8

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

sds

Theorem:

p

qr

dp

dq

dr

Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸Proof. It suffices to show: CP1 \ CP2 is connected.

Suppose CP1 \ CP2 is not connected...

CP1

CP2to previous observation!

15 - 9

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

sds

Theorem:

p

qr

dp

dq

dr

Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸Proof. It suffices to show: CP1 \ CP2 is connected.

Suppose CP1 \ CP2 is not connected...

CP1

CP2to previous observation!

since– dq and ds are also extreme for P1 and– dp and dr are also extreme for P2.

15 - 10

Polygonal PseudodisksIf P1 and P2 are convex polygons with disjointinteriors, and R is another convex polygon,then P1 ⊕R and P2 ⊕R is a pair of pseudodisks.

sds

Theorem:

p

qr

dp

dq

dr

Theorem:

CP1 CP2

︸ ︷︷ ︸ ︸ ︷︷ ︸Proof. It suffices to show: CP1 \ CP2 is connected.

Suppose CP1 \ CP2 is not connected...

CP1

CP2to previous observation!

since– dq and ds are also extreme for P1 and– dp and dr are also extreme for P2.(and P1 and P2 are convex andinterior-disjoint).

16 - 1

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

16 - 2

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

16 - 3

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

16 - 4

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

16 - 5

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 6

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 7

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 8

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

v

P

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 9

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

v

P

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 10

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

v

P

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 11

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

v

P

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 12

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

v

P

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 13

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

v

P

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 14

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

v

P

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

16 - 15

Union ComplexityA collection S of convex polygonal pseudodiscswith n vtc in total has a union with ≤ 2n vtc.

Theorem:

v

P

Proof. Charge every vtx of the union to a polygon vtxs.t. every polygon vtx is charged at most twice.

boundary crossing

adjacent vtxin the interiorof the union

17 - 1

Summary and Main ResultLet R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Theorem:

17 - 2

Summary and Main ResultLet R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

17 - 3

Summary and Main ResultLet R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

17 - 4

Summary and Main ResultLet R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Triangulate the obstacles if not convex.

17 - 5

Summary and Main ResultLet R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Triangulate the obstacles if not convex. Ch.3

17 - 6

Summary and Main ResultLet R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Triangulate the obstacles if not convex. Ch.3O(n log n)

17 - 7

Summary and Main ResultLet R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Compute CP i for every convex obstacle Pi.

• Triangulate the obstacles if not convex. Ch.3O(n log n)

17 - 8

Summary and Main ResultLet R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Compute CP i for every convex obstacle Pi.

• Triangulate the obstacles if not convex. Ch.3O(n log n)O(n)

17 - 9

Summary and Main Result

• Compute their union Cforb =⋃

i CP iusing div. and conq. (merge by sweeping – Ch.2.3)

Let R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Compute CP i for every convex obstacle Pi.

• Triangulate the obstacles if not convex.

. . . ?

Ch.3O(n log n)O(n)

17 - 10

Summary and Main Result

• Compute their union Cforb =⋃

i CP iusing div. and conq. (merge by sweeping – Ch.2.3)

Let R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Compute CP i for every convex obstacle Pi.

• Triangulate the obstacles if not convex. Ch.3O(n log n)O(n)

17 - 11

Summary and Main Result

• Compute their union Cforb =⋃

i CP iusing div. and conq. (merge by sweeping – Ch.2.3)

Let R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Compute CP i for every convex obstacle Pi.

• Triangulate the obstacles if not convex. Ch.3O(n log n)O(n)O(n log2 n)

17 - 12

Summary and Main Result

• Compute their union Cforb =⋃

i CP iusing div. and conq. (merge by sweeping – Ch.2.3)

Let R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Compute CP i for every convex obstacle Pi.

• Triangulate the obstacles if not convex.

[Argue carefully about the number of intersection pts!]

Ch.3O(n log n)O(n)O(n log2 n)

17 - 13

Summary and Main Result

• Compute their union Cforb =⋃

i CP iusing div. and conq. (merge by sweeping – Ch.2.3)

• Find a path for a point in the complement Cfree.

Let R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Compute CP i for every convex obstacle Pi.

• Triangulate the obstacles if not convex.

[Argue carefully about the number of intersection pts!]

Ch.3O(n log n)O(n)O(n log2 n)

17 - 14

Summary and Main Result

• Compute their union Cforb =⋃

i CP iusing div. and conq. (merge by sweeping – Ch.2.3)

• Find a path for a point in the complement Cfree.

Let R be a constant-complexity convexrobot, translating among a set S of disjointpolygonal obstacles with n edges in total.

Proof.

Theorem:

We can preprocess S in O(n log2 n) time suchthat, given any start and goal position, wecan compute in O(n) time a collision-freepath for R if it exists.

• Compute CP i for every convex obstacle Pi.

• Triangulate the obstacles if not convex.

[Argue carefully about the number of intersection pts!]

Ch.3O(n log n)O(n)O(n log2 n)

O(n)