260 likes | 357 Views
Exact Collision Checking of Robot Paths. Fabian Schwarzer Mitul Saha Jean-Claude Latombe Computer Science Department Stanford University. Motivation (1). One tenet of PRM planning is that sampled configurations and connections can be efficiently tested for collision.
E N D
Exact Collision Checking of Robot Paths Fabian Schwarzer Mitul SahaJean-Claude Latombe Computer Science Department Stanford University
Motivation (1) One tenet of PRM planning is that sampled configurations and connections can be efficiently tested for collision.
[Quinlan, 94; Gottschalk, Lin, Manocha, 96] Motivation (2) Static collision tests (for sampled configurations) are done efficiently using pre-computed bounding volumes (BV) hierarchies
e Motivation (3) Butdynamic collision tests (for connections) using BV hierarchies are usually approximate. • e too large collisions are missed • e too small slow test of local paths
e Motivation (3) Butdynamic collision tests (for connections) using BV hierarchies are usually approximate.
Previous Approaches to Dynamic Collision Testing • 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 • Swept-volume intersection[Cameron, 85] [Foisy, Hayward, 93] Swept-volumes are expensive to compute. Too much data.
Our Approach • Problem:Given two configurations, test if the straight path between them is collision-free, or not. • Ideas: • Relate configuration changes to path lengths in workspace • Use distance computation rather than pure collision checking
q3 q2 q1 • Ideas: • Relate configuration changes to path lengths in workspace • Use distance computation rather than pure collision checking 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|
q3 q2 q1 • Ideas: • Relate configuration changes to path lengths in workspace • Use distance computation rather than pure collision checking h(q)= Euclidean distance between robot and obstacles (or lower bound) h(q) If l(q,q’) < h(q) + h(q’) then the straight path betweenq and q’ is collision-free
q’ q {q” |l(q’,q”) < h(q’)} {q” |l(q,q”) < h(q)} • Ideas: • Relate configuration changes to path lengths in workspace • Use distance computation rather than pure collision checking l(q,q’) < h(q) + h(q’)
Ideas: • Relate configuration changes to path lengths in workspace • Use distance computation rather than pure collision checking l(q,q’) >h(q) + h(q’) Bisection q’ q {q” |l(q’,q”) < h(q’)} {q” |l(q,q”) < h(q)}
Greedy Distance Computation • Use BV hierarchy + same recursion as for pure collision checking • But compute distance between BVs instead of testing BV overlap • BVs are RSSs • returns lower bounds on distance that are often much larger than ½ actual distances • small factor slower than a pure collision checking • much faster than BV-based exact or approximate distance computation
q3 q2 q1 Generalization • Robot(s) and static obstacles treated as collection of rigid bodies A1, …, An. • li(q,q’): upper bound on length of curve segment traced by any point on Ai when robot system is linearly interpolated between q and q’ l1(q,q’) = |dq1| l2(q,q’) = 2|dq1|+|dq2| l3(q,q’) = 3|dq1|+2|dq2|+|dq3|
Generalization • Robot(s) and static obstacles treated as collection of rigid bodies A1, …, An. • li(q,q’): upper bound on length of curve segment traced by any point on Ai when robot system is linearly interpolated between q and q’ • If li(q,q’) + lj(q,q’) < hij(q) + hij(q’)then Ai and Aj do not collide between q and q’
Generalized Bisection Method Each pair of bodies is checked independently of the others priority queue Q of elements [qa,qb]ij Initially, Q consists of [q,q’]ij for all pairs of bodies Ai and Aj that need to be tested. • Until Q is not empty do: • [qa,qb]ij remove-first(Q) • If li(qa,qb) + lj(qa,qb) hij(qa) + hij(qb) then • qmid (qa+qb)/2 • If hij(qmid) = 0 then return collision • Else insert [qa,qmid]ij and [qmid,qb]ij into Q • Return no collision
Heuristic Ordering Q • Goal: Discover collision quicker if there is one. • Sort Q by decreasing values of:[li(qa,qb) + lj(qa,qb)] – [hij(qa) + hij(qb)] • Possible extension to multi-segment paths(very useful with lazy collision-checking PRM)
Segment Covering Strategies Allows caching of forward kinematic results
Two Arms and Three Rings Two 20-dof linkages, with 320 triangles eachThree rings with 6,300 triangles each
Robot in a Cage Robot: 2,991 trianglesCage: 432 triangles
Spot Welding Robot: 2,991 triangles Obstacles: 74,681 triangles
Comparative Experiment • SBL: PRM planner (single-query, bi-directional, lazy in cc) with fixed-discretization collision checker • A-SBL: Same planner, with new collision checkerExperiment: • Run SBL 10 times on same planning problem with some resolution e • If a collision has been missed, reduce e and repeat • If no collision has been missed, return average planning time • Run A-SBL 10 times and return average planning time Robot: 2,502 triangles Obstacles: 432 Triangles SBL 17 sec A-SBL 4.8 sec
Some Results Robot: 2,502 triangles Obstacles: 432 Triangles SBL 17 sec A-SBL 4.8 sec Robot: 2,991 triangles Obstacles: 432 Triangles SBL 83 sec A-SBL 44 sec Robot: 2,991 trianglesObstacles: 74,681 triangles SBL 1.20 sec A-SBL 0.81 sec Robot: 2,502 trianglesObstacles: 34,171 triangles SBL 3.2 sec A-SBL 2.1 sec Robots: 6 x 2,991 trianglesObstacles: 19,668 triangles SBL 85 sec A-SBL 52 sec
Conclusion • New collision checker suited for PRM planners: • Faster than fixed-resolution checkers • Fully reliable • Future work: • Automatic computation of tight upper bounds on path lengths in w-space from robot kinematics • Better treatment of pairs of moving bodies (e.g., bodies moving along parallel paths)
Acknowledgements • This research was partially funded by grants from General Motors and ABB • Additional geometric models were provided by PSA (Peugeot-Citroen)
Greedy Computation of hij(q) Idea: BV hierarchy + same recursion as for pure collision checking, but compute distance between boxes ( BVs are RSSs) • Algorithm GREEDY-DIST(Ba,Bb) • h distance(Ba,Bb) • If Ba and Bb are both triangles then return h • If h > 0 then return h • If Ba is “bigger” than Bb then switch Ba and Bb • a GREEDY-DIST(Ba,Bb1) • If a > 0 then • b GREEDY-DIST(Ba,Bb2) • If b > 0 then return min{a,b} • Return 0 Ba Bb hij(q) • GREEDY-DIST • is small factor slower than a pure collision checker • is much faster than BV-based exact or approximate distance computation • returns lower-bounds that are often much larger than ½ actual distances