280 likes | 500 Views
Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation. John E. Lloyd. Computer Science Department University of British Columbia Vancouver, Canada. Applications: mechanical simulation, animation, haptics. Haptics requires speed (1 Khz) and accuracy.
E N D
Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation John E. Lloyd Computer Science Department University of British Columbia Vancouver, Canada
Applications: mechanical simulation, animation, haptics Haptics requires speed (1 Khz) and accuracy
Use problem structure to speed up solution Reduce complexity to nearly * complexity for fixed number of bodies Contributions Most exact solution method is Lemke’s algorithm with expected complexity *=number of contacts, = number of bodies
f x d d n n 21 11 2 1 Problem formulation
n i Non-penetration: d d d d d d i1 i4 i3 i5 i6 i2 Friction opposite velocity: Friction cone: Constraints
Iterative techniques; includes impulse methods [Mirtich & Canny ’95, Guendelman ’03] => Accuracy, convergence? Pivoting methods: Lemke’s algorithm [Anitescu & Potra ’97, Stewart & Trinkle ’96] => Speed, robustness? Solving Contact LCPs
If , then we have a solution Pivoting: exchange subsets of z and w Generally, one variable exchange per pivot
Once per pivot: compute Involves solving Complexity , and typically pivots Hence total expected complexity
1 Solve more efficiently 2 Reduce the number of pivots How to improve performance?
can be partitioned into:* Eliminate 1 Solving *Ignoring Lemke covering vector in this discussion
Eliminate This reduces the system to
This yields the final system Reduced matrix has size Hence per-pivot computation is So total expected complexity
Observation: Only need to compute and for active contacts; i.e, those for which 2 Reducing the number of pivots
and expand it as become active: So start with a frictionless LCP
Hence pivots So total expected complexity Ideally, final system rank is
Results: peg in hole Standard Structural Reduced
Results: sample contacts Standard Structural Reduced
Results: block stack Standard Structural Reduced
Fast: exploit problem structure Better complexity: nearly for fixed number of bodies Efficient: no need to compute More robust: smaller system to solve each pivot Conclusions: Improved pivoting method for contact simulation http://www.cs.ubc.ca/~lloyd/fastContact.html
Exploit temporal coherence (give solver an advanced starting point) More efficient solution for reduced equation Robust pivot selection (minimum ratio test) Future Work
for 4 friction directions, size LCP matrix can be quite large …
Larger number of needed for accurate friction computation f v