Handling of Resting Contact  Global vs. Local Methods – Constraint-based vs. Impulse-based Colliding Contacts  Resting Contacts  Force application  Friction  UNC Chapel Hill M.

Download Report

Transcript Handling of Resting Contact  Global vs. Local Methods – Constraint-based vs. Impulse-based Colliding Contacts  Resting Contacts  Force application  Friction  UNC Chapel Hill M.

Handling of Resting Contact

Global vs. Local Methods
– Constraint-based vs. Impulse-based
Colliding Contacts
 Resting Contacts
 Force application
 Friction

UNC Chapel Hill
M. C. Lin
Impulse vs. Constraint

Impulse-based dynamics (local)
– Faster
– Simpler
– No explicit contact constraints

Constraint-based dynamics (global)
– Must declare each contact to be a resting
contact or a colliding contact
UNC Chapel Hill
M. C. Lin
Impulse vs. Constraint

Impulse-based dynamics (local)

Constraint-based dynamics (global)
UNC Chapel Hill
M. C. Lin
Impulse vs. Constraint
UNC Chapel Hill
M. C. Lin
Resting Contact Response
When vrel ~= 0 -- have resting contact
 All resting contact forces must be
computed and applied together
because they can influence one
another

UNC Chapel Hill
M. C. Lin
Resting Contact Response
UNC Chapel Hill
M. C. Lin
Resting Contact Response

The forces at each contact must
satisfy three criteria
– Prevent inter-penetration: di (t 0 )  0
– Repulsive -- we do not want the objects
to be glued together: fi  0
– Should become zero when the bodies
start to separate: f d (t )  0
i i

0
To implement hinges and pin joints:
di (t 0 )  0
UNC Chapel Hill
M. C. Lin
Resting Contact Response

We can formulate using LCP:
UNC Chapel Hill
M. C. Lin
Resting Contact Response

Need to solve a quadratic program to
solve for the fi’s
– A is symmetric positive semi-definite
(PSD) making the solution practically
possible

There is an iterative method to solve
for without using a quadratic
program [3]
UNC Chapel Hill
M. C. Lin
Global / Constraint-Based:
Apply_BB_Forces()
0
1
2
3
4
5
6
7
8
for each pair of bodies (A,B) do
if Distance(A,B) <  then
if Relative_Normal_Velocity(A,B) < - then
Cs = Contacts(A,B);
Apply_Impulses(A,B,Cs);
else if Relative_Normal_Velocity(A,B) <  then
Flag_Pair(A,B);
Solve_For_Forces(flagged pairs);
Apply_Forces(flagged pairs);
UNC Chapel Hill
M. C. Lin
Local / Impluse-Based:
Apply_BB_Forces()
0 for each pair of bodies (A,B) do
1 if Distance(A,B) <  then
2
if Relative_Normal_Velocity(A,B) < - then
3
Cs = Contacts(A,B);
4
Apply_Impulses(A,B,Cs);
5
else if Relative_Normal_Velocity(A,B) <  then
6
Compute_Restitution(A,B);
7
Cs = Contacts(A,B);
8
Apply_Impulses(A,B,Cs);
UNC Chapel Hill
M. C. Lin
Algorithm Overview
0 Initialize();
1 for t = 0; t < tf; t += h do
2 Read_State_From_Bodies(S);
3 Compute_Time_Step(S,t,h);
4 Compute_New_Body_States(S,t,h);
5 Write_State_To_Bodies(S);
6 Zero_Forces();
7 Apply_Env_Forces();
8 Apply_BB_Forces();
UNC Chapel Hill
M. C. Lin
Global / Constraint-Based:
Apply_BB_Forces()
0 for each pair of bodies (A,B) do
1 if Distance(A,B) <  then
2
if Relative_Normal_Velocity(A,B) < - then
// Colliding Contact
3
Cs = Contacts(A,B);
4
Apply_Impulses(A,B,Cs);
5
else if Relative_Normal_Velocity(A,B) <  then
// Resting Contact
6
Flag_Pair(A,B);
7 Solve_For_Forces(flagged pairs);
8 Apply_Forces(flagged pairs);
UNC Chapel Hill
M. C. Lin
Local / Impulse-Based:
Apply_BB_Forces()
0 for each pair of bodies (A,B) do
1 if Distance(A,B) <  then
2
if Relative_Normal_Velocity(A,B) < - then
// Normal collision
3
Cs = Contacts(A,B);
4
Apply_Impulses(A,B,Cs);
5
else if Relative_Normal_Velocity(A,B) <  then
// Micro-collision
6
Compute_Restitution(A,B);
7
Cs = Contacts(A,B);
8
Apply_Impulses(A,B,Cs);
UNC Chapel Hill
M. C. Lin
Compute_Restitution(A,B)

є = f( Distance(A,B) )
UNC Chapel Hill
M. C. Lin
Frictional Forces Extension

Constraint-based dynamics
– Reformulate constraints and solve
– No more on this here

Impulse-based dynamics
– Must not add energy to the system in the
presence of friction so we have to
reformulate the impulse to be applied
UNC Chapel Hill
M. C. Lin
Collision Coordinate System

UNC Chapel Hill
p is the
applied
impulse.
We use j
because P
is for linear
momentum
M. C. Lin
Impulse Reformulation

When two real bodies collide there is a
period of deformation during which elastic
energy is stored in the bodies followed by
a period of restitution during which some
of this energy is returned as kinetic
energy and the bodies rebound of each
other.
UNC Chapel Hill
M. C. Lin
Impulse Reformulation


The collision is instantaneous but we can
assume that it occurs over a very small
period of time: 0  tmc  tf.
tmc is the time of maximum compression
uz is the relative
normal velocity.
We used vrel
before. From
now on we will
use vz.
UNC Chapel Hill
M. C. Lin
Impulse Reformulation


UNC Chapel Hill
pz is the
impulse
magnitude in
the normal
direction. We
used j before.
From now on
we will use jz.
Wz is the work
done in the
normal
direction.
M. C. Lin
Impulse Reformulation
v-=v(0), v0=v(tmc), v+=v(tf), vrel=vz
 Newton’s Empirical Impact Law:v z  εv z
 Poisson’s Hypothesis: jz  j0z  εj0z
jz  (1 ε)j0z
 Stronge’s Hypothesis: Wz  Wz0  ε 2 Wz0
Wz  (1 ε 2 )Wz0

– Energy of the bodies does not increase
when friction present
UNC Chapel Hill
M. C. Lin
Friction Formulae

Assume the Coulomb friction law:
– At some instant during a collision between
bodies 1 and 2, let v be the contact point
velocity of body 1 relative to the contact
point velocity of body 2. Let vt be the
tangential component of v and let vˆ t be a
unit vector in the direction of vt. Let fz and
ft be the normal and tangential (frictional)
components of force exerted by body 2 on
body 1, respectively.
UNC Chapel Hill
M. C. Lin
Friction Formulae

Sliding (dynamic) friction
v t  0  ft  μ fn vˆ t

Dry (static) friction
v t  0  ft  μ fn

Assume no rolling friction
UNC Chapel Hill
M. C. Lin
Impulse with Friction

Recall that the impulse looked like this
for frictionless collisions:

Recall also that vz = j/m
UNC Chapel Hill
M. C. Lin
Impulse with Friction
 1

1 
~
~
~
~

1

1
Δv(t)   
1  r1I1 r1  r2I2 r2  j(t)  Kj(t)
 m1 m2 

where:
r = (p-x) is the vector from the center of
mass to the contact point
0
~r   r
 z
- ry
UNC Chapel Hill
- rz
0
rx
ry 

- rx 
0 
M. C. Lin
The K Matrix

K is constant over the course of the
collision, nonsingular, symmetric, and
positive definite
k x 


K  ky
 
k z 
UNC Chapel Hill
M. C. Lin
Collision Functions

Change variables from t to something else
that is monotonically increasing during the
collision: Δv(  )  Kj(  )

Let the duration of the collision  0.
The functions v, j, W, all evolve over the
compression and the restitution phases
with respect to .

UNC Chapel Hill
M. C. Lin
Collision Functions

We only need to evolve vx, vy, vz, and
Wz directly. The other variables can
be computed from the results.
UNC Chapel Hill
M. C. Lin
Sliding or Sticking?

Sliding occurs when the relative
tangential velocity v t  0
– Use the friction equation
to formulate v t  0  ft  μ fn vˆ t

Sticking occurs otherwise
– Is it stable or instable?
– Which direction does the instability get
resolved?
UNC Chapel Hill
M. C. Lin
Sliding Formulation

For the compression phase, use   v z
– v z is the relative normal velocity at the
start of the collision (we know this)
– At the end of the compression phase, v 0z  0

For the restitution phase, use   Wz
– Wz0 is the amount of work that has been
done in the compression phase
– From Stronge’s hypothesis, we know that
Wz  (1 ε 2 )Wz0
UNC Chapel Hill
M. C. Lin
Sliding Formulation

Compression phase equations are:
 vx 
k xξ(θ)
d  
1 
vy 
k yξ(θ)

dv z   k zξ(θ) 
 Wz 
 v z 
UNC Chapel Hill
M. C. Lin
Sliding Formulation

Restitution phase equations are:
v x 
k x ξ(θ)
d   1
1
v y  K ξ(θ) 
k y ξ(θ)

dWz   v z
vz 
 v z 
k zξ(θ)
UNC Chapel Hill
M. C. Lin
Sliding Formulation
where the sliding vector is:
 μv x

2  v2 
v

x
y
 μcosθ 


μv
y
ξ(θ)    μsinθ   

2
2

 
vx  vy 
 1  
1



UNC Chapel Hill
M. C. Lin
Sliding Formulation

Notice that there is a problem at the
point of maximum compression
because vz = 0:
v x 
k x ξ(θ)
d   1
1
v y  K ξ(θ) 
k y ξ(θ)

dWz   v z
vz 
 v z 
k zξ(θ)
UNC Chapel Hill
M. C. Lin
Sliding Formulation
Let us integrate using vz a bit into the
restitution phase (extension integration)
so that we never divide by 0.
 But we don’t want to integrate too far!
Otherwise we exceed the amount of work
that is to be done in the restitution
phase.
 We are safe if we stop at:
2  K2 
v z  2Wz  Wz0 K 33  μ K 31
32

UNC Chapel Hill
M. C. Lin
Sliding Formulation
UNC Chapel Hill
M. C. Lin
Sliding Formulation
There is another problem if the
tangential velocity becomes 0 because
the equations that we have derived
were based on v t  0  ft  μ fn vˆ t
which no longer holds.
 This brings us to the sticking
formulation

UNC Chapel Hill
M. C. Lin
Sticking Formulation
UNC Chapel Hill
M. C. Lin
Sticking Formulation

Stable if K
  K   μ K 
1 2
13
1 2
23
2
1 2
33
– This means that static friction takes over for the
rest of the collision and vx and vy remain 0

If instable, then in which direction do vx and
vy leave the origin of the vx, vy plane?
– There is an equation in terms of the elements of K
which yields 4 roots. Of the 4 only 1 corresponds
to a diverging ray – a valid direction for leaving
instable sticking.
UNC Chapel Hill
M. C. Lin
Sticking Formulation

If sticking occurs, then the remainder
of the collision may be integrated
analytically due to the existence of
closed form solutions to the resulting
simplified equations.
UNC Chapel Hill
M. C. Lin
Static Contacts
What about a block on a ramp when the
static friction force is greater than
gravity? Will it not creep down?
 The solution is to create another type
of micro-collision which reverses the
initial relative velocity. It is applied if it
lies within the friction “cone” otherwise
the standard collision integration is
performed.

UNC Chapel Hill
M. C. Lin
Impulse Based Experiment
Platter rotating with high velocity with a
ball sitting on it. Two classical models
predict different behaviors for the ball.
Experiment and impulse-based
dynamics agree in that the ball rolls in
circles of increasing radii until it rolls
off the platter.
 Correct macroscopic behavior is
demonstrated using the impulse-based
contact model.

UNC Chapel Hill
M. C. Lin