Angular Momentum of Rigid Bodies

Click For Summary

Discussion Overview

The discussion revolves around calculating the rotation of a rigid body when a force is applied at a single point, particularly in the context of 3D game programming. Participants explore concepts related to angular momentum, torque, moment of inertia, and the effects of friction on rotation.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Debate/contested

Main Points Raised

  • One participant seeks to determine the necessary force to cause rotation in a rigid body, noting that if the force is too small, the body should not rotate, implying the presence of friction.
  • Another participant mentions that the change in angular momentum is equal to the sum of all torques, but acknowledges uncertainty about the specifics of the system.
  • A participant describes their method for applying torque to a quaternion representing the body's orientation and questions how to factor in moment of inertia without considering friction.
  • There is a discussion about the calculation of the axis of rotation and the instantaneous center of rotation, with one participant suggesting that even a tiny force would result in movement if there is no friction.
  • One participant clarifies their application involves collisions between objects and expresses interest in calculating angular momentum based on the moment of inertia, while also providing their calculations for inertia scalars and tensors.
  • Another participant raises the complexity of impacts and suggests using conservation of momentum and angular momentum, along with assumptions about energy loss during collisions.
  • There is a correction regarding the point of force application, with a participant noting that the specified point is not a corner but halfway along an edge of the cube.

Areas of Agreement / Disagreement

Participants express various viewpoints on the role of friction, the calculations involved in determining rotation, and the implications of moment of inertia. The discussion remains unresolved with multiple competing views on how to approach the problem.

Contextual Notes

Participants mention limitations in their understanding of the system dynamics, particularly regarding the effects of friction and the complexities of 3D rotation. There are also unresolved mathematical steps related to the calculations of angular momentum and torque.

paulmcco
Messages
3
Reaction score
0
I'm trying to calculate the rotation of a rigid body due to a force applied to a single point on the body. This application is for 3D game programming. I understand how to find the axis of rotation by calculating the cross product of the point of intersection & the vector between the center of the rigid body and the point of intersection(vecPtoC). My question is this:

If the rigid body has a certain mass, how do I determine how much force to apply in order to cause the body to rotate? If the force applied to the body is too small, the body should not rotate. Also, if the force applied to the body is great enough to rotate the body, how much does the body rotate due to the force?
 
Physics news on Phys.org
If the force applied to the body is too small, the body should not rotate.
In this case, you have some sort of friction. The maximal friction torque depends on the type of friction and the geometry.

Also, if the force applied to the body is great enough to rotate the body, how much does the body rotate due to the force?
The change in angular momentum with respect to time is equal to the sum of all torques. I do not know how your system works, so it is hard to give more specific answers.

If the body is not fixed somewhere, it might get a linear velocity as well. In addition, it might change its axis of rotation, if it is asymmetric enough.
 
thanks mfb...the body is at rest and a torque(0,-1,0) is calculated from the cross product of the force applied(0,0,1) & the vector difference between point of impact(1,0,-1) and center of body(0,0,0). I've applied the torque to the body's orientation quaternion like so:

quatOrientation.w += 0.5f * (quatOrientation.x * torque.x +
quatOrientation.y * torque.y +
quatOrientation.z * torque.z);

quatOrientation.x -= 0.5f * (quatOrientation.w * torque.x -
quatOrientation.z * torque.y +
quatOrientation.y * torque.z);

quatOrientation.y -= 0.5f * (quatOrientation.z * torque.x +
quatOrientation.w * torque.y -
quatOrientation.x * torque.z);

quatOrientation.z -= 0.5f * (quatOrientation.x * torque.y -
quatOrientation.y * torque.x +
quatOrientation.w * torque.z);

This method is from a game programming book by Jim Adams. How though do I factor in the moment of inertia? I haven't considered the friction btween the body and the ground...I'm more interested in taking into account the amount of force and the mass of the body...any ideas?
 
paulmcco said:
I'm trying to calculate the rotation of a rigid body due to a force applied to a single point on the body. I understand how to find the axis of rotation by calculating the cross product of the point of intersection & the vector between the center of the rigid body and the point of intersection(vecPtoC).
Not sure what you mean by that calculation, but it sounds like it is only going to give you the axis of rotation as a vector. It won't tell you where the instantaneous centre of rotation is.
If the rigid body has a certain mass, how do I determine how much force to apply in order to cause the body to rotate? If the force applied to the body is too small, the body should not rotate.
You say there's no friction. In that case, even the tiniest force will result in movement.
Suppose a force F acts on a body with mass centre at O. The body has mass M, and the line of action of F misses O by distance d. The centre of mass will accelerate in the direction of F at rate F/M.
The moment applied to the body has magnitude Fd. Rotation is complicated in 3D for arbitrary rigid bodies. You have to consider the principal axes of inertia. See e.g. http://en.wikipedia.org/wiki/Euler's_equations_(rigid_body_dynamics)
 
my mistake...there must be friction. My application is for a video game. If two objects collide, I would like to calculate the angular momentum of those objects due to the force applied to a point on each rigid body. My understanding is that the moment of inertia of a rigid body determines the amount of force necessary to cause a change in angular momentum. I would like to account for these forces in my calculations of angular momentum. How would I do so?I'm not necessarily concerned with the center of mass...for my application the center of mass can be the center of the body. The body will rotate from this center. I have calculated the inertia scalars as:
xs = length.x * length.x
ys = length.y * length.y
zs = length.z * length.z.

And the inertia tensors as:
Ixx = mass * (ys + zs)
Iyy = mass * (xs + zs)
Izz = mass * (xs + ys);

Assuming the center of the body is at (0,0,0) and the body has length.x = length.y = length.z = 2, if a force of (0,0,1) is applied at the point (1,0,-1), the upper right corner of the cube's front face, how much would you expect the cube to rotate(if at all)? What amount of force would be necessary to rotate the cube?
 
Last edited:
paulmcco said:
my mistake...there must be friction. My application is for a video game. If two objects collide, I would like to calculate the angular momentum of those objects due to the force applied to a point on each rigid body. My understanding is that the moment of inertia of a rigid body determines the amount of force necessary to cause a change in angular momentum.
This sounds like impacts, so the forces are indeterminate. You need to use conservation of momentum and of angular momentum. That won't be enough to fix the motion; you'll also need to make some assumption about coefficient of restitution. Or just say such-and-such a percentage of energy is lost.
for my application the center of mass can be the center of the body. The body will rotate from this center. I have calculated the inertia scalars as:
xs = length.x * length.x
ys = length.y * length.y
zs = length.z * length.z.

And the inertia tensors as:
Ixx = mass * (ys + zs)
Iyy = mass * (xs + zs)
Izz = mass * (xs + ys);
That's summing over the xs etc?
Assuming the center of the body is at (0,0,0) and the body has length.x = length.y = length.z = 2, if a force of (0,0,1) is applied at the point (1,0,-1), the upper right corner of the cube's front face, how much would you expect the cube to rotate(if at all)? What amount of force would be necessary to rotate the cube?
(1, 0, -1) is not a corner of the cube - it's halfway along an edge.
Angular Impulse = Momentum of impulse x distance (vector product)
= Moment of inertia x change in angular velocity
Suppose a body of mass m strikes the middle of the top edge of the front face at speed v in a front-to-back direction. Assume the impact is completely inelastic (i.e., the bodies coalesce). The angular impulse about the x-axis (left-right axis) is mva, where a is the half-width of the cube. Let the moment of inertia of the cube about the x-axis be MI. If the angular speed of the merged body after impact is w then mva = mwa2+MIw.
No doubt you're more interested in cases where the bodies bounce with relatively little loss of energy.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 30 ·
2
Replies
30
Views
5K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 61 ·
3
Replies
61
Views
5K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 13 ·
Replies
13
Views
2K