Efficient Maintenance and Self-Collision Testing for Kinematic Chains

28
Efficient Maintenance and Self-Collision Testing for Kinematic Chains Itay Lotan Fabian Schwarzer Dan Halperin Jean-Claude Latombe

description

Efficient Maintenance and Self-Collision Testing for Kinematic Chains. Itay Lotan Fabian Schwarzer Dan Halperin Jean-Claude Latombe. Motivation. Robotics: hyper-redundant snake-like robots. (Mark Yim). (Joel Burdick). Motivation – cont.. - PowerPoint PPT Presentation

Transcript of Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Page 1: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Itay LotanFabian Schwarzer

Dan HalperinJean-Claude Latombe

Page 2: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Motivation

Robotics: hyper-redundant snake-like robots

(Mark Yim)(Joel Burdick)

Page 3: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Motivation – cont.

Molecular Simulation – exploring the conformational space of polypeptides

(4PTI backbone)

Page 4: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Motivation – cont.

Both types of applications require: Efficient updating of the chain after

changes to its DOFs Efficient detection of self-collisions

caused by these changes

Page 5: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Outline of Talk

Description of the Problem Previous approaches Our chain representation Detecting self-collisions Experimental results Analysis and theoretical results Conclusions

Page 6: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Outline of Talk

Description of the Problem Previous approaches The chain representation Detecting self-collisions Experimental results Analysis and theoretical results Conclusions

Page 7: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Problem Description

Update the chain at each time-step to reflect the changes

Assuming no self-collisions at previous time-step, find any/all self-collisions caused by latest changes

Given a chain of N links which deforms over time through changes to its DOFs:

Page 8: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Outline of Talk

Description of the Problem Previous approaches The chain representation Detecting self-collisions Experimental results Analysis and theoretical results Conclusions

Page 9: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

I-COLLIDE (Cohen et al ’95)

Project objects onto each axis

Sort intervals Find pairs of

intervals that overlap on all axes

Reuse previous order to speed up sorting at next time-step O(N) update time

O(N) detection time

Page 10: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Grid (e.g. Halperin and Overmars ’98)

Insert objects into grid one at a time

Check inserted objects for collisions with objects in neighboring cells

O(N) update time

O(N) detection time

Page 11: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Bounding Volume Hierarchies

Spheres (Quinlan ’94)

OBBs (Gottschalk et al ’96)

AABBs (van den Bergen ’97)

k-DOPs (Klosowski et al ’98)

Build a BV hierarchy Test the hierarchy

against itself to find collisions

At each time step update the BVs

O(N logN) update time

Ω(N) detection time

Page 12: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Previous Approaches - Drawbacks In a kinematic chain – local changes

have global effects. One change may cause O(N) links to move

When few changes are applied to the

chain, large pieces of it remain rigid.

Page 13: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Maintenance of Kinematic Structures (Halperin et al ’96)

Algorithm for dynamic maintenance of kinematic chains

Does not support self-collision testing

update time O N

Page 14: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Outline of Talk

Description of the Problem Previous approaches The chain representation Detecting self-collisions Experimental results Analysis and theoretical results Conclusions

Page 15: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Chain RepresentationA Sequence of reference frames connected by rigid-body transformations

TT(R,t)

TT(R,t)

TT(R,t)

TT(R,t)TT(R,t)

TT(R,t)

TT(R,t)

TT(R,t) TT(R,t) TT(R,t)

TT(R,t)

Hierarchy of shortcut transformations

Page 16: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Bounding Volume Hierarchy Chain-aligned: bottom-up, along the chain Each BV encloses its two children in the

hierarchy Each BV is stored in the reference frame of its

left-most link. At each time step only BVs that contain the

changed joints need to be recomputed

Page 17: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Outline of Talk

Description of the Problem Previous approaches The chain representation Detecting self-collisions Experimental results Analysis and theoretical results Conclusions

Page 18: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Self-Collision Detection

Test the hierarchy against itself to find collisions. But …

Do not test inside BVs that were not updated after the last set of changes

Benefits: Many unnecessary overlap tests are

avoided No leaf node tested against itself.

Page 19: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Self-Collision: Example

Page 20: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Outline of Talk

Previous approaches Description of the Problem The chain representation Detecting self-collisions Experimental results Analysis and theoretical results Conclusions

Page 21: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Experimental Results We tested our algorithm (dubbed

ChainTree) against three others: Grid – Collisions detected by indexing

into a 3D grid using a hash table. 1-OBBTree – An OBB hierarchy is

created from scratch after each change and then tested against itself for collisions.

K-OBBTree – After each move an OBBTree is built for each rigid piece of the chain. Each pair of OBBTrees is tested for collisions.

Page 22: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Results – Compact Chain

Page 23: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Results – Protein Backbones

Page 24: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Outline of Talk

Previous approaches Description of the Problem The chain representation Detecting self-collisions Experimental results Analysis and theoretical results Conclusions

Page 25: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Analysis – Updating

For each joint change: O(log N) shortcut transformations

need to be recomputed O(log N) BVs need to be recomputed

For k simultaneous changes O(k log N) time, but never more than O(N)

Previous BV hierarchies required O(N log N) updating time

Page 26: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Analysis – Collision Detection

This bound is very stable - holds for “not so tight” hierarchies like ours

Lower bound holds for any convex BV. Slightly worse than Θ(N) we show for a

regular hierarchy If topology of regular hierarchy is not

updated, can deteriorate to Θ(N2)

43( )N in the worst case

Page 27: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Outline of Talk

Previous approaches Description of the Problem The chain representation Detecting self-collisions Analysis and theoretical results Experimental results Conclusions

Page 28: Efficient Maintenance and Self-Collision Testing for Kinematic Chains

Conclusions

We presented an algorithm for efficient maintenance and self-collision detection of kinematic chains

update time and detection time in the worst case

It is very fast in practice Most efficient when k << N

( log )O k N43( )N