1 / 35

Motion and Manipulation

Motion and Manipulation. Collision Detection L: Section 5.3. 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

mahola
Download Presentation

Motion and Manipulation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

More Related