1 / 27

Distance Computation

Distance Computation. “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presentation by Julie Letchner. Key Features. Removal of convexity constraint Assumption of convex objects is unrealistic Much past work deals only with convex worlds

claud
Download Presentation

Distance Computation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distance Computation “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presentation by Julie Letchner

  2. Key Features Removal of convexity constraint Assumption of convex objects is unrealistic Much past work deals only with convex worlds Exact distance information Works in 2D or 3D environment Efficient

  3. Motivation Graphics Collision detection BSP trees Haptics Collision detection Force proportional to distance Robotics Collision detection Path planning

  4. Simplifying Assumptions Surface analysis only Decomposition of objects into sets of convex surfaces Easy in graphics; all surfaces are composed of triangles Not necessarily easy in general Existence of efficient algorithm to determine distance between 2 convex polygons

  5. Algorithm Overview Create a hierarchy of spheres (“bounding tree”) to approximate the object Recursive depth-first search of the tree to find min. distance Only search down to required granularity

  6. The Sphere Hierarchy Binary tree Root node is the object’s bounding sphere Leaf nodes are tiny spheres; their union approximates the object’s surface Every node’s sphere contains the spheres of its descendant nodes

  7. Creating the Bounding Tree Cover the object surface with tiny spheres (leaf nodes). Radius is user-determined.

  8. Creating the Bounding Tree Find a rectangular bounding box. Divide the box’s major axis in half. Recurse until each set contains only a single leaf node.

  9. Creating the Bounding Tree Work back up the tree, creating bounding spheres for each node. Two methods: Find the minimal sphere that contains the two spheres of the child nodes Determine a sphere directly from the leaf nodes descended from this node

  10. Resulting Tree Representation

  11. Resulting Tree Representation

  12. Resulting Tree Representation

  13. Resulting Tree Representation

  14. Computing Distances Depth-first search on the binary tree Keep an updated minimum distance Depth-first  more pruning in search Prune search on branches that won’t reduce minimum distance Once leaf node is reached, examine underlying convex polygon for exact distance

  15. Simple Example Set initial distance value to infinity Start at the root node. 20 < infinity, so continue searching

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

  17. Simple Example Eventually search reaches a leaf node 40 < infinity; examine the polygon to which the leaf node is attached.

  18. Simple Example Eventually search reaches a leaf node 40 < infinity; examine the polygon to which the leaf node is attached. Call algorithm to find exact distance to the polygon. Replace infinity with new minimum distance (42 in this case).

  19. Simple Example Continue depth-first search 45 > 42; don’t search this branch any further

  20. Simple Example Continue depth-first search 45 > 42; don’t search this branch any further 60 > 42; we can prune this half of our tree from the search

  21. Efficiency: Building the Tree Roughly balanced binary tree Expected time O(n log n) Time to generate node i is proportional to the number of leaf nodes descended from i Worst case time O(n 2) If tree is extremely unbalanced Tree must be built only once; can often be pre-computed

  22. Efficiency: Searching the Tree Full search O(n) to traverse the tree; n = #leaf nodes Plus O(p) time to compute distance to each polygon in the underlying model The algorithm allows a pruned search Worst case as above; occurs when objects are close together Best case : O(log n) + a single polygon comparison Average case ranges between the two

  23. Extension: Multiple Trees Occurs when second object is not a single point Search & compare 2 trees Start at root of both trees Compare spheres; split the larger sphere First continue the search comparing the unsplit node from the first tree and the closest child node from the other tree. Then compare the unsplit node and the other child

  24. Extension: Relative Error Use when distance info can be a range When updating the minimum distance d’ between objects, set d’ = (1-a)*d (d = actual distance). a is our relative error; d-d’ <= ad Guarantees that objects are at least d’ apart (1-a)*d = 0 iff d = 0; correctly detects collisions Improves performance by pruning search

  25. Empirical Results Tested on a set of six 3D chess pieces Non-convex Each piece has roughly 2,000 triangles Each piece has roughly 5750 leaf nodes Relative error of 20%  more pruning in search  speedup of 2 orders of magnitude Objects close together  less pruning in search  less efficient

  26. Hacks for Implementation Store polygon comparisons in a hash table to avoid repeat calculations For path planning, make the robot one object and the union of all obstacles a single, second object

  27. Conclusions Simple and intuitive way to speed up distance calculations Gives more information than collision detection algorithms Uses algorithms that compute distances between convex polygons; does not replace them Obvious applications for path planning

More Related