Jump to content
  • Advertisement
Sign in to follow this  
michael879

torque, pivot points, and friction

This topic is 4433 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

Im writing a program which will simulate different forces and torques on objects. The problem Im having is that it doesnt seem right for the object to always rotate around its center of mass. Look at the following problem: ___ \ | | \|___| there is a downward force of gravity on all 4 vertices of the box. On the lower left vertex, there is also the normal force of the slop it hit. In real life, this box would pivot around the corner and rotate clockwise. However in a simulation, the box would rotate around its center of mass, lifting the corner off the slope. It would be hard to notice since the box is moving down, but is there anyway to correct this? My second question is about the force of friction on this box. It has to be in the opposite direction of the component of the velocity that is perpendicular to the normal of the slope right? Is there a formula to find the direction of the force of friction? I tried to figure it out but couldnt.

Share this post


Link to post
Share on other sites
Advertisement
I can't really see what's happening in that ASCII drawing.

As far as finding the friction, you want to find the component of velocity that is in the plane of the slope. You can do this by subracting from the original velocity not in the direction of the plane.
So
v' = v - (n.v)n
where v' is the velocity that is on the plane, n is the normal, and v is the net velocity.

Edit:
I'll take a stab at your first question. I'm not sure by what you mean by "hard to notice." But if in your simulation, the corner does lose contact, then your simulation is going wrong somewhere. The way the physics works out analytically, the center of mass moves downward at precisely the correct speed and acceleration so that it "compensates" for the corner moving upwards due to rotation.

Share this post


Link to post
Share on other sites
huh.. that picture looked fine when I was drawing it. Ill try again:
...___..
\.|___|.
_\|___|.
__\.....
___\....

its a box with 1 corner hitting a slope as it falls. I cant figure out how to make it so the box pivots around the point of contact rather than around the center of mass (after torque is calculated per vertex and summed). Thanks for helping me with the friction too.

Share this post


Link to post
Share on other sites
Absolutely sure. Just consider a flat plane, like a table, and a box resting on it with exactly one of the edges touching the table. The problem is that you don't even know the normal force (of the table on the box). It's NOT mg, since the center of mass is accelerating downwards (the box is falling). If I were to solve the problem analytically (instead of simulating it), I would use the fact that the corner does not leave the table to find the normal force, hence ensuring that the corner does in fact not leave the table.

Share this post


Link to post
Share on other sites
hm, theres got to be some way to find the normal force. In that situation wouldnt it still be mg? or negative whatever the force on that edge downward is.

Share this post


Link to post
Share on other sites
no, i believe that as long as that corner is the only part of the box touching the surface (assuming the corner is a point, 1D) then it is always receiving the full normal force of the box, which should be mg (if it is on a flat table). this is because there is no other place for the force to be acting and since the box isn't moving through the table, the table has to be supporting all the force.

hmm, about the box rotating on its edge down a slope, couldn't you assume that when the box edge/corner hits the slope it acts as pin that can only resist a certain amount of force? in which case the connection would be broken when the normal force is zero. this would be the case where the box rotates and is able to move away from the face of the slope. however, if the box were not able to achieve the speed necessary for this (which would effect the rotational inertia) it would then hit a face which you could then say breaks the rear pin connection and possibly institutes one on the front of the box. i'm not sure if that is kocher, but just an idea that popped into my head.

Share this post


Link to post
Share on other sites
From what I understand, in your example you want the box to pivot around the point it is contacting with the slope. I believe that your problem should be solved differantly. instead of pivoting around that point, add torque and continue to make the box fall, as well as push away from the incline.

The plane itself does not make the box pivot, it only applys a force pushing away from the plane (keeping it from intersecting), and torque to give it correct rotational velocity. force effects velocity, velocity effects position. force however, never directly effects position.

Share this post


Link to post
Share on other sites
The force is most definitely not always mg. To see why, suppose the force is mg, then the net force on the box is: gravity + normal = -m*g + m*g = 0. The center of the box does not move.....unless the box is perfectly balanced on the edge, then the box falls, and a nonmoving center of mass certainly doesn't make sense.

I've kind of been skirting around how exactly to determine the normal force. It's actually not so simple to do, so you should probably refer to baraff or hecker (i haven't personally read the articles, but that's what everyone else recommends, so i assume they are good).

A quick easy way, which i don't entirely recommend, would be to model the contact forces as (damped) springs. That is, determine how "deep" the vertex is into the slope, and if the vertex has intersected the slope, then just use a normal force proportional to the distance.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!