presentation by: eric ng cs326a: paper review spring 2003
DESCRIPTION
“Adaptive Dynamic Collision Checking for Single and Multiple Articulated Robots in Complex Environments” Schwarzer, Saha, and Latombe. Presentation by: Eric Ng CS326A: Paper Review Spring 2003. Static Collision Checking. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/1.jpg)
“Adaptive Dynamic Collision Checking for Single and Multiple Articulated Robots in
Complex Environments”Schwarzer, Saha, and Latombe
Presentation by: Eric NgCS326A: Paper Review
Spring 2003
![Page 2: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/2.jpg)
Static Collision Checking
• Static collision checking tests a single configuration of objects for overlaps.
Aj
Ai(q)
![Page 3: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/3.jpg)
Dynamic Collision Checking
• Dynamic collision checking ensures that all configurations between A and B are collision-free.
• Fixed Resolution checking is a sequence of static BVH checks along path of motion, divided into length segments.
is user defined and is function of accuracy and calculation time.
![Page 4: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/4.jpg)
Dynamic Collision Checking
• Dynamic collision checking ensures that all configurations between A and B are collision-free.
• Fixed Resolution checking is a sequence of static BVH checks along path of motion, divided into length segments.
is user defined and is function of accuracy and calculation time.
A
B
![Page 5: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/5.jpg)
Fixed Resolution Collision Checker
• Dynamic collision checking ensures that all configurations between A and B are collision-free.
• Fixed Resolution checking is a sequence of static BVH checks along path of motion, divided into length segments.
is user defined and is function of accuracy and calculation time.
A
B
![Page 6: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/6.jpg)
Fixed Resolution Collision Checker
• Dynamic collision checking ensures that all configurations between A and B are collision-free.
• Fixed Resolution checking is a sequence of static BVH checks along path of motion, divided into length segments.
is user defined and is function of accuracy and calculation time.
A
B
![Page 7: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/7.jpg)
Fixed Resolution Collision Checker
• Dynamic collision checking ensures that all configurations between A and B are collision-free.
• Fixed Resolution checking is a sequence of static BVH checks along path of motion, divided into length segments.
is user defined and is function of accuracy and calculation time.
A
B
![Page 8: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/8.jpg)
Drawbacks of Fixed Resolution Checking(1) determines accuracy. If isn’t fine enough,
collision at a point between checks will not be detected.
(2) Refining resolution improves accuracy, but calculation becomes more expensive.
q1
q2
q1
q2
Undetectedobstacle
![Page 9: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/9.jpg)
Why Adaptive Dynamic Checking?
Adaptive Dynamic Checking offers:
(1) Ability to never miss collisions.
(2) And not costing much more than classical collision checking.
(3) Has one drawback: requires calculation of distances between objects, not just collision checking => can be computationally expensive. (Ameliorated with optimizations!)
![Page 10: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/10.jpg)
Basis for Adaptive Dynamic Collision Checking
• The robot and obstacles are defined by: A1,…,An, whose placement in workspace is q=(q1,…,qn)
AjAi(q)
![Page 11: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/11.jpg)
Basis for Adaptive Dynamic Collision Checking
• nij(q) is lower bound distance between Ai and Aj
(q)
AjAi(q)
![Page 12: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/12.jpg)
Basis for Adaptive Dynamic Collision Checking
• nij(q) is lower bound distance between Ai and Aj
(q)
AjAi(q) Ai(q1)
i(q1,q2)
Aj(q2)
i(q1,q2) is upper bound path length of Ai from config 1 to 2.
![Page 13: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/13.jpg)
Basis for Adaptive Dynamic Collision Checking
Ai
qa qb
i (qa,qb)
qb
qa
j (qa,qb)
Aj
If i (qa,qb) + j (qa,qb) < nij (qa) + nij (qb),
then there exists no collisions between qa and qb
nij (qa)
nij (qb)
Lemma
![Page 14: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/14.jpg)
What if Inequality Fails?• It does not mean there is a collision between “a”
and “b”!!
• Inequality only determines non-collisions.
• Collision is defined by zero distance between Ai and Aj, ie: nij=0.
Ai
qaqb
qbqa
Aj
nij(qb)=0
![Page 15: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/15.jpg)
Example of Adaptive Bisection of Paths
• Run Inequality test on path segment.
[PASS] = no collisions between qa and qb
qa qb
![Page 16: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/16.jpg)
Example of Adaptive Bisection of Paths
• Run Inequality test on path segment.
[PASS] = no collisions between qa and qb
[FAIL] = check if robot makes collision at qmid
If qmid doesn’t have a collision, recursively test both sub-segments until collision is found, or both sub-segments pass inequality test ==> never misses collision!
qa qbqmid
Run Inequality Test
![Page 17: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/17.jpg)
Example of Adaptive Bisection of Paths
• Run Inequality test on path segment.
[PASS] = no collisions between qa and qb
[FAIL] = check if robot makes collision at qmid
If qmid doesn’t have a collision, recursively test both sub-segments until collision is found, or both sub-segments pass inequality test ==> never misses collision!
qa qbqmid
Run Inequality Test
![Page 18: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/18.jpg)
Calculating the terms in the Inequality
i (qa,qb) + j (qa,qb) < nij (qa) + nij (qb)
• But how do we get nij and i (qa,qb)?
Ai(q1)
i(q1,q2)
Aj(q2)
(q)
AjAi(q)
![Page 19: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/19.jpg)
Computing Lower Bound Dist. Betw. Objects: nij
Algorithm GREEDY-DIST(Bi, Bj) = distance(Object i,Object j)
– If > 0, then return – Else, we need to investigate further
Object i
Half,i1
Leaf,i1 Leaf,i2
Half,i2
Object j
Half,j1
Leaf,j1 Leaf,j2
Half,j2
![Page 20: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/20.jpg)
Computing Lower Bound Dist. Betw. Objects: nij
Algorithm GREEDY-DIST(Bi, Bj)
Object i
Half,i1
Leaf,i1 Leaf,i2
Half,i2
Object j
Half,j1
Leaf,j1 Leaf,j2
Half,j2
• Test both Half,j1 and Half,j2 against Object i – Dist1 = Greedy-Dist(Object I, Half,j1)– Dist2 = Greedy-Dist(Object I, Half,j2)
• Dist2 > 0 (stop in that search path)
• Dist1 !> 0 (need to continue further)
= 0 > 0 = 0
![Page 21: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/21.jpg)
Computing Lower Bound Dist. Betw. Objects: nij
Algorithm GREEDY-DIST(Bi, Bj)
Object i
Half,i1
Leaf,i1 Leaf,i2
Half,i2
Object j
Half,j1
Leaf,j1 Leaf,j2
Half,j2
= 0 > 0 = 0
• Test Half,j1 against Half,i1 and Half,i2– Dist1 = Greedy-Dist(Half,j1, Half,i1)– Dist2 = Greedy-Dist(Half,j1,Half,i2)
• Both Dist1 and Dist 2 > 0 => DONE!
• Return min(dist1, dist2) as nij
![Page 22: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/22.jpg)
Example of Bounding Motion Calculation: i
q4
q2
q1
q3
A1
A2
A3
A4
D: dist by q3
L: length of eachrigid body
• 4 d.o.f. robot• 3 rotational and 1 prismatic joint• D is the max distance travelled by
Q3• L is the length of each rigid body
![Page 23: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/23.jpg)
Example of Bounding Motion Calculation: i
q1A1
1(qa ,qb ) L qa,1 qb,1
2(qa ,qb ) 2L qa,1 qb,1 L qa,2 qb,2
3(qa ,qb ) (2L D)qa,1 qb,1
(L D)qa,2 qb,2 qa,3 qb,3
4 (qa ,qb ) (3L D)qa,1 qb,1
(2L D)qa,2 qb,2 qa,3 qb,3
L qa,4 qb,4
Upper Bound Path LengthRigid Body
A1
![Page 24: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/24.jpg)
Example of Bounding Motion Calculation: i
q2
q1A1
A2
1(qa ,qb ) L qa,1 qb,1
2(qa ,qb ) 2L qa,1 qb,1 L qa,2 qb,2
3(qa ,qb ) (2L D)qa,1 qb,1
(L D)qa,2 qb,2 qa,3 qb,3
4 (qa ,qb ) (3L D)qa,1 qb,1
(2L D)qa,2 qb,2 qa,3 qb,3
L qa,4 qb,4
Upper Bound Path LengthRigid Body
A1
A2
A3
A4
![Page 25: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/25.jpg)
Example of Bounding Motion Calculation: i
q2
q1
q3
A1
A2
A3
1(qa ,qb ) L qa,1 qb,1
2(qa ,qb ) 2L qa,1 qb,1 L qa,2 qb,2
3(qa ,qb ) (2L D)qa,1 qb,1
(L D)qa,2 qb,2 qa,3 qb,3
4 (qa ,qb ) (3L D)qa,1 qb,1
(2L D)qa,2 qb,2 qa,3 qb,3
L qa,4 qb,4
Upper Bound Path LengthRigid Body
A1
A2
A3
A4
![Page 26: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/26.jpg)
Example of Bounding Motion Calculation: i
q4
q2
q1
q3
A1
A2
A3
A4
1(qa ,qb ) L qa,1 qb,1
2(qa ,qb ) 2L qa,1 qb,1 L qa,2 qb,2
3(qa ,qb ) (2L D)qa,1 qb,1
(L D)qa,2 qb,2 qa,3 qb,3
4 (qa ,qb ) (3L D)qa,1 qb,1
(2L D)qa,2 qb,2 qa,3 qb,3
L qa,4 qb,4
Upper Bound Path LengthRigid Body
A1
A2
A3
A4
![Page 27: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/27.jpg)
Conclusions
• Adaptive Bisection Collision Checker is an efficient and robust way to determine if a proposed path is collision-free.
• Even though it is efficient, there is room for improvement. For example, path lengths are overly conservatively computed.
• Bisection method may not be most efficient solution when obstacle is always closeby the robot.
![Page 28: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/28.jpg)
Optimizing the Process
• Let Q be the priority queue containing elements objects being checked.
• If the path segment is collision-free, then the ordering of Q has no impact on running time. But for a colliding path, the calculation can complete as soon as collision is found => ordering matters.
• Since longer path lengths have higher probability of collision, Q is presorted by decreasing path lengths to potentially find collisions earlier.
![Page 29: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/29.jpg)
Comparative Experiment
Robot: 2,502 trianglesObstacles: 432 Triangles
SBL 17 secA-SBL 4.8 sec
SBL: PRM planner (single-query, bi-directional, lazy in cc) with fixed-discretization collision checkerA-SBL: Same planner, with new collision checkerExperiment: • Run SBL 10 times on same planning problem with some resolution • If a collision has been missed, reduce and repeat• If no collision has been missed, return average planning time• Run A-SBL 10 times and return average planning time
Slide courtesy Latombe,2003
![Page 30: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/30.jpg)
More Results
Robot: 2,502 trianglesObstacles: 432 Triangles
SBL 17 secA-SBL 4.8 sec
Robot: 2,991 trianglesObstacles: 74,681 triangles
SBL 1.20 secA-SBL 0.81 sec
Robot: 2,991 trianglesObstacles: 432 Triangles
SBL 83 secA-SBL 44 sec
Robot: 2,502 trianglesObstacles: 34,171 triangles
SBL 3.2 secA-SBL 2.1 sec
Robots: 6 x 2,991 trianglesObstacles: 19,668 triangles
SBL 85 secA-SBL 52 sec
![Page 31: Presentation by: Eric Ng CS326A: Paper Review Spring 2003](https://reader035.vdocument.in/reader035/viewer/2022081519/56813498550346895d9b8c4c/html5/thumbnails/31.jpg)
Summary
• Adaptive bisection collision checker is a reliable and effective way to test straight line segments.
• Advantages over fixed resolution checker:– Never miss a collision– Eliminates need for determining resolution factor:
• Determines whether subsections (“i” and “j”) of objects collide when moving from configuration “a” to “b”
i (qa,qb) + j (qa,qb) < nij (qa) + nij (qb), does not collide– Requires lower bound distances between two bounding volumes
(BVs) i & j at configs “a” & “b”– Requires upper bound distances in path lengths of objects i & j from
config “a” to “b”• Inequality is performed on BVH binary tree until collision is found, or
tree is fully traversed…leading to no collisions found