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

Slides:



Advertisements
Similar presentations
2.6. B OUNDING V OLUME H IERARCHIES Overview of different forms of bounding volume hierarchy.
Advertisements

Adversarial Search We have experience in search where we assume that we are the only intelligent being and we have explicit control over the “world”. Lets.
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Searching on Multi-Dimensional Data
Chapter 7 – Classification and Regression Trees
Chapter 7 – Classification and Regression Trees
K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush.
Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif.
Course Review COMP171 Spring Hashing / Slide 2 Elementary Data Structures * Linked lists n Types: singular, doubly, circular n Operations: insert,
©Silberschatz, Korth and Sudarshan12.1Database System Concepts Chapter 12: Part B Part A:  Index Definition in SQL  Ordered Indices  Index Sequential.
UNC Chapel Hill M. C. Lin Overview of Last Lecture About Final Course Project –presentation, demo, write-up More geometric data structures –Binary Space.
B + -Trees (Part 1). Motivation AVL tree with N nodes is an excellent data structure for searching, indexing, etc. –The Big-Oh analysis shows most operations.
Efficient Distance Computation between Non-Convex Objects by Sean Quinlan presented by Teresa Miller CS 326 – Motion Planning Class.
Efficient Distance Computation between Non-Convex Objects By Sean Quinlan Presented by Sean Augenstein and Nicolas Lee.
CPSC 335 BTrees Dr. Marina Gavrilova Computer Science University of Calgary Canada.
Indexing. Goals: Store large files Support multiple search keys Support efficient insert, delete, and range queries.
Balanced Trees Ellen Walker CPSC 201 Data Structures Hiram College.
Chapter 9 – Classification and Regression Trees
Binary Trees, Binary Search Trees RIZWAN REHMAN CENTRE FOR COMPUTER STUDIES DIBRUGARH UNIVERSITY.
B + -Trees. Motivation An AVL tree with N nodes is an excellent data structure for searching, indexing, etc. The Big-Oh analysis shows that most operations.
Starting at Binary Trees
Lecture 11COMPSCI.220.FS.T Balancing an AVLTree Two mirror-symmetric pairs of cases to rebalance the tree if after the insertion of a new key to.
BINARY TREES Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary.
Adversarial Search 2 (Game Playing)
B-Trees Katherine Gurdziel 252a-ba. Outline What are b-trees? How does the algorithm work? –Insertion –Deletion Complexity What are b-trees used for?
Parallel Programming in Chess Simulations Part 2 Tyler Patton.
A Fast Algorithm for Incremental Distance Calculation Ming C. Lin & John Canny University of California, Berkeley 1991 Presentation by Adit Koolwal.
CS261 Data Structures Binary Search Trees Concepts.
CSE332: Data Abstractions Lecture 7: AVL Trees
Spatial Data Management

Bounding Volume Hierarchies and Spatial Partitioning
CSCE 210 Data Structures and Algorithms
Data Structures: Disjoint Sets, Segment Trees, Fenwick Trees
CPS216: Data-intensive Computing Systems
Multiway Search Trees Data may not fit into main memory
B-Trees B-Trees.
B+-Trees.
Bounding Volume Hierarchies and Spatial Partitioning
B+-Trees.
B+-Trees.
Lecture 18. Basics and types of Trees
KD Tree A binary search tree where every node is a
Binary Tree and General Tree
Map interface Empty() - return true if the map is empty; else return false Size() - return the number of elements in the map Find(key) - if there is an.
CSCE 441: Computer Graphics Hidden Surface Removal
Efficient Distance Computation between Non-Convex Objects
Finding Heuristics Using Abstraction
Searching.
(2,4) Trees /26/2018 3:48 PM (2,4) Trees (2,4) Trees
Data Structures and Algorithms
B-Tree.
CSE373: Data Structures & Algorithms Lecture 5: AVL Trees
(2,4) Trees (2,4) Trees (2,4) Trees.
Searching CLRS, Sections 9.1 – 9.3.
Topics covered (since exam 1, excluding PQ):
B-Trees CSE 373 Data Structures CSE AU B-Trees.
(2,4) Trees 2/15/2019 (2,4) Trees (2,4) Trees.
Advanced Implementation of Tables
(2,4) Trees /24/2019 7:30 PM (2,4) Trees (2,4) Trees
CSE 373, Copyright S. Tanimoto, 2002 B-Trees -
Birch presented by : Bahare hajihashemi Atefeh Rahimi
(2,4) Trees (2,4) Trees (2,4) Trees.
Collision Detection.
CSC 143 Binary Search Trees.
B-Trees CSE 373 Data Structures CSE AU B-Trees.
B-Trees.
Non-Linear data structures
Lecture 21 Amortized Analysis
CS210- Lecture 20 July 19, 2005 Agenda Multiway Search Trees 2-4 Trees
Presentation transcript:

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 Exact distance information Works in 2D or 3D environment Efficient

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

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

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

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

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

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.

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

Resulting Tree Representation

Resulting Tree Representation

Resulting Tree Representation

Resulting Tree Representation

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

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

Set initial distance value to infinity 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

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

Eventually search reaches a leaf node 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).

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

Continue depth-first search 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

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

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

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

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

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

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

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