Post on 05-Sep-2020
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)