Overview Overview � Motivation Motivation Collision Detection Collision Detection � � Classification Classification � � Query type Query type � Alan Liu Alan Liu � Algorithms Algorithms � aliu@usuhs.mil aliu@usuhs.mil � Examples Examples � � Research directions Research directions � The Surgical Simulation Laboratory The Surgical Simulation Laboratory National Capital Area Medical Simulation Center National Capital Area Medical Simulation Center Uniformed Services University Uniformed Services University http://simcen.usuhs.mil/miccai2003 http://simcen.usuhs.mil/miccai2003 Simulation for Medical Training – MICCAI 2003 A Simple Collision Detection A Simple Collision Detection Motivation Motivation Algorithm Algorithm � Need to identify Need to identify � for object_1 in {all objects} for object_1 in {all objects} � � interaction between interaction between – for object_2 in {all objects} for object_2 in {all objects} – – Tool and tissue Tool and tissue » if collide(object_1,object_2) » if collide(object_1,object_2) – � add <object_1,object_2> to list add <object_1,object_2> to list – Tissue and tissue Tissue and tissue � – � Algorithm assumes Algorithm assumes � – Tool and tool – Tool and tool – static environment static environment – � Interactions include Interactions include � – You actually want to detect collision You actually want to detect collision – – Contact – Contact – Penetration – Penetration – Proximity – Proximity Simulation for Medical Training – MICCAI 2003 Simulation for Medical Training – MICCAI 2003 Collision Detection in a Dynamic Collision Detection in a Dynamic Query Types Query Types Environment Environment � Intersection Intersection � Two broad classes Two broad classes � � – Collide or not – Collide or not – – Detects collisions in continuous spatial Detects collisions in continuous spatial- - – Collision loci – Collision loci temporal domain temporal domain – Polygon(s) colliding – Polygon(s) colliding » Infinite spatial resolution Infinite spatial resolution » � Proximity Proximity – – Detects collisions at discrete intervals in Detects collisions at discrete intervals in � temporal domain temporal domain – Finding the closest points/polygons Finding the closest points/polygons – » Sampling must ensure collisions are not missed Sampling must ensure collisions are not missed » � Prediction Prediction � – Time to collide – Time to collide – Priority list – Priority list Simulation for Medical Training – MICCAI 2003 Simulation for Medical Training – MICCAI 2003
Brute Force Collision Detection Brute Force Collision Detection Brute Force Collision Detection Brute Force Collision Detection � Check for collisions Check for collisions � Check for collisions Check for collisions � � between objects between objects between objects between objects – Self collision – Self collision – Self collision – Self collision – – Tool Tool- -tissue collision tissue collision – Tool – Tool- -tissue collision tissue collision – – tissue tissue- -tissue collision tissue collision – tissue – tissue- -tissue collision tissue collision � Too much, need to Too much, need to � Too much, need to Too much, need to � � prune list of prune list of prune list of prune list of objects/polygons to objects/polygons to objects/polygons to objects/polygons to Image by Daigo Tanaka, Image by Daigo Tanaka, Image by Daigo Tanaka, test test test test The Surgical Simulation Laboratory The Surgical Simulation Laboratory The Surgical Simulation Laboratory Simulation for Medical Training – MICCAI 2003 Simulation for Medical Training – MICCAI 2003 Detecting Collision Between Detecting Collision Between Collision Detection Collision Detection Polyhedra Polyhedra � Feature Feature- -based algorithms based algorithms � Needs to be done often Needs to be done often � � – Every time Every time – – Features can be vertices, lines, or faces. – Features can be vertices, lines, or faces. tools/organs/tissues change tools/organs/tissues change � Iteratively converges to the closest feature pair on Iteratively converges to the closest feature pair on � position or deform position or deform polyhedra being tested. polyhedra being tested. – Must be fast – Must be fast � Examples Examples » Both visual and haptic » Both visual and haptic � rendering rendering – Lin Lin- -Canny algorithm Canny algorithm – � Types of collisions Types of collisions � » Computes closest features Computes closest features » – Tool/tool – Tool/tool » Linear in number of vertices » Linear in number of vertices – Tool/tissue – Tool/tissue » Near Near- -constant time if temporal coherence is used constant time if temporal coherence is used » – Tissue/tissue Tissue/tissue – – V – V- -Clip Clip » » Permits penetrating objects, more robust Permits penetrating objects, more robust Simulation for Medical Training – MICCAI 2003 Simulation for Medical Training – MICCAI 2003 Detecting Collision Between Detecting Collision Between Bounding Volumes Bounding Volumes Polyhedra Polyhedra � Gilbert, Johnson and Kerrthi Algorithm Gilbert, Johnson and Kerrthi Algorithm � Not cost effective to track distant objects Not cost effective to track distant objects � � – GJK and enhanced GJK – GJK and enhanced GJK � Many collision detection libraries use a Many collision detection libraries use a � � Based on techniques in linear programming Based on techniques in linear programming two- two -level approach to detecting collisions. level approach to detecting collisions. � – Prune uninteresting objects Prune uninteresting objects � Estimates of penetrating distance possible Estimates of penetrating distance possible – � » Too far away » Too far away – Uses temporal coherence to run in near constant – Uses temporal coherence to run in near constant » » No colliding for next “n” time steps No colliding for next “n” time steps time time – Check for collision between likely objects only – Check for collision between likely objects only » » Check between polytopes Check between polytopes » Check specific polygons between objects. Check specific polygons between objects. » Simulation for Medical Training – MICCAI 2003 Simulation for Medical Training – MICCAI 2003
Recommend
More recommend