1 / 57

CS B659: Principles of Intelligent Robot Motion

CS B659: Principles of Intelligent Robot Motion. Collision Detection. Probabilistic Roadmaps. How to test for collision?. Collision Detection Methods. Many different methods In particular:

rad
Télécharger la présentation

CS B659: Principles of Intelligent Robot Motion

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. CS B659: Principles of Intelligent Robot Motion Collision Detection

  2. Probabilistic Roadmaps How to test forcollision?

  3. Collision Detection Methods • Many different methods • In particular: • Grid method: good for many simple moving objects of about the same size (e.g., many moving discs with similar radii) • Closest-feature tracking: good for moving polyhedral objects • Bounding Volume Hierarchy (BVH) method: good for few moving objects with complex and diverse geometry

  4. Subdivide space into a regular grid cubic of square bins Index each object in a bin d Grid Method

  5. d Grid Method Running time is proportional tonumber of moving objects Useful also to compute pairs of objects within some distance (vision,sound, …)

  6. Closest-Feature Tracking(M. Lin and J. Canny. A Fast Algorithm for Incremental Distance Calculation. Proc. IEEE Int. Conf. on Robotics and Automation, 1991) The closest pair of features (vertex, edge, face) between two polyhedral objects are computed at the start configurations of the objects During motion, at each small increment of the motion, they are updated Efficiency derives from two observations: The pair of closest features changes relatively infrequently When it changes the new closest features will usually be on a boundary of the previous closest features

  7. Closest-Feature Test for Vertex-Vertex Vertex Vertex

  8. Application: Detecting Self-Collision in Humanoid Robots(J. Kuffner et al. Self-Collision and Prevention for Humanoid Robots. Proc. IEEE Int. Conf. on Robotics and Automation, 2002)

  9. Bounding Volume Hierarchy Method BVH with spheres:S. Quinlan. Efficient Distance Computation Between Non-Convex Objects. Proc. IEEE Int. Conf. on Robotics and Automation, 1994. BVH with Oriented Bounding Boxes:S. Gottschalk, M. Lin, and D. Manocha. OBB-Tree: A Hierarchical Structure for Rapid Interference Detection. Proc. ACM SIGGRAPH '96, 1996. Combination of BVH and feature-tracking:S.A. Ehmann and M.C. Lin. Accurate and Fast Proximity Queries Between Polyhedra Using Convex Surface Decomposition. Proc. 2001 Eurographics, Vol. 20, No. 3, pp. 500-510, 2001. Adaptive bisection in dynamic collision checking:F. Schwarzer, M. Saha, J.C. Latombe. Adaptive Dynamic Collision Checking for Single and Multiple Articulated Robots in Complex Environments, manuscript, 2003.

  10. Bounding Volume Hierarchy Method • Enclose objects into bounding volumes (spheres or boxes) • Check the bounding volumes first • Decompose an object into two

  11. Bounding Volume Hierarchy Method • Enclose objects into bounding volumes (spheres or boxes) • Check the bounding volumes first • Decompose an object into two • Proceed hierarchically

  12. Bounding Volume Hierarchy Method • Enclose objects into bounding volumes (spheres or boxes) • Check the bounding volumes first • Decompose an object into two • Proceed hierarchically

  13. Bounding Volume Hierarchy Method • BVH is pre-computed for each object

  14. BVH in 3D

  15. A A C C B B E F E F D D G G Collision Detection Two objects described by their precomputed BVHs

  16. pruning Collision Detection Search tree AA A A

  17. A C B E F D G BB BC CB CC Collision Detection Search tree AA A A

  18. A C B E F D G pruning Collision Detection Search tree AA BB BC CB CC

  19. A C B E F D G FD FE GD GE If two leaves of the BVH’s overlap(here, G and D) check their content for collision Collision Detection Search tree AA BB BC CB CC G D

  20. A C B AA E F D G BB BC CB CC AA BA CA Variant Search tree A A

  21. Collision Detection • Pruning discards subsets of the two objects that are separated by the BVs • Each path is followed until pruning or until two leaves overlap • When two leaves overlap, their contents are tested for overlap

  22. If there is no collision, all paths must eventually be followed down to pruning or a leaf node But if there is collision, it is desirable to detect it as quickly as possible  Greedy best-first searchstrategy with f(N) = d/(rX+rY)[Expand the nodeXYwith largest relative overlap (most likely to contain a collision)] rY d rX Y X Search Strategy and Heuristics

  23. Test(A,B) If A and B do not overlap, then return 1 If A and B are both leaves, then return 0 if their contents overlap and 1 otherwise Switch A and B if A is a leaf, or if B is bigger and not a leaf Set A1 and A2 to be A’s children If Test(A1,B) = 1 then return Test(A2,B) else return 0 Recursive (Depth-First) Collision Detection Algorithm

  24. Performance • Several thousand collision checks per second for 2 three-dimensional objects each described by 500,000 triangles, on a 1-GHz PC

  25. > M, prune M Distance Computation

  26. Greedy-Distance(A,B,M) If min-dist(A,B) > M, then return M If A and B are both leaves, then return distance between their contents Switch A and B if A is a leaf, or if B is bigger and not a leaf Set A1 and A2 to be A’s children M  min(max-dist(A1,B), max-dist(A2,B), M) d1Greedy-Distance(A1,B,M) d2Greedy-Distance(A2,B,M) Return Min(d1,d2) Greedy Distance Computation M (upper bound on distance) is initialized to infinity

  27. Approx-Greedy-Distance(A,B,M,a) If (1+a)min-dist(A,B) > M, then return M If A and B are both leaves, then return distance between their contents Switch A and B if A is a leaf, or if B is bigger and not a leaf Set A1 and A2 to be A’s children M  min(max-dist(A1,B), max-dist(A2,B), M) d1Approx-Greedy-Distance(A1,B,M,a) d2Approx-Greedy-Distance(A2,B,M,a) Return Min(d1,d2) Approximate Distance M (upper bound on distance) is initialized to infinity

  28. Desirable Properties of BVs and BVHs BVs: • Tightness • Efficient testing • Invariance ? • BVH: • Separation • Balanced tree

  29. Spheres • Invariant • Efficient to test • But tight?

  30. Axis-Aligned Bounding Box (AABB)

  31. Axis-Aligned Bounding Box (AABB) • Not invariant • Efficient to test • Not tight

  32. Oriented Bounding Box (OBB)

  33. Oriented Bounding Box (OBB) • Invariant • Less efficient to test • Tight

  34. Comparison of BVs No type of BV is optimal for all situations

  35. Desirable Properties of BVs and BVHs BVs: • Tightness • Efficient testing • Invariance • BVH: • Separation • Balanced tree ?

  36. Desirable Properties of BVs and BVHs BVs: • Tightness • Efficient testing • Invariance • BVH: • Separation • Balanced tree

  37. Construction of a BVH • Top-down construction • At each step, create the two children of a BV • Example: For OBB, split longest side at midpoint

  38. N points ai = (xi, yi,zi)T, i = 1,…, N SVD of A = (a1a2 ... aN)  A = UDVT where D = diag(s1,s2,s3) such that s1  s2  s3  0 U is a 3x3 rotation matrix that defines the principal axes of variance of the ai’s OBB’s directions The OBB is defined by max and min coordinates of the ai’s along these directions Possible improvements: use vertices of convex hull of the ai’s or dense uniform sampling of convex hull y X Y x Computation of an OBB[Gottschalk, Lin, and Manocha, 96] rotation described by matrix U

  39. Static vs. Dynamic Collision Detection Dynamic checks Static checks

  40. Usual Approach to Dynamic Checking (in PRM Planning) Discretize path at some fine resolution e Test statically each intermediate configuration < e 3 2 3 1 3 2 3 • e too large  collisions are missed • e too small  slow test of local paths

  41. PRM planningDetect collision as quickly as possible Bisection strategy Physical simulation, haptic interactionFind first collision Sequential strategy Testing Path Segmentvs. Finding First Collision

  42. e too large  collisions are missed • e too small  slow test of local paths

  43. etoo large  collisions are missed • etoo small  slow test of local paths

  44. Other Approaches to Dynamic Collision Detection Bounding-volume (BV) hierarchies Discretization issue Feature-tracking methods[Lin, Canny, 91] [Mirtich, 98] V-Clip [Cohen, Lin, Manocha, Ponamgi, 95] I-Collide [Basch, Guibas, Hershberger, 97] KDS Geometric complexity issue with highly non-convex objects Sequential strategy (first collision) that is not efficient for PRM path segments Swept-volume intersection[Cameron, 85] [Foisy, Hayward, 93] Swept-volumes are expensive to compute. Too much data. No pre-computed BV hierarchies Algebraic trajectory parameterization[Canny, 86] [Schweikard, 91] [Redon, Kheddar, Coquillard, 00] High-degree polynomials, expensive Floating-point arithmetics difficulties Sequential strategy Combination[Redon, Kheddar, Coquillard, 00] BVH + algebraic parameterization [Ehmann, Lin, 01] BVH + feature tracking Sequential strategy

  45. Idea: Cover line segment with collision free C-space neighborhoods Use distance computation instead of collision checking Exact Collision Detection with Adaptive Bisection

  46. How do you show a C-space neighborhood is collision free? Relate changes in C-space to changes in workspace When moving from (x,y,q) to (x’,y’,q’), no point traces out more than distance|x-x’| + |y-y’| + R|q-q’| Distance R

  47. q3 q2 q1 How do you show a C-space neighborhood is collision free? Relate changes in C-space to changes in workspace q = (q1,q2,q3) q’ = (q’1,q’2,q’3) dqi = q’i-qi For any q and q’ no robot point traces a path longer than: l(q,q’)= 3|dq1|+2|dq2|+|dq3|

  48. q3 q2 q1 How do you show a C-space neighborhood is collision free? Relate changes in C-space to changes in workspace d(q)= Euclidean distance between robot and obstacles (or lower bound) d(q) If l(q,q’) < d(q) + d(q’) then the straight path betweenq and q’ is collision-free

  49. q’ q {q” |l(q’,q”) < d(q’)} {q” |l(q,q”) < d(q)} l(q,q’) < d(q) + d(q’)

  50. q’ q {q” |l(q’,q”) < d(q’)} {q” |l(q,q”) < d(q)} l(q,q’)= l(q,qint) + l(qint,q’) < d(q) + d(q’) l(q,q’) < d(q) + d(q’) qint

More Related