Efficient Distance Computation between Non-Convex Objects by Sean Quinlan presented by Teresa Miller...
-
date post
22-Dec-2015 -
Category
Documents
-
view
217 -
download
3
Transcript of Efficient Distance Computation between Non-Convex Objects by Sean Quinlan presented by Teresa Miller...
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
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 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
60 > 42; we can prune this half of our tree from the search
45 > 42; don’t search this branch any further
d = 45