+ All Categories
Home > Documents > Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science...

Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science...

Date post: 21-Dec-2015
Category:
View: 216 times
Download: 3 times
Share this document with a friend
28
Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada John E. Lloyd
Transcript
Page 1: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Fast Implementation of Lemke’s Algorithm for

Rigid Body Contact Simulation

Computer Science Department

University of British Columbia

Vancouver, Canada

John E. Lloyd

Page 2: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Applications: mechanical simulation, animation,

haptics

Haptics requires speed (1 Khz) and accuracy

Page 3: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Extended contact can result in many contact

points

Page 4: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

* = number of contacts, = number of bodies

• 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

Page 5: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

d21

n1

d11

fx

Problem formulation

n2

Page 6: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Constraints

ni

di4

di3

di1

di5 di6

di2

Non-penetration:

Friction opposite velocity:

Friction cone:

Page 7: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Results in a Linear Complementarity Problem

(LCP):

Page 8: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Solving Contact LCPs

• 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?

Page 9: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Pivoting: exchange subsets of z and w

If , then we have a solution

Generally, one variable exchange per pivot

Page 10: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

• Involves solving

• Complexity , and typically pivots

• Hence total expected complexity

Once per pivot: compute

Page 11: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Peg in hole test case

Page 12: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

1 Solve more efficiently

2 Reduce the number of pivots

How to improve performance?

Page 13: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

1 Solving

can be partitioned into:*

Eliminate

*Ignoring Lemke covering vector in this discussion

Page 14: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

This reduces the system to

Eliminate

Page 15: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

• Reduced matrix has size

• Hence per-pivot computation is

• So total expected complexity

This yields the final system

Page 16: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

2 Reducing the number of pivots

Observation: Only need to compute and for active contacts; i.e,those for which

Page 17: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

So start with a frictionless LCP

and expand it as become active:

Page 18: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Ideally, final system rank is

• Hence pivots

• So total expected complexity

Page 19: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Results: peg in hole

Standard

Structural

Reduced

Page 20: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Results: sample contacts

Standard

Structural

Reduced

Page 21: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Results: block stack

Standard

Structural

Reduced

Page 22: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Results

Page 23: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

• 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

Page 24: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.
Page 25: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Future Work

• Exploit temporal coherence (give solver an advanced starting point)

• More efficient solution for reduced equation

• Robust pivot selection (minimum ratio test)

Page 26: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

LCP matrix can be quite large …

for 4 friction directions, size

Page 27: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Larger number of needed for accurate friction

computation

v

f

Page 28: Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation Computer Science Department University of British Columbia Vancouver, Canada.

Closeup: sample contacts


Recommended