collision detection and distance computation cs 326a: motion planning

67
Collision Detection and Distance Computation CS 326A: Motion Planning

Post on 21-Dec-2015

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Collision Detection and Distance Computation CS 326A: Motion Planning

Collision Detectionand Distance Computation

CS 326A: Motion Planning

Page 2: Collision Detection and Distance Computation CS 326A: Motion Planning

Probabilistic Roadmaps

Few moving objects,but complex geometry

Page 3: Collision Detection and Distance Computation CS 326A: Motion Planning

Haptic Interaction

Page 4: Collision Detection and Distance Computation CS 326A: Motion Planning

Graphic Animation

Many moving objects

Page 5: Collision Detection and Distance Computation CS 326A: Motion Planning

Crowd SimulationMany moving objects,but simple geometry (discs)

Need to also compute distances (vision, sounds)

Page 6: Collision Detection and Distance Computation CS 326A: Motion Planning

Collision Detection Methods Many different methods In particular:

– Grid method: good for many simple moving objects of about the same size (e.g., many moving discs with similar radii)

– Closest-feature tracking: good for moving polyhedral objects

– Bounding Volume Hierarchy (BVH) method: good for few moving objects with complex and diverse geometry

Page 7: Collision Detection and Distance Computation CS 326A: Motion Planning

Grid Method

d

Subdivide space into a regular grid cubic of square bins

Index each object in a bin

Page 8: Collision Detection and Distance Computation CS 326A: Motion Planning

Grid Method

d

Running time is proportional tonumber of moving objects

Useful also to compute pairs of objects within some distance (vision,sound, …)

Page 9: Collision Detection and Distance Computation CS 326A: Motion Planning

Closest-Feature Tracking(M. Lin and J. Canny. A Fast Algorithm for Incremental Distance

Calculation. Proc. IEEE Int. Conf. on Robotics and Automation, 1991)

The closest pair of features (vertex, edge, face) between two polyhedral objects are computed at the start configurations of the objects

During motion, at each small increment of the motion, they are updated

Efficiency derives from two observations: The pair of closest features

changes relatively infrequently When it changes the new closest

features will usually be on a boundary of the previous closest features

Page 10: Collision Detection and Distance Computation CS 326A: Motion Planning

Closest-Feature Test for Vertex-Vertex

VertexVertex

Page 11: Collision Detection and Distance Computation CS 326A: Motion Planning

Application: Detecting Self-Collision in Humanoid

Robots(J. Kuffner et al. Self-Collision and Prevention for Humanoid Robots. Proc. IEEE

Int. Conf. on Robotics and Automation, 2002)

Page 12: Collision Detection and Distance Computation CS 326A: Motion Planning

BVH with spheres:S. Quinlan. Efficient Distance Computation Between Non-Convex Objects. Proc. IEEE Int. Conf. on Robotics and Automation, 1994.

BVH with Oriented Bounding Boxes:S. Gottschalk, M. Lin, and D. Manocha. OBB-Tree: A Hierarchical Structure for Rapid Interference Detection. Proc. ACM SIGGRAPH '96, 1996.

Combination of BVH and feature-tracking:S.A. Ehmann and M.C. Lin. Accurate and Fast Proximity Queries Between Polyhedra Using Convex Surface Decomposition. Proc. 2001 Eurographics, Vol. 20, No. 3, pp. 500-510, 2001.

Adaptive bisection in dynamic collision checking:F. Schwarzer, M. Saha, J.C. Latombe. Adaptive Dynamic Collision Checking for Single and Multiple Articulated Robots in Complex Environments, manuscript, 2003.

Bounding Volume Hierarchy Method

Page 13: Collision Detection and Distance Computation CS 326A: Motion Planning

Enclose objects into bounding volumes (spheres or boxes) Check the bounding volumes first Decompose an object into two

Bounding Volume Hierarchy Method

Page 14: Collision Detection and Distance Computation CS 326A: Motion Planning

Enclose objects into bounding volumes (spheres or boxes) Check the bounding volumes first Decompose an object into two Proceed hierarchically

Bounding Volume Hierarchy Method

Page 15: Collision Detection and Distance Computation CS 326A: Motion Planning

Enclose objects into bounding volumes (spheres or boxes) Check the bounding volumes first Decompose an object into two Proceed hierarchically

Bounding Volume Hierarchy Method

Page 16: Collision Detection and Distance Computation CS 326A: Motion Planning

• BVH is pre-computed for each object

Bounding Volume Hierarchy Method

Page 17: Collision Detection and Distance Computation CS 326A: Motion Planning

BVH in 3D

Page 18: Collision Detection and Distance Computation CS 326A: Motion Planning

Collision Detection

Two objects described by their precomputed BVHs

A

B C

D E F G

A

B C

D E F G

Page 19: Collision Detection and Distance Computation CS 326A: Motion Planning

Collision Detection

AA

Search tree

AA

pruning

Page 20: Collision Detection and Distance Computation CS 326A: Motion Planning

Collision Detection

AA

CCCBBCBB

Search tree

AA

A

B C

D E F G

Page 21: Collision Detection and Distance Computation CS 326A: Motion Planning

Collision Detection

CCCBBCBB

AA

Search tree

pruning

A

B C

D E F G

Page 22: Collision Detection and Distance Computation CS 326A: Motion Planning

If two leaves of the BVH’s overlap(here, G and D) check their contentfor collision

Collision Detection

CCCBBCBB

AA

Search tree

GEGDFEFD

A

B C

D E F G

GD

Page 23: Collision Detection and Distance Computation CS 326A: Motion Planning

Variant

AA

CCCBBCBB

Search tree

AA

A

B C

D E F GAA

CABA

Page 24: Collision Detection and Distance Computation CS 326A: Motion Planning

Collision Detection

Pruning discards subsets of the two objects that are separated by the BVs

Each path is followed until pruning or until two leaves overlap

When two leaves overlap, their contents are tested for overlap

Page 25: Collision Detection and Distance Computation CS 326A: Motion Planning

Search Strategy and Heuristics

If there is no collision, all paths must eventually be followed down to pruning or a leaf node

But if there is collision, it is desirable to detect it as quickly as possible

Greedy best-first search strategy with f(N) = d/(rX+rY)

[Expand the node XY with largest relative overlap (most likely to contain a collision)]

rX

rYd

X

Y

Page 26: Collision Detection and Distance Computation CS 326A: Motion Planning

Recursive (Depth-First) Collision Detection Algorithm

Test(A,B)1. If A and B do not overlap, then return 12. If A and B are both leaves, then return 0

if their contents overlap and 1 otherwise3. Switch A and B if A is a leaf, or if B is

bigger and not a leaf4. Set A1 and A2 to be A’s children

5. If Test(A1,B) = 1 then return Test(A2,B) else return 0

Page 27: Collision Detection and Distance Computation CS 326A: Motion Planning

Performance

Several thousand collision checks per second for 2 three-dimensional objects each described by 500,000 triangles, on a 1-GHz PC

Page 28: Collision Detection and Distance Computation CS 326A: Motion Planning

Greedy Distance Computation(same recursion as collision detection)

Greedy-Distance(A,B)1. If dist(A,B) > 0, then return dist(A,B)2. If A and B are both leaves, then return

distance between their contents 3. Switch A and B if A is a leaf, or if B is bigger

and not a leaf4. Set A1 and A2 to be A’s children

5. d1 Greedy-Distance(A1,B)

6. If d1 > 0 then

a. d2 Greedy-Distance(A2,B)

b. If d2 > 0 then return Min(d1,d2)

7. Return 0

Page 29: Collision Detection and Distance Computation CS 326A: Motion Planning

Exact Distance Computation

Distance(A,B)1. If dist(A,B) > M, then return M2. If A and B are both leaves, then

a. d distance between their contents b. Return Min(d,M)

3. Switch A and B if A is a leaf, or if B is bigger and not a leaf

4. Set A1 and A2 to be A’s children

5. M Distance(A1,B)

6. If M > 0 then return Distance(A2,B)

7. Else return 0

M (upper bound on distance) is initialized to very large number

Page 30: Collision Detection and Distance Computation CS 326A: Motion Planning

Approximate Distance Computation

Approx-Distance(A,B) [ da : da de and de-da de]

1. If dist(A,B) > M, then return M2. If A and B are both leaves, then

a. d distance between their contents b. If d < M then return (1-)d else return M

3. Switch A and B if A is a leaf, or if B is bigger and not a leaf

4. Set A1 and A2 to be A’s children

5. M Approx-Distance(A1,B)

6. If M > 0 then return Approx-Distance(A2,B) 7. Return 0

M (upper bound on distance) is initialized to very large number

Page 31: Collision Detection and Distance Computation CS 326A: Motion Planning

Approximate Distance Computation

Approx-Distance(A,B) [ da : da de and de-da de]

1. If dist(A,B) > M, then return M2. If A and B are both leaves, then

a. d distance between their contents b. If d < M then return (1-)d

3. Switch A and B if A is a leaf, or if B is bigger and not a leaf

4. Set A1 and A2 to be A’s children

5. M Approx-Distance(A1,B)

6. If M > 0 then return Approx-Distance(A2,B) 7. Return 0

M (upper bound on distance) is initialized to very large number

Garanteed to return an approximate distance between (1-)d and d

Page 32: Collision Detection and Distance Computation CS 326A: Motion Planning

Use BV hierarchy + same recursion as for pure cc But compute distance between BVs instead of just testing BV overlap

Greedy Distance Computation

returns values often much larger than ½ distances small factor slower than a pure collision checking much faster than BV-based exact or ½-approximate distance computation

Page 33: Collision Detection and Distance Computation CS 326A: Motion Planning

Desirable Properties of BVs and BVHs

BVs: Tightness Efficient testing Invariance

BVH: Separation Balanced tree ?

Page 34: Collision Detection and Distance Computation CS 326A: Motion Planning

Desirable Properties of BVs and BVHs

BVs: Tightness Efficient testing Invariance

BVH: Separation Balanced tree

Page 35: Collision Detection and Distance Computation CS 326A: Motion Planning

Spheres

Invariant Efficient to test But tight?

Page 36: Collision Detection and Distance Computation CS 326A: Motion Planning

Axis-Aligned Bounding Box (AABB)

Page 37: Collision Detection and Distance Computation CS 326A: Motion Planning

Axis-Aligned Bounding Box (AABB)

Not invariant Efficient to test Not tight

Page 38: Collision Detection and Distance Computation CS 326A: Motion Planning

Oriented Bounding Box (OBB)

Page 39: Collision Detection and Distance Computation CS 326A: Motion Planning

Invariant Less efficient to test Tight

Oriented Bounding Box (OBB)

Page 40: Collision Detection and Distance Computation CS 326A: Motion Planning

Comparison of BVs

Sphere

AABB OBB

Tightness - -- +

Testing + + o

Invariance

yes no yes

No type of BV is optimal for all situations

Page 41: Collision Detection and Distance Computation CS 326A: Motion Planning

Desirable Properties of BVs and BVHs

BVs: Tightness Efficient testing Invariance

BVH: Separation Balanced tree ?

Page 42: Collision Detection and Distance Computation CS 326A: Motion Planning

Desirable Properties of BVs and BVHs

BVs: Tightness Efficient testing Invariance

BVH: Separation Balanced tree

Page 43: Collision Detection and Distance Computation CS 326A: Motion Planning

Construction of a BVH

Top-down construction At each step, create the two children of a

BV Example:

For OBB, split longest side at midpoint

Page 44: Collision Detection and Distance Computation CS 326A: Motion Planning

Computation of an OBB[Gottschalk, Lin, and Manocha, 96]

N points ai = (xi, yi, zi)T, i = 1,…, N

SVD of A = (a1 a2 ... aN) A = UDVT where

D = diag(1,2,3) such that 1 2 3 0

U is a 3x3 rotation matrix that defines the principal axes of variance of the ai’s OBB’s directions

The OBB is defined by max and min coordinates of the ai’s along these directions

Possible improvements: use vertices of convex hull of the ai’s or dense uniform sampling of convex hull

x

y

X

Yrotation described bymatrix U

Page 45: Collision Detection and Distance Computation CS 326A: Motion Planning

Combining Bounding Volume and Feature Tracking Methods

S.A. Ehmann and M.C. Lin. Accurate and Fast Proximity Queries Between Polyhedra Using Convex Surface Decomposition. Proc. 2001 Eurographics, Vol. 20, No. 3, pp. 500-510, 2001.

Use BVH to quickly identify close pairs of polyhedra Use feature-tracking to check these pairs

Page 46: Collision Detection and Distance Computation CS 326A: Motion Planning

Static vs. Dynamic Collision Detection

Static checks Dynamic checks

Page 47: Collision Detection and Distance Computation CS 326A: Motion Planning

Usual Approach to Dynamic Checking (in PRM Planning)

too large collisions are missed too small slow test of local paths

1

2

32

3

3

3

1) Discretize path at some fine resolution 2) Test statically each intermediate configuration

Page 48: Collision Detection and Distance Computation CS 326A: Motion Planning

Testing Path Segmentvs. Finding First Collision

PRM planning Detect collision as quickly as possible Bisection strategy

Physical simulation, haptic interactionFind first collision Sequential strategy

Page 49: Collision Detection and Distance Computation CS 326A: Motion Planning

too large collisions are missed too small slow test of local paths

Page 50: Collision Detection and Distance Computation CS 326A: Motion Planning

too large collisions are missed too small slow test of local paths

Page 51: Collision Detection and Distance Computation CS 326A: Motion Planning

Previous Approaches to Dynamic Collision

DetectionBounding-volume (BV) hierarchies Discretization issueFeature-tracking methods

[Lin, Canny, 91][Mirtich, 98] V-Clip[Cohen, Lin, Manocha, Ponamgi, 95] I-Collide[Basch, Guibas, Hershberger, 97] KDS

Geometric complexity issue with highly non-convex objects Sequential strategy (first collision) that is not efficient for PRM path segmentsSwept-volume intersection

[Cameron, 85][Foisy, Hayward, 93]

Swept-volumes are expensive to compute. Too much data. No pre-computed BV hierarchiesAlgebraic trajectory parameterization

[Canny, 86][Schweikard, 91] [Redon, Kheddar, Coquillard, 00]

High-degree polynomials, expensive Floating-point arithmetics difficulties Sequential strategyCombination

[Redon, Kheddar, Coquillard, 00] BVH + algebraic parameterization [Ehmann, Lin, 01] BVH + feature tracking Sequential strategy

Page 52: Collision Detection and Distance Computation CS 326A: Motion Planning

Adaptive Bisection

Ideas: a) Relate configuration changes to

path lengths in workspaceb) Use distance computation rather

than pure collision checkingc) Bisect adaptively

Page 53: Collision Detection and Distance Computation CS 326A: Motion Planning

For any q and q’ no robot point traces a path longer than:

(q,q’) = 3|q1|+2|q2|+|q3|

q = (q1,q2,q3)q’ = (q’1,q’2,q’3)qi = q’i-qi

q1

q2

q3

Ideas: a) Relate configuration changes to path lengths in

workspaceb) Use distance computation rather than pure collision checkingc) Bisect adaptively

Page 54: Collision Detection and Distance Computation CS 326A: Motion Planning

If (q,q’) < (q) + (q’)then the straight path betweenq and q’ is collision-free

(q)

(q) = Euclidean distance between robot and obstacles (or lower bound)

q1

q2

q3

Ideas: a) Relate configuration changes to path lengths in workspaceb) Use distance computation rather than pure collision

checkingc) Bisect adaptively

Page 55: Collision Detection and Distance Computation CS 326A: Motion Planning

q

q’

{q” | (q,q”) < (q)}

{q” | (q’,q”) < (q’)}

(q,q’) < (q) + (q’)

Ideas: a) Relate configuration changes to path lengths in workspaceb) Use distance computation rather than pure collision

checkingc) Bisect adaptively

Page 56: Collision Detection and Distance Computation CS 326A: Motion Planning

q

q’

{q” | (q,q”) < (q)}

{q” | (q’,q”) < (q’)}

(q,q’) < (q) + (q’)

Ideas: a) Relate configuration changes to path lengths in workspaceb) Use distance computation rather than pure collision

checkingc) Bisect adaptively

(q,q’) = (q,qint) + (qint,q’) < (q) + (q’)

qint

Page 57: Collision Detection and Distance Computation CS 326A: Motion Planning

q

q’

{q” | (q,q”) < (q)}

{q” | (q’,q”) < (q’)}

Bisection

(q,q’) > (q) + (q’)

Ideas: a) Relate configuration changes to path lengths in workspaceb) Use distance computation rather than pure collision

checkingc) Bisect adaptively

Page 58: Collision Detection and Distance Computation CS 326A: Motion Planning

But …

Some links move much less than others

Some links may be closer to obstacles than others

There might be several interacting robots

After all, distances are computed between pairs of rigid bodies

So …

Page 59: Collision Detection and Distance Computation CS 326A: Motion Planning

GeneralizationRobot(s) and static obstacles treated as collection of rigid bodies A1, …, An.

i(q,q’): upper bound on length of curve segment traced by any point on Ai when robot system is linearly interpolated between q and q’

1(q,q’) = |q1|2(q,q’) = 2|q1|+|q2| 3(q,q’) = 3|q1|+2|q2|+|q3|

q1

q2

q3

Page 60: Collision Detection and Distance Computation CS 326A: Motion Planning

GeneralizationRobot(s) and static obstacles treated as collection of rigid bodies A1, …, An.

i(q,q’): upper bound on length of curve segment traced by any point on Ai when robot system is linearly interpolated between q and q’

1(q,q’) = |q1|2(q,q’) = 2|q1|+|q2| 3(q,q’) = 3|q1|+2|q2|+|q3|

q1

q2

q3

Page 61: Collision Detection and Distance Computation CS 326A: Motion Planning

GeneralizationRobot(s) and static obstacles treated as collection of rigid bodies A1, …, An.

i(q,q’): upper bound on length of curve segment traced by any point on Ai when robot system is linearly interpolated between q and q’

If i(q,q’) + j(q,q’) < ij(q) + ij(q’)then Ai and Aj do not collide between q and q’

Page 62: Collision Detection and Distance Computation CS 326A: Motion Planning

Generalized Bisection Method

I. Until Q is not empty do:1. [qa,qb]ij remove-first(Q)

2. If i(qa,qb) + j(qa,qb) ij(qa) + ij(qb) then

a. qmid (qa+qb)/2

b. If ij(qmid) = 0 then return collision

c. Else insert [qa,qmid]ij and [qmid,qb]ij into Q

II. Return no collision

Each pair of bodies is checked independently of the others priority queue Q of elements [qa,qb]ij

Initially, Q consists of [q,q’]ij for all pairs of bodies Ai and Aj that need to be tested.

Page 63: Collision Detection and Distance Computation CS 326A: Motion Planning

Heuristic Ordering Q

Goal: Discover collision quicker if there is one.

Sort Q by decreasing values of: [i(qa,qb) + j(qa,qb)] – [ij(qa) + ij(qb)]

Possible extension to multi-segment paths(very useful with lazy collision-checking PRM)

Page 64: Collision Detection and Distance Computation CS 326A: Motion Planning

Segment Covering Strategies

Allows caching of forward kinematic results

Page 65: Collision Detection and Distance Computation CS 326A: Motion Planning

Collision Checker in Action

Page 66: Collision Detection and Distance Computation CS 326A: Motion Planning

Comparative Experiment

Robot: 2,502 trianglesObstacles: 432 Triangles

SBL 17 secA-SBL 4.8 sec

SBL: PRM planner (single-query, bi-directional, lazy in cc) with fixed-discretization collision checkerA-SBL: Same planner, with adaptive collision checker

Experiment: • Run SBL 10 times on same planning problem with some resolution • If a collision has been missed, reduce and repeat• If no collision has been missed, return average planning time• Run A-SBL 10 times and return average planning time

Page 67: Collision Detection and Distance Computation CS 326A: Motion Planning

Some ResultsRobot: 2,502 trianglesObstacles: 432 Triangles

SBL 17 secA-SBL 4.8 sec

Robot: 2,991 trianglesObstacles: 74,681 triangles

SBL 1.20 secA-SBL 0.81 sec

Robot: 2,991 trianglesObstacles: 432 Triangles

SBL 83 secA-SBL 44 sec

Robot: 2,502 trianglesObstacles: 34,171 triangles

SBL 3.2 secA-SBL 2.1 sec

Robots: 6 x 2,991 trianglesObstacles: 19,668 triangles

SBL 85 secA-SBL 52 sec