A Fast Algorithm for Incremental Distance Calculation Ming C. Lin & John Canny University of California, Berkeley 1991 Presentation by Adit Koolwal.

Slides:



Advertisements
Similar presentations
Visible-Surface Detection(identification)
Advertisements

Everything you ever wanted to know about collision detection
CS 450: COMPUTER GRAPHICS FILLING POLYGONS SPRING 2015 DR. MICHAEL J. REALE.
Intersection Testing Chapter 13 Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology.
Brute-Force Triangulation
Extended Gaussian Images
One of the most important problems is Computational Geometry is to find an efficient way to decide, given a subdivision of E n and a point P, in which.
I. The Problem of Molding Does a given object have a mold from which it can be removed? object not removable mold 1 object removable Assumptions The object.
The Divide-and-Conquer Strategy
Overlay of Two Subdivisions
Introduction to Collision Detection & Fundamental Geometric Concepts Ming C. Lin Department of Computer Science University of North Carolina at Chapel.
Advanced Computer Graphics Spring 2014
Week 14 - Monday.  What did we talk about last time?  Bounding volume/bounding volume intersections.
A Fast Algorithm for Incremental Distance Calculation Paper by Ming C. Ling and John F. Canny Presented by Denise Jones.
9/5/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Plane Sweep Algorithms and Segment Intersection Carola Wenk.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
CSE 872 Dr. Charles B. Owen Advanced Computer Graphics1 Basic 3D collision detection We want to know if objects have touched Objects are considered to.
Localization of Piled Boxes by Means of the Hough Transform Dimitrios Katsoulas Institute for Pattern Recognition and Image Processing University of Freiburg.
High-Quality Simplification with Generalized Pair Contractions Pavel Borodin,* Stefan Gumhold, # Michael Guthe,* Reinhard Klein* *University of Bonn, Germany.
Collision Detection CSE 191A: Seminar on Video Game Programming Lecture 3: Collision Detection UCSD, Spring, 2003 Instructor: Steve Rotenberg.
CS 326 A: Motion Planning robotics.stanford.edu/~latombe/cs326/2003/index.htm Collision Detection and Distance Computation: Feature Tracking Methods.
Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif.
UNC Chapel Hill M. C. Lin References Collision Detection between Geometric Models: A Survey, by M. Lin and S. Gottschalk, Proc. of IMA Conference on Mathematics.
Self-Collision Detection and Prevention for Humonoid Robots Paper by James Kuffner et al. Jinwhan Kim.
CS 326 A: Motion Planning robotics.stanford.edu/~latombe/cs326/2004/index.htm Collision Detection and Distance Computation: Feature Tracking Methods.
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,
Voronoi Diagrams.
Chapter 5: Path Planning Hadi Moradi. Motivation Need to choose a path for the end effector that avoids collisions and singularities Collisions are easy.
CS 326 A: Motion Planning Collision Detection and Distance Computation.
Providing Haptic ‘Hints’ to Automatic Motion Planners Providing Haptic ‘Hints’ to Automatic Motion Planners by Burchan Bayazit Department of Computer Science.
CS 326A: Motion Planning ai.stanford.edu/~latombe/cs326/2007/index.htm Collision Detection and Distance Computation.
Brute-Force Triangulation
Computer graphics & visualization Collision Detection – Narrow Phase.
9-4 Geometry in Three Dimensions  Simple Closed Surfaces  Regular Polyhedra  Cylinders and Cones.
UNC Chapel Hill M. C. Lin Point Location Chapter 6 of the Textbook –Review –Algorithm Analysis –Dealing with Degeneracies.
INTERACTION TECHNIQUES Collision Detection and Other Interactions Collision Detection and Other Interactions.
CS-321 Dr. Mark L. Hornick 1 3-D Object Modeling.
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
Mesh Representation, part I
Introduction Tracking the corners Camera model and collision detection Keyframes Path Correction Controlling the entire path of a virtual camera In computer.
Computer-Aided Design and Manufacturing Laboratory: 3D Minkowski sum computation Sara McMains UC Berkeley.
CS 325 Introduction to Computer Graphics 03 / 08 / 2010 Instructor: Michael Eckmann.
Collision handling: detection and response
UNC Chapel Hill M. C. Lin Linear Programming Reading: Chapter 4 of the Textbook Driving Applications –Casting/Metal Molding –Collision Detection Randomized.
5 -1 Chapter 5 The Divide-and-Conquer Strategy A simple example finding the maximum of a set S of n numbers.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Collisions & Contact.
3.4. C ONTACT G ENERATION Generating contacts between rigid bodies.
1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 6, 2002 Day 10.
1Computer Graphics Implementation II Lecture 16 John Shearer Culture Lab – space 2
Chapter Area, Pythagorean Theorem, and Volume 14 Copyright © 2013, 2010, and 2007, Pearson Education, Inc.
Computer Graphics I, Fall 2010 Implementation II.
A Fast Algorithm for Incremental Distance Calculation Ming C. Lin and John F. Canny University of California, Berkeley 1991 Original slides by Adit Koolwal.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Solid Modeling Dr. Scott Schaefer.
Polygon Triangulation
1 Schnyder’s Method. 2 Motivation Given a planar graph, we want to embed it in a grid We want the grid to be relatively small And we want an efficient.
Computational Geometry
Minkowski Sums and Distance Computation Eric Larsen COMP
CS552: Computer Graphics Lecture 28: Solid Modeling.
Computational Geometry
Distance Computation “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presentation by Julie Letchner.
Haim Kaplan and Uri Zwick
Efficient Distance Computation between Non-Convex Objects
I. The Problem of Molding
Computer Animation Algorithms and Techniques
Overlay of Two Subdivisions
Algorithms and Data Structures Lecture XIV
3.3: Rectangle Collisions
Presentation transcript:

A Fast Algorithm for Incremental Distance Calculation Ming C. Lin & John Canny University of California, Berkeley 1991 Presentation by Adit Koolwal

an introduction…

the problem of distance calculation Robotics Collision detection Path planning Graphics Collision detection Binary Search Partitioning Trees (BSP trees) Distance calculation is used in a variety of artificial intelligence related fields, including: Haptics Collision detection Force feedback proportional to distance

previous work in distance calculation In order to make the problem tractable, several algorithms assume an “incremental motion” of objects. While assuming “incremental motion” reduces computation, previous algorithms have run in linear time at best. t1t1 t2t2 t3t3 t4t4 t5t5

an overview of the lin-canny algorithm After pre-processing, finds an initial pair of closest features between two polyhedra using an O(n 2 ) search. The Lin-Canny algorithm: At each timestep, checks if the current closest feature pair is still the closest. If not, it finds the new closest pair. t1t1 t2t2 t3t3 t4t4 t5t5 The Lin-Canny algorithm takes advantage of incremental motion because closest features change infrequently.

what is the advantage of lin-canny? Preprocessing steps ensure that objects have boundaries and co-boundaries of constant size (eg. limiting the number edges going through each vertex and bounding each face to 4 or 5). Constant sized boundaries allows constant time verification of a closest feature pair. FAFA FAFA

implementating lin-canny in 4 easy steps…

1.We first represent each object as a convex polyhedron, or a union of convex polyhedra. We can improve the accuracy of the approximation by increasing the resolution of our representation. For non-convex objects we rely on subdivision into convex pieces, which can take up to quadratic time.

1.We first represent each object as a convex polyhedron, or a union of convex polyhedra. 2.For each object we calculate the fields for each of its faces, edges, vertices, positions, and orientations. A FACE contains a list of VERTICES v i which lie on its boundaries, and a list of EDGES e i which bound the face. v1v1 v2v2 v3v3 v4v4 A FACE f i is parameterized by its outward normal and distance from the origin. f1f1 n1n1 e1e1 e2e2 e3e3 e4e4

1.We first represent each object as a convex polyhedron, or a union of convex polyhedra. 2.For each object we calculate the fields for each of its faces, edges, vertices, positions, and orientations. A FACE f i is parameterized by its outward normal and distance from the origin. A FACE contains a list of VERTICES v i which lie on its boundaries, and a list of EDGES e i which bound the face. f2f2 f1f1 Each EDGE e i is described by its head, tail, left face, and right face. e2e2

1.We first represent each object as a convex polyhedron, or a union of convex polyhedra. 2.For each object we calculate the fields for each of its faces, edges, vertices, positions, and orientations. A FACE f i is parameterized by its outward normal and distance from the origin. A FACE contains a list of VERTICES v i which lie on its boundaries, and a list of EDGES e i which bound the face. Each EDGE e i is described by its head, tail, left face, and right face. v2v2 Each VERTEX v i is described by its x,y,z coordinates and its CO- BOUNDARY, the set of edges that intersect it. e5e5 e1e1 e2e2 x y z

1.We first represent each object as a convex polyhedron, or a union of convex polyhedra. 2.For each object we calculate the fields for each of its faces, edges, vertices, positions, and orientations. 3.For each pair of features between the two objects of interest, calculate the closest pair of points between those two features. Find the overall closest pair. There are six different possible feature pairs that we will need to analyze. Let’s take a look at each case… PAPA Define P A to be the closest point of feature A to feature B PBPB Define P B to be the closest point of feature B to feature A d AB The distance d AB is the Euclidean distance between P A and P B

case one: a pair of vertices PAPA PBPB d AB

case two: a vertex and an edge PAPA PBPB d AB

case three: a vertex and a face PAPA PBPB d AB

case four: a pair of edges PAPA PBPB d AB

case five: an edge and a face PAPA PBPB d AB

case six: a pair of faces PAPA PBPB d AB

1.We first represent each object as a convex polyhedron, or a union of convex polyhedra. 2.For each object we calculate the fields for each of its faces, edges, vertices, positions, and orientations. 3.For each pair of features between the two objects of interest, calculate the closest pair of points between those two features. Find the overall closest pair. 4.Incrementally update the closest feature pair. 1.Verify that P A is the closest point of A to feature B, and that P B is the closest point of B to feature A 2.If verification fails, choose a new feature pair and repeat step one 3.Eventually we will terminate on the closest feature pair We utilize the following algorithm for updating:

question: how can we tell if we’ve found a closest feature pair, or if we need to try a new pair? answer: we have “applicability criteria” that each feature pair must satisfy in order to be the closest feature pair. There are applicability criteria for the three of the feature pair combinations: 1. Point-Vertex (Vertex-Vertex) 2. Point-Edge (Vertex-Edge) 3. Point-Face (Vertex-Face) These criteria can be used in dealing with Edge-Edge, Edge-Face, and Face-Face feature pairs as well (see paper).

PAPA VBVB point-vertex applicability criteria Point P A and vertex V B are the closest feature pair if P A lies within the region bounded by the planes perpendicular to the edges touching V B.

PAPA VBVB point-vertex applicability criteria When P A lies outside the planar boundaries of V B (described previously), then some edge E B is closer to P A than V B. EBEB

point-edge applicability criteria 1.The two planes perpendicular to E B, passing through its head and tail, and 2.The two planes perpendicular to the right and left faces of E B. PAPA EBEB Point P A and edge E B are the closest feature pair if P A lies within the region bounded by: FBFB

When P A lies outside one of the two planes perpendicular to the right and left faces of E B, then some face F B is closer to P A than E B. PAPA EBEB FBFB point-edge applicability criteria

When P A lies outside one of the two planes perpendicular to E B and passing through either its head or its tail, then some vertex V B is closer to P A than E B. PAPA EBEB VBVB

point-face applicability criteria Point P A and face F B are the closes feature pair if P A lies within the region bounded by the planes that are both perpendicular to F B and contain the boundaries of F B. PAPA FBFB

point-face applicability criteria PAPA FBFB EBEB If P A lies outside the planar boundaries of F B (described previously) then some edge E B is closer to P A than F B.

point-face applicability criteria PAPA FBFB If P A lies “below” F B then some feature of B closer to P A than F B (otherwise A would have collided into B). dF B2

results and conclusions…

lin-canny runs in constant time in an “incremental movement” framework lin-canny runs in quadratic time when intially finding a closest pair Once an initial closest feature pair is found, it takes on average constant time to keep track of that closest pair. Finding the initial closest feature pair is in the worst case O(n 2 ) in number of features per object.

conclusions Lin-Canny is a simple and efficient algorithm that is guaranteed to find the closest feature and point pair. Results have applications in collision detection and motion planning. Lin-Canny can be extended to handle non-convex objects without any significant increase in running time.