2D collision response with friction

Click For Summary
SUMMARY

This discussion focuses on implementing 2D collision response with friction in a physics engine. The user is encountering issues with the application of friction during collisions, specifically when calculating the impulse and its effect on angular momentum. David M Bourg's approach, which suggests adding a tangential impulse based on the coefficient of friction, is challenged as incorrect. The correct understanding emphasizes that friction should not add to the normal impulse but rather affects angular momentum conservation during collisions.

PREREQUISITES
  • Understanding of 2D physics engines
  • Familiarity with impulse and momentum concepts
  • Knowledge of angular momentum conservation
  • Experience with collision detection and response algorithms
NEXT STEPS
  • Research the implementation of friction in 2D physics engines
  • Study the conservation of angular momentum in collisions
  • Explore alternative methods for calculating impulse during collisions
  • Examine case studies of friction in game physics, particularly with spinning objects
USEFUL FOR

Game developers, physics engine programmers, and anyone involved in simulating realistic 2D collisions and friction effects in gaming applications.

Crashgate3
Messages
1
Reaction score
0
I'm writing a little 2D physics engine. The collision response is calculated by working out the impulse (and so, change in momentum) on each object, and takes into account the objects' velocities, angular velocities, and the fact that the collision normal may be in a different direction to the relative velocities of the contact points on each object. I've got the impulse working fine for a frictionless collision - my objects seem to behave themselves when I set things running, but I'm having real trouble establishing how friction affects things - for example two spinning balls colliding, where the coefficient of friction will affect how much spin is transferred between the balls.

I'm working from David M Bourg's 'Physics For Game Developers' - Bourg states that the impulse, which in a frictionless collision is in the direction of the collision normal, gets an additional component added in the direction tangent to the normal, of magnitude equal to the coefficient of friction * impulse.

This seems wrong to me (and indeed, when I add this to my code, gives the wrong behaviour) - it doesn't seem to include the relative velocities of the two collision points in the direction of the collision tangent - even if the relative velocity along this tangent is zero, as in the case of two non-rotating spheres colliding, it would still add a sideways impulse which is clearly wrong.

Can anyone direct me any further?
 
Physics news on Phys.org
Crashgate3 said:
Bourg states that the impulse, which in a frictionless collision is in the direction of the collision normal, gets an additional component added in the direction tangent to the normal, of magnitude equal to the coefficient of friction * impulse.
That is incorrect. Friction is the component of force (or impulse) tangent to the surface and cannot add to the the component perpendicular to the surface. A collision with friction between two balls will add angular momentum about the CM of each ball such that the sum of changes of angular momenta is zero, i.e. angular momentum is conserved.
 

Similar threads

  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 35 ·
2
Replies
35
Views
5K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 20 ·
Replies
20
Views
2K
  • · Replies 14 ·
Replies
14
Views
4K
  • · Replies 5 ·
Replies
5
Views
2K