# Rolling Billiards Ball: Applying friction

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

## Recommended Posts

Rolling Billiards Ball: Applying friction (Computer simulation) Greetings to all I'm currently in the midst of programming the physics part of a Billiards simulation. I've found this link http://archive.ncsa.uiuc.edu/Classes/MATH198/townsend/math.html to be quite helpful, but I've run into problems with basic ball movement. I can determine when the ball begins rolling naturally and adjust the friction coefficients accordingly, but from what I've read the velocity of the point on the ball in contact with the table is zero when rolling naturally(which makes sense). So, instead of using the perimeter velocity at the point of contact to determine the frictional force direction (normalise + invert), I just use the individual linear and angular velocity vectors in order to calculate the corresponding frictional force and torque. I do this by taking the velocity at the point of contact ( angular or linear ), normalising and inverting it, and then scaling it by the ball's mass, gravitational acceleration and rolling friction (0.01), in the case of angular velocity I then calculate the corresponding torque. My problem is that when I test my code, the rotational and translational motion don't match up, the rotation diminishes faster than the translational movement (so that the ball appears to slide just before stopping). I'm at a loss as to why this would be the case so I'm guessing I'm not correctly calculating the frictional forces. To reiterate I use the methods outlined in the article I pasted (there appears to be an error in article for calculating the torque due to friction, the radius(value, not the vector) shouldn't be used to calculate the force, I think) Thanks in advance for all and any help, Richard. [Edited by - REEPER on December 28, 2008 10:36:50 AM]

##### Share on other sites
because force/mass != force/moment-of-inertia
the linear and angular velocities will want to diverge

but that won't happen because of static friction
which acts as a counterbalancing force
to keep linear velocity = angular velocity * radius

because static friction force > rolling friction force

even though the ball is moving the relative velocity
between felt and ball (when rolling without slipping)
is zero thus static friction comes into play

so the quick answer is to calculate the change in linear velocity
and apply the same change to angular velocity

lvel *= damp;
avel *= damp;

the little r in the document you mentioned has an arrow above it
it is the vector from the ball origin to the point on the perimeter

##### Share on other sites
Quote:
 because force/mass != force/moment-of-inertiathe linear and angular velocities will want to diverge

Not sure I follow your point but I use the torque/moment-of-inertia to calculate the corresponding deceleration in the angular velocity

Quote:
 so the quick answer is to calculate the change in linear velocityand apply the same change to angular velocitylvel *= damp;avel *= damp;

I will try to implement something similar once I have exams out the way, although in the article the derived changes in velocities are incremental.

Vlinear = -(r crossProduct Vangular) is valid in the rolling phase so I would have to transform an incremental change into a multiplicative one (in order to obtain the Vangular change scalar): (Vlinear - delta) / Vlinear * Vangular

Quote:
 the little r in the document you mentioned has an arrow above itit is the vector from the ball origin to the point on the perimeter

I was talking about the capitalised R used in the calculation of the torque (appears out of nowhere in the force part)

1. 1
2. 2
3. 3
Rutin
15
4. 4
5. 5

• 10
• 9
• 9
• 11
• 11
• ### Forum Statistics

• Total Topics
633680
• Total Posts
3013304
×