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

Slides:



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

Traveling Salesperson Problem

Nearest Neighbor Queries using R-trees
Collision Detection CSCE /60 What is Collision Detection?  Given two geometric objects, determine if they overlap.  Typically, at least one of.
Computer graphics & visualization Collisions. computer graphics & visualization Simulation and Animation – SS07 Jens Krüger – Computer Graphics and Visualization.
Searching on Multi-Dimensional Data
Introduction to Trees Chapter 6 Objectives
CSE 381 – Advanced Game Programming Scene Management
Geometric Representations & Collision Detection Kris Hauser I400/B659: Intelligent Robotics Spring 2014.
Week 14 - Monday.  What did we talk about last time?  Bounding volume/bounding volume intersections.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Multiple-key indexes Index on one attribute provides pointer to an index on the other. If V is a value of the first attribute, then the index we reach.
Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif.
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
Self-Collision Detection and Prevention for Humonoid Robots Paper by James Kuffner et al. Presented by David Camarillo.
A lion in the desert How do you find a lion in the desert? How about when you have a predicate that tells you if the lion is in front or behind a separating.
Spatial Queries Nearest Neighbor Queries.
CS 326 A: Motion Planning robotics.stanford.edu/~latombe/cs326/2004/index.htm Collision Detection and Distance Computation.
OBBTree: A Hierarchical Structure for Rapid Interference Detection Gottschalk, M. C. Lin and D. ManochaM. C. LinD. Manocha Department of Computer Science,
Bounding Volume Hierarchies and Spatial Partitioning Kenneth E. Hoff III COMP-236 lecture Spring 2000.
CS 326 A: Motion Planning Collision Detection and Distance Computation.
1 Section 9.2 Tree Applications. 2 Binary Search Trees Goal is implementation of an efficient searching algorithm Binary Search Tree: –binary tree in.
Efficient Distance Computation between Non-Convex Objects By Sean Quinlan Presented by Sean Augenstein and Nicolas Lee.
Backtracking.
Collision Detection David Johnson Cs6360 – Virtual Reality.
Binary Trees Chapter 6.
CPSC 335 BTrees Dr. Marina Gavrilova Computer Science University of Calgary Canada.
Tree.
Storage CMSC 461 Michael Wilson. Database storage  At some point, database information must be stored in some format  It’d be impossible to store hundreds.
Fundamentals of Algorithms MCS - 2 Lecture # 7
Lecture 10 Trees –Definiton of trees –Uses of trees –Operations on a tree.
Chapter 6 Binary Trees. 6.1 Trees, Binary Trees, and Binary Search Trees Linked lists usually are more flexible than arrays, but it is difficult to use.
Multi-dimensional Search Trees
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
Computer Science: A Structured Programming Approach Using C Trees Trees are used extensively in computer science to represent algebraic formulas;
CIS 350 – I Game Programming Instructor: Rolf Lakaemper.
Static Dictionaries Collection of items. Each item is a pair.  (key, element)  Pairs have different keys. Operations are:  initialize/create  get (search)
MACHINE LEARNING 10 Decision Trees. Motivation  Parametric Estimation  Assume model for class probability or regression  Estimate parameters from all.
Chapter 11 Collision Detection 가상현실 입문 그래픽스 연구실 민성환.
Types of Algorithms. 2 Algorithm classification Algorithms that use a similar problem-solving approach can be grouped together We’ll talk about a classification.
Compiled By: Raj Gaurang Tiwari Assistant Professor SRMGPC, Lucknow Unsupervised Learning.
Multi-dimensional Search Trees CS302 Data Structures Modified from Dr George Bebis.
Example: Expressions Python Programming, 2/e 1 [+, [*, 3, 5], [*, 2, [-, 6, 1]]]
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
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)
Ray Tracing Acceleration (5). Ray Tracing Acceleration Techniques Too Slow! Uniform grids Spatial hierarchies K-D Octtree BSP Hierarchical grids Hierarchical.
Artificial Intelligence in Game Design Board Games and the MinMax Algorithm.
Ray Tracing Acceleration (3)
Minkowski Sums and Distance Computation Eric Larsen COMP
Hierarchical Data Structure in Game Programming Yanci Zhang Game Programming Practice.
Spatial Data Management

Strategies for Spatial Joins
Bounding Volume Hierarchies and Spatial Partitioning
Automated scoring of student trees
Binary search tree. Removing a node
Distance Computation “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presentation by Julie Letchner.
Collision Detection Spring 2004.
Bounding Volume Hierarchies and Spatial Partitioning
KD Tree A binary search tree where every node is a
Efficient Distance Computation between Non-Convex Objects
Quadtrees 1.
CS679 - Fall Copyright Univ. of Wisconsin
Collision Detection.
David Johnson Cs6360 – Virtual Reality
Mathematical Induction II
3.3: Rectangle Collisions
Presentation transcript:

Efficient Distance Computation between Non-Convex Objects by Sean Quinlan presented by Teresa Miller CS 326 – Motion Planning Class 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