efficient maintenance and self-collision testing for kinematic chains

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

Upload: selah

Post on 30-Jan-2016

18 views

Category:

Documents


0 download

DESCRIPTION

Efficient Maintenance and Self-Collision Testing for Kinematic Chains. Itay Lotan Fabian Schwarzer Dan Halperin Jean-Claude Latombe. Motivation. Robotics: Snake-like robots Biology: Motion of macro-molecules. protein backbone. (Mark Yim). Properties of Kinematic Chains. - PowerPoint PPT Presentation

TRANSCRIPT

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: Snake-like robots Biology: Motion of macro-molecules

(Mark Yim)

protein backbone

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

Properties of Kinematic Chains 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 4: 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 self-collisions caused by latest changes

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

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

Existing TechniquesUpdating Self-

collisions

I-COLLIDE (Cohen et al ’95)

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

BV Hierarchies (Quinlan ’94, Gottschalk et al ’96, van den Bergen ’97, Klosowski et al ’98)

Dynamic Kinematic Structures (Halperin et al ’96)

( )O N ( )O N

( )O N( )O N

O N

( log )O N N ( )N

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

Our Algorithm

updating per time-step worst-case self-collision

detection per time-step. Much faster in practice

Novel chain representation based on: Transformations hierarchy to approximate

the kinematics at different resolutions OBB hierarchy to approximate the

geometry at different resolutions

( log )O k N43( )N

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

Chain RepresentationA Sequence of reference frames (links) connected by rigid-body transformations (joints)

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 8: 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 Shortcuts allow to efficiently compute relative

position of BVs At each time step only BVs that contain the

changed joints need to be recomputed

Page 9: 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 10: Efficient Maintenance and  Self-Collision Testing for Kinematic Chains

Self-Collision: Example

Page 11: 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 change an OBB hierarchy is built for each rigid piece of the chain. Each pair of hierarchies is tested for collisions

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

Results: Extended Chain (1)

Single Joint Change

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

Results: Extended Chain (2)

100 Joint Changes

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

Protein Backbones

1SHG (171 atoms)

1B4E(969 atoms)

1LOX (1941 atoms)

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

Results: Protein Backbones (1)

Single Joint Change

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

Results: Protein Backbones (2)

10 Joint Changes

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

Analysis – Updating

For each joint change: shortcut transformations

need to be recomputed BVs need to be recomputed

For k simultaneous changes time, but never more than

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

(log )O N

(log )O N( log )O k N( )O N

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

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

Lower bound is stable for any convex BV

Slightly worse than bound we prove for a regular hierarchy

If topology of regular hierarchy is not updated, can deteriorate to

in the worst case

Analysis – Collision Detection

43( )N

( )N

2( )N

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

• OBBs are larger than tight bounding spheres by a constant factor at each level

• This factor is fixed for all levels of the hierarchy

Will the bound hold for a “not so tight” hierarchy like ours?

Proof of Upper Bound

YES!

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

Proof of Lower Bound 3d links form a

unit d/8 units shifted by

1 along X and -Y form a layer

d/8 layers shifted by 1 along –Y and Z form a chain

[chain]

[layer]

Convex hull of all units overlaps!

P=[2(d-1),d-1,(d-1)/4]

Page 21: 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

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

Current Work

Applying the algorithm to Monte-Carlo simulation of proteins Allow tree-like structure with short

branches to model side-chains Replace collision detection with

distance computation Efficiently compute internal energy by

reusing unchanged terms