18
Efficient Distance Computation between Non-Convex Objects by Sean Quinlan presented by Teresa Miller [email protected] CS 326 – Motion Planning Class 3

Efficient Distance Computation between Non-Convex Objects by Sean Quinlan presented by Teresa Miller [email protected] CS 326 – Motion Planning Class

  • View
    217

  • Download
    3

Embed Size (px)

Citation preview

Efficient Distance Computation between Non-Convex Objects

by Sean Quinlan

presented by Teresa [email protected]

CS 326 – Motion PlanningClass 3

Goal: Find distances between pairs of

non-convex objects Also – collision detection

Key: bounding representation with simple search

Construction of sphere tree A hierarchical representation of the

object 3D object is divided into polygons Segments are surrounded by spheres Small spheres are surrounded by

larger spheres Binary tree is formed (not in that order)

Leaf spheres in 2D Imagine the S below is straight line

segments Cover segments with circles Circles remember associated segment

Partition leaf circles

When you’ve divided as far as possible, surround each pair of circles to form a tree

In a good hierarchy, segments in the same circles should be spatially close

Resulting Tree Representation

A 3D example

Collision Detection Use the two sphere trees – they represent

two objects If two spheres touch, descend further May need to descend to polygon level (line

segment)

Collision Detection Runs quickly if objects are:

Widely separated Collided

Collision Detection Runs less quickly if objects are:

Close but not overlapping Close at many points

Distance computation Collision detection actually done

with a distance computation With two sphere trees larger nodes

are expanded first

Simple Example (one sphere tree)

Set initial distance value to infinity

Start at the root node. 20 < infinity, so continue searching

Simple Example Set initial distance value to

infinity

Start at the root node. 20 < infinity, so continue searching.

40 < infinity, so continue searching recursively.

Choose the nearest of the two child spheres to search first

Simple Example Eventually search reaches a leaf

node

40 < infinity; examine the segment to which the leaf node is attached.

Simple Example Eventually search reaches a leaf

node

Find exact distance to the segment. Replace infinity with new minimum distance (42 in this case).

40 < infinity; examine the segment to which the leaf node is attached.

d = 42

Simple Example Continue depth-first search

45 > 42; don’t search this branch any further

d = 45

Simple Example Continue depth-first search

60 > 42; we can prune this half of our tree from the search

45 > 42; don’t search this branch any further

d = 45

Other points Can be done with relative error –

eliminates need to completely expand trees when objects are not in contact

Empirical trials give good results – especially when 20% error is tolerable, as in collision detection case