+ All Categories
Home > Documents > Computational Geometry · O (n log n) O (n) O (n) O (log n) O (n) O (1) Robots Create trapezoidal...

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

Date post: 05-Sep-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
160
1 Computational Geometry Thomas van Dijk Winter Semester 2018/19 Lecture #10 Motion Planning
Transcript
Page 1: Computational Geometry · 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

1

Computational Geometry

Thomas van Dijk Winter Semester 2018/19

Lecture #10

Motion Planning

Page 2: Computational Geometry · 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

2 - 1

Planning

current situation,desired situation

Page 3: Computational Geometry · 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

2 - 2

Planning

current situation,desired situation

Page 4: Computational Geometry · 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

2 - 3

Planning

current situation,desired situation

sequence of steps to reachthe one from the other

Page 5: Computational Geometry · 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

3 - 1

Path Planning

current location,desired location

Page 6: Computational Geometry · 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

3 - 2

Path Planning

current location,desired location

Page 7: Computational Geometry · 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

3 - 3

Path Planning

current location,desired location

path to reach theone from the other

Page 8: Computational Geometry · 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

4 - 1

Point-ShapedRobots

pstart

pgoal

Page 9: Computational Geometry · 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

4 - 2

Point-ShapedRobots

• Create trapezoidal map of obstacle edges.

pstart

pgoal

Page 10: Computational Geometry · 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

4 - 3

Point-ShapedRobots

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

pstart

pgoal

Page 11: Computational Geometry · 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

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

Page 12: Computational Geometry · 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

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

Page 13: Computational Geometry · 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

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

Page 14: Computational Geometry · 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

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

Page 15: Computational Geometry · 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

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

Page 16: Computational Geometry · 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

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

Page 17: Computational Geometry · 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

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

Page 18: Computational Geometry · 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

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

Page 19: Computational Geometry · 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

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

Page 20: Computational Geometry · 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

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

Page 21: Computational Geometry · 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

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

Page 22: Computational Geometry · 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

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

Page 23: Computational Geometry · 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

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

Page 24: Computational Geometry · 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

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

Page 25: Computational Geometry · 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

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

Page 26: Computational Geometry · 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

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

Page 27: Computational Geometry · 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

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.

Page 28: Computational Geometry · 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

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.

Page 29: Computational Geometry · 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

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.

Page 30: Computational Geometry · 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

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.

Page 31: Computational Geometry · 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

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

Page 32: Computational Geometry · 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

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

Page 33: Computational Geometry · 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

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

Page 34: Computational Geometry · 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

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

Page 35: Computational Geometry · 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

7 - 1

Configuration Space

robotic arm

Page 36: Computational Geometry · 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

7 - 2

Configuration Space

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

robotic arm

Page 37: Computational Geometry · 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

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

Page 38: Computational Geometry · 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

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

Page 39: Computational Geometry · 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

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

Page 40: Computational Geometry · 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

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

Page 41: Computational Geometry · 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

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

Page 42: Computational Geometry · 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

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

Page 43: Computational Geometry · 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

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

Page 44: Computational Geometry · 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

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

Page 45: Computational Geometry · 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

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

Page 46: Computational Geometry · 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

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′)

Page 47: Computational Geometry · 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

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′)

Page 48: Computational Geometry · 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

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

Page 49: Computational Geometry · 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

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

Page 50: Computational Geometry · 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

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

Page 51: Computational Geometry · 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

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

Page 52: Computational Geometry · 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

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

Page 53: Computational Geometry · 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

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

Page 54: Computational Geometry · 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

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

Page 55: Computational Geometry · 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

9 - 1

Some Linear AlgebraVector sums p

q

Page 56: Computational Geometry · 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

9 - 2

Some Linear AlgebraVector sums p

q

p + q

Page 57: Computational Geometry · 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

9 - 3

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

pq

p + q

Page 58: Computational Geometry · 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

9 - 4

Some Linear AlgebraVector sumsAlgebra:Geometry:

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

pq

p + q

Page 59: Computational Geometry · 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

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

⊕ ==

Page 60: Computational Geometry · 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

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

⊕ ==

Page 61: Computational Geometry · 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

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}

⊕ ==

Page 62: Computational Geometry · 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

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

⊕ ==

Page 63: Computational Geometry · 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

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

− =

=

Page 64: Computational Geometry · 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

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

− =

=

Page 65: Computational Geometry · 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

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}

− =

=

Page 66: Computational Geometry · 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

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

− =

=

Page 67: Computational Geometry · 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

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

Page 68: Computational Geometry · 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

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

Page 69: Computational Geometry · 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

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

Page 70: Computational Geometry · 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

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.

Page 71: Computational Geometry · 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

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)).

Page 72: Computational Geometry · 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

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)).

“⇐”

Page 73: Computational Geometry · 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

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)).

“⇐”

Page 74: Computational Geometry · 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

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

Page 75: Computational Geometry · 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

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

Page 76: Computational Geometry · 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

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

Page 77: Computational Geometry · 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

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)).

Page 78: Computational Geometry · 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

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

Page 79: Computational Geometry · 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

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

Page 80: Computational Geometry · 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

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

Page 81: Computational Geometry · 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

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

Page 82: Computational Geometry · 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

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

Page 83: Computational Geometry · 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

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

Page 84: Computational Geometry · 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

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

Page 85: Computational Geometry · 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

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

Page 86: Computational Geometry · 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

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

Page 87: Computational Geometry · 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

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

Page 88: Computational Geometry · 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

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

Page 89: Computational Geometry · 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

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

Page 90: Computational Geometry · 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

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...

Page 91: Computational Geometry · 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

12 - 1

Minkowski Sums: Computation

P

R

P ⊕R

Page 92: Computational Geometry · 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

12 - 2

Minkowski Sums: Computation

P

R

P ⊕R

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

Page 93: Computational Geometry · 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

12 - 3

Minkowski Sums: Computation

P

R

P ⊕R

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

Idea:

Page 94: Computational Geometry · 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

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?)

Page 95: Computational Geometry · 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

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?)

Page 96: Computational Geometry · 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

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:

Page 97: Computational Geometry · 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

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 ∈ Θ( )

Page 98: Computational Geometry · 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

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| :-(

Page 99: Computational Geometry · 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

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| :-(

:-)

Page 100: Computational Geometry · 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

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| :-(

:-)

Page 101: Computational Geometry · 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

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| :-(

:-)

Page 102: Computational Geometry · 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

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| :-(

:-)

Page 103: Computational Geometry · 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

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| :-(

:-)

Page 104: Computational Geometry · 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

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| :-(

:-)

Page 105: Computational Geometry · 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

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| :-(

:-)

Page 106: Computational Geometry · 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

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| :-(

:-)

Page 107: Computational Geometry · 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

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| :-(

Page 108: Computational Geometry · 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

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| :-(

Page 109: Computational Geometry · 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

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| :-(

Page 110: Computational Geometry · 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

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| :-(

Page 111: Computational Geometry · 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

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

Page 112: Computational Geometry · 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

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

Page 113: Computational Geometry · 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

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

Page 114: Computational Geometry · 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

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

Page 115: Computational Geometry · 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

14 - 1

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

P2P2

P1

Page 116: Computational Geometry · 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

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

Page 117: Computational Geometry · 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

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

Page 118: Computational Geometry · 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

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

Page 119: Computational Geometry · 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

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

Page 120: Computational Geometry · 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

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

Page 121: Computational Geometry · 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

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

Page 122: Computational Geometry · 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

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:

Page 123: Computational Geometry · 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

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

︸ ︷︷ ︸ ︸ ︷︷ ︸

Page 124: Computational Geometry · 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

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.

Page 125: Computational Geometry · 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

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

Page 126: Computational Geometry · 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

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

Page 127: Computational Geometry · 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

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

Page 128: Computational Geometry · 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

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

Page 129: Computational Geometry · 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

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!

Page 130: Computational Geometry · 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

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.

Page 131: Computational Geometry · 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

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).

Page 132: Computational Geometry · 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

16 - 1

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

Theorem:

Page 133: Computational Geometry · 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

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.

Page 134: Computational Geometry · 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

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.

Page 135: Computational Geometry · 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

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

Page 136: Computational Geometry · 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

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

Page 137: Computational Geometry · 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

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

Page 138: Computational Geometry · 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

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

Page 139: Computational Geometry · 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

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

Page 140: Computational Geometry · 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

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

Page 141: Computational Geometry · 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

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

Page 142: Computational Geometry · 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

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

Page 143: Computational Geometry · 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

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

Page 144: Computational Geometry · 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

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

Page 145: Computational Geometry · 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

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

Page 146: Computational Geometry · 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

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

Page 147: Computational Geometry · 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

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:

Page 148: Computational Geometry · 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

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.

Page 149: Computational Geometry · 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

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.

Page 150: Computational Geometry · 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

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.

Page 151: Computational Geometry · 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

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

Page 152: Computational Geometry · 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

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)

Page 153: Computational Geometry · 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

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)

Page 154: Computational Geometry · 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

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)

Page 155: Computational Geometry · 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

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)

Page 156: Computational Geometry · 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

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)

Page 157: Computational Geometry · 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

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)

Page 158: Computational Geometry · 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

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)

Page 159: Computational Geometry · 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

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)

Page 160: Computational Geometry · 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

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)


Recommended