Download presentation
Presentation is loading. Please wait.
1
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
2
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
3
Impulse vs. Constraint Impulse-based dynamics (local)
Constraint-based dynamics (global) UNC Chapel Hill M. C. Lin
4
Impulse vs. Constraint UNC Chapel Hill M. C. Lin
5
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
6
Resting Contact Response
UNC Chapel Hill M. C. Lin
7
Resting Contact Response
The forces at each contact must satisfy three criteria Prevent inter-penetration: Repulsive -- we do not want the objects to be glued together: Should become zero when the bodies start to separate: To implement hinges and pin joints: UNC Chapel Hill M. C. Lin
8
Resting Contact Response
We can formulate using LCP: UNC Chapel Hill M. C. Lin
9
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
10
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 3 Cs = Contacts(A,B); 4 Apply_Impulses(A,B,Cs); 5 else if Relative_Normal_Velocity(A,B) < then 6 Flag_Pair(A,B); 7 Solve_For_Forces(flagged pairs); 8 Apply_Forces(flagged pairs); UNC Chapel Hill M. C. Lin
11
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
12
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
13
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 Flag_Pair(A,B); 7 Solve_For_Forces(flagged pairs); 8 Apply_Forces(flagged pairs); UNC Chapel Hill M. C. Lin
14
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 Compute_Restitution(A,B); Cs = Contacts(A,B); 8 Apply_Impulses(A,B,Cs); UNC Chapel Hill M. C. Lin
15
Compute_Restitution(A,B)
є = f( Distance(A,B) ) UNC Chapel Hill M. C. Lin
16
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
17
Collision Coordinate System
p is the applied impulse. We use j because P is for linear momentum UNC Chapel Hill M. C. Lin
18
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
19
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
20
Impulse Reformulation
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. UNC Chapel Hill M. C. Lin
21
Impulse Reformulation
v-=v(0), v0=v(tmc), v+=v(tf), vrel=vz Newton’s Empirical Impact Law: Poisson’s Hypothesis: Stronge’s Hypothesis: Energy of the bodies does not increase when friction present UNC Chapel Hill M. C. Lin
22
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 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
23
Friction Formulae Sliding (dynamic) friction Dry (static) friction
Assume no rolling friction UNC Chapel Hill M. C. Lin
24
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
25
Impulse with Friction where:
r = (p-x) is the vector from the center of mass to the contact point UNC Chapel Hill M. C. Lin
26
The K Matrix K is constant over the course of the collision, nonsingular, symmetric, and positive definite UNC Chapel Hill M. C. Lin
27
Collision Functions Change variables from t to something else that is monotonically increasing during the collision: 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
28
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
29
Sliding or Sticking? Sliding occurs when the relative tangential velocity Use the friction equation to formulate Sticking occurs otherwise Is it stable or instable? Which direction does the instability get resolved? UNC Chapel Hill M. C. Lin
30
Sliding Formulation For the compression phase, use
is the relative normal velocity at the start of the collision (we know this) At the end of the compression phase, For the restitution phase, use is the amount of work that has been done in the compression phase From Stronge’s hypothesis, we know that UNC Chapel Hill M. C. Lin
31
Sliding Formulation Compression phase equations are: UNC Chapel Hill
M. C. Lin
32
Sliding Formulation Restitution phase equations are: UNC Chapel Hill
M. C. Lin
33
Sliding Formulation where the sliding vector is: UNC Chapel Hill
M. C. Lin
34
Sliding Formulation Notice that there is a problem at the point of maximum compression because vz = 0: UNC Chapel Hill M. C. Lin
35
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: UNC Chapel Hill M. C. Lin
36
Sliding Formulation UNC Chapel Hill M. C. Lin
37
Sliding Formulation There is another problem if the tangential velocity becomes 0 because the equations that we have derived were based on which no longer holds. This brings us to the sticking formulation UNC Chapel Hill M. C. Lin
38
Sticking Formulation UNC Chapel Hill M. C. Lin
39
Sticking Formulation Stable if
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
40
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
41
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
42
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.