SlideServe
Menu
Préférences
© SlideServe · v2026

Efficient Collision Detection in Sampling-Based Path Planning

mahola avatar
35 diapositives · 513 Views · Aug 01, 2014

This document discusses methods for detecting collisions in motion planning scenarios involving physical laws and user-controlled movements. It elaborates on techniques such as sampling-based path planning that checks if a path between neighboring configurations is collision-free. The standard approach involves computing object placements over a time step Δt to identify potential intersections. Various strategies for filtering potential intersecting objects, testing intersections, and utilizing data structures for efficient querying in cluttered scenes are presented, including voxel grids, quadtrees, and bounding volumes.

Efficient Collision Detection in Sampling-Based Path Planning - slide 1
01 / 35Efficient Collision Detection in Sampling-Based Path Planning
1 / 17

Télécharger la présentation

Efficient Collision Detection in Sampling-Based Path Planning
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Motion and Manipulation Collision Detection L: Section 5.3

  2. Collision Detection Sampling-based path planning: check if a simple path between two neighboring configurations is collision-free Detect collision of objects that move under the influence of physics laws are controlled by a user Collisions often require actions: compute deformation, change direction and magnitude speed

  3. Standard Approach t := 0 while not ready do compute placements of objects at t + ∆t check for intersections of objects at these placements, and perform action if necessary t := t + ∆t

  4. Collision or Interference Checking t := 0 while not ready do compute placements of objects at t + ∆t check for intersections of objects at these placements, and perform action if necessary t := t + ∆t Choice of ∆t is crucial!

  5. Time Step ∆t too large: danger of undetected collisions ∆t too small: excessive computation time t + ∆t t

  6. Expensive Alternative Use sweep volumes, or add time dimension Disadvantages complex shapes, expensive computation motion must be known beforehand t t y t + ∆t x

  7. Interference Checking Given: set P of n primitives (e.g. triangles, tetrahedra, balls, surface patches, simple polygons or polyhedra) Approach Filtering step: smart selection (using a data structure) of pairs of primitives that may intersect Refinement step: actual intersection check of candidate pairs resulting from filtering step

  8. Refinement Step (Fast) intersection tests for primitives are non-trivial Test: does polyhedron A intersect polyhedron B?

  9. Refinement Step Test: does polyhedron A intersect polyhedron B? Solution: edge of A intersects facet of B, or edge of B intersects facet of A, or vertex of A lies inside B, or vertex of B lies inside A

  10. Refinement Step Test: does point p lie inside polyhedron A?

  11. Refinement Step Test: does point p lie inside polyhedron A? Solution: count number of intersections of a half-line emanating from p with boundary facets of A if odd: p lies inside A if even: p is not in A beware: degenerate cases!

  12. Refinement Step Test: does segment pq intersect triangle abc? c q a b p

  13. Refinement Step Test: does segment pq intersect triangle abc? Solution: p and q lie on opposite sides of plane through a, b, and c and q and c lie on same side of plane through a, b, and p and q and b lie on same side of plane through a, c, and p and q and a lie on same side of plane through b, c, and p c q a b p

  14. Filtering Step Prevent testing all pairs of primitives for intersection, but use data structure to select a (preferably small) set of candidates Approaches Space partitioning Model partitioning

  15. Space Partitioning Decompose space into cells Store references to intersecting primitives with each cell cell x cell x cell y cell y

  16. Space Partitioning Idea: only test pairs of primitives that intersect the same cell (and at least one of the primitives is moving) Issue: store moving objects in data structure or not (and instead just query with them)? Storing moving objects requires updates of the data structure

  17. Query with Moving Object cell x cell x cell y cell y

  18. Voxel Grid Use regular grid for subdivision of space j i • Subdivision is stored implicitly • Fast access of cells

  19. Voxel Grid Cluttered scenes • Distribution is not taken into account

  20. Voxel Grid Differently-sized objects Voxel grids work well for roughly uniformly-distributed and equally-sized objects

  21. Quadtree (or Octree) Take distribution into account by appropriately varying cell size Square/cubic cells only Top-down decomposition: subdivide a cell only if the number of objects intersecting it is (too) large

  22. Quadtree Build Quadtree (set P, square σ): if P and σ satisfy stop criterion then create leaf for σ and store references to elements of P else split σ into four quadrants σ1…σ4 determine subsets Pi of P of objects intersecting σi create internal node ν, with the trees resulting from recursively running Build Quadtree (Pi , σi) for 1≤i ≤4 as its children

  23. Quadtree

  24. Quadtree More adaptive than voxel grids • Extra overhead: tree structure • Slower access of cells Still many empty cells in case of uneven object distribution

  25. Kd Tree More freedom in subdivision: splits by means of axis-parallel line Horizontal or vertical: alternatingly longest side first Location: bisecting vertices bisecting centroids

  26. Kd Tree l1 l2 l3 l2 l3 l1

  27. Kd Tree Problematic scene

  28. BSP Tree Even more freedom in subdivision: splits by means of any line

  29. Space Partitioning General disadvantage: multiple references to the same object (due to that object intersecting multiple cells): requiring extra memory leading to multiple intersection tests for the same pair during an interference query

  30. Model Partitioning Strategies use bounding volumes Bounding volume of an object is a primitive shape that encloses the object Idea: if a query object does not intersect a bounding volume it does also not intersect the enclosed object

  31. Bounding Volume Desired properties: good fit: not much larger than enclosed object fast intersection test for pairs of bounding volumes small storage requirement Examples of bounding volumes sphere axis-aligned bounding box (AABB) oriented bounding box (OBB) discrete oriented polygon/polytope (k-DOP)

  32. Bounding-Volume Hierarchy Bounding-volume hierarchy is a tree structure with leafs storing a primitive and its bounding volume internal nodes storing the bounding volume of all the primitives stored in the subtree rooted at the node Grouping of objects at internal nodes is crucial to the performance of interference queries (as a query once again accesses all nodes whose associated bounding volume is intersected by the query object)

  33. Bounding-Volume Hierarchy

  34. Bounding-Volume Hierarchy Bad clustering of objects leads to recursive calls on too many internal nodes = query object

  35. Bounding-Volume Hierarchy Comparison with original hierarchy = query object