Sign in to follow this  

Simple friction simulation

This topic is 4745 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hopefully this is a simple question... I'm looking for a way to simulate simple friction. In this case it applies only between a number of spheres and a surface (balls on a pool table). However, my physics knowledge is a little rusty... If I remember correctly the deceleration due to friction is proportional to the reaction force (the weight of the object) and something called the friction coefficient which represents the smoothness of the surface. However, after searching for more information on this I've come up with nothing. First of all, can someone tell me whether my understanding of this is correct, and suggest how it can be implemented so the velocity of an object is reduced due to the friction. Thanks :)

Share this post


Link to post
Share on other sites
For a sliding object, the maximum available friction force(or impulse), FMax, is given by the normal force (or impulse) times the friction coefficient. The actual friction force F is given by the max of FMax and whatever force would eliminate the sliding (so you need to calculate this).

If you want a simple friction model/implementation you can do something like just apply Fmax, and if it reverses the direction of sliding force the resulting motion to have no sliding (so for a 2D object sliding on a fixed surface - apply FMax and if it reverses the direction of motion set the final velocity to 0).

A slightly more complicated friction model will have two friction coefficients - a static one and a sliding one (the latter being smaller). If the static friction is enough to bring the object to a (relative) halt, use FMaxStatic (well, the max of that and the force required to stop the sliding, as above), if not then just apply FMaxSliding.

This is just for sliding - if you've got a ball rolling on a surface it's not necessarily sliding, but you'll still want to apply "rolling" friction. I don't offhand how you'd calculate that, but it would be related to the objects angular velocity, the ball/surface properties, and the radius of curvature at the point of contact. Do a search for "rolling friction" - e.g.

http://webphysics.davidson.edu/faculty/dmb/PY430/Friction/rolling.html

Share this post


Link to post
Share on other sites
Quote:
Original post by MrRowl
For a sliding object, the maximum available friction force(or impulse), FMax, is given by the normal force (or impulse) times the friction coefficient. The actual friction force F is given by the max of FMax and whatever force would eliminate the sliding (so you need to calculate this).


Didn't you mean "the actual friction force F is given by the min of FMax and whatever force would eliminate the sliding." Still doesn't prevent the possibility of velocity reversal in a time-stepping simulation, so that would still have to be handled.

Share this post


Link to post
Share on other sites
Quote:
Original post by grhodes_at_work
Didn't you mean "the actual friction force F is given by the min...


Ooops - yes I did! Thanks for pointing this out.

I disagree with your second point though - if you calculate (bearing in mind the integration scheme - e.g. Euler/RK4 etc) the force required to bring that point to a halt, then apply an force equal to/less than what you've calculated using the same scheme, you're guaranteed not to reverse the point's tangential velocity.

Edit: Originally I wrote "impulse" in the above paragraph, but that's slightly misleading because impulses are by definition applied instantaneously - you don't need to consider the integration scheme when applying impulses. You do if applying forces, because they're applied over a finite period of time.

Share this post


Link to post
Share on other sites

This topic is 4745 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this