In the rigid body dynamics algorithm book (Featherstone et al.) it claims

We start with a rigid body, $B$, and choose a fixed point, $O$, which can be located anywhere in space. (See Figure 2.1(a).) Given $O$, the velocity of $B$ can be specified by a pair of 3D vectors: the linear velocity, $v_O$, of the body-fixed point that currently coincides with $O$, and an angular velocity vector, $\omega$. The body as a whole can then be regarded as translating with a linear velocity of $v_O$, while simultaneously rotating with an angular velocity of $\omega$ about an axis passing through $O$. From this description, we can calculate the velocity of any other point in the body using the formula $$v_p = v_O + \omega \times \vec{OP}$$ where $P$ is the point of interest, $v_P$ is the velocity of the body-fixed point currently at P, and $\vec{OP}$ gives the position of $P$ relative to $O$.

A few things I am confused with is

  • What is $v_O$, from the description it seems like $v_O$ is not the same as the linear velocity of the body frame in the world frame.
  • $\omega$ is described as the angular velocity about an axis passing through $O$, so it seems like $\omega$ is neither the body nor the spatial angular velocity, but something different.

I do not understand how to derive this result, can someone help me with this?

Thanks in advance!


1 Answer 1


I haven't opened a math book since literally before you were born but let me try to explain. ω X OP is a crossproduct of the angular velocity vector and the vector that describes where P is relative to O.

This cross product will give you the relative linear velocities, in a vector, of the point P relative to point O which has the velocity vector vO. So you add them together. That addition simply takes the linear velocity of your reference point and adds the relative velocity of any other point you choose.

Of course both of these vectors and the vO linear velocity vector all must reference the same coordiate frame for this make any sense.

To answer your direct confusions: vO is not the velocity vector of body frame. It is velocity vector of a single point on the body frame. If the body frame is rotating then all points will have different velocity so don't think of it that way.

ω is just that, the angular velocity vector of the 'body frame' in your wording.

Of course if you want to apply this math to a robotics application, I strongly suggest you pick the point O someplace convenient like at a center of rotation or something.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.