Date post: | 20-Dec-2015 |
Category: |
Documents |
View: | 222 times |
Download: | 0 times |
Dynamic Maintenance and Self Collision Testing for Large Kinematic Chains
Lotan, Schwarzer, Halperin, Latombe
Kinematic structures
A collection of rigid bodies hinged together---motion along jointsLARGE structures:hyper-redundant robots [Burdick, Chirikjian, Rus, Yim and others],macro-molecules
The static model
n links of roughly the same sizepossibly slightly interpenetratingmany favorable properties and simple algorithms (HSR, union boundary construction), in particular, data structures for intersection queries:
O(n log n) preprocessing -> O(n) rand. O(n) space O(log n) query -> O(1)
Dynamic maintenance, self collision testing
the problem:Carry out a sequence of operations
efficiently update of joint values the query is for self collision
sample motivation: monte carlo simulation of protein folding paths
Dynamic maintenance:what’s available
dynamic spatial data structures insertions and deletions kinetic data structures [Basch, Guibas, Hershberger
97]
independent movements robot motion planning small number of degrees of freedom dynamic maintenance for kinematic struct’s link-size queries [H-Latombe-Motwani 96,Charikar-
H-Motwani 98]
Dynamic maintenance, self collision testing
the problem (reminder):Carry out a sequence of operations efficiently update of joint values the query is for self collision
n: # of links ~ # of joints
theory, worst case: rebuild spatial structure at each update
Collision testing, existing techniques
UpdatingSelf-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)
( )O N ( )O N
( )O N( )O N
( log )O N N ( )N
Self-collision testing, assumptions
a small number of joint values change from one step to the otherthe chain was self-collision free at the last step
Chain representation
A 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
Bounding Volume Hierarchy
Chain-aligned: bottom-up, along the chain Each BV encloses its two children in the hierarchyShortcuts allow to efficiently compute relative position of BVsAt each time step only BVs that contain the changed joints need to be recomputed
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
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
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
Upper bound holds for “not so tight” hierarchies like oursLower bound holds for any convex BVSlightly 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
• 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?
Upper bound
YES!