Newtonian Mechanics – Euler’s Equation for Rigid Body Rotation Applied to Inertia Frame

newtonian-mechanicsrigid-body-dynamicsrotational-dynamics

According to many rigid body dynamics books, the Euler's equation is expressed in local body frame(principal axes). That is to say the external moment,inertia tensor and angular velocity are all expressed in terms of local body frame:

$$\tau_b=I_b\dot{\omega_b}+\omega_b \times I_b \omega_b$$
The subscript $b$ indicates the local body frame. My queation is could Euler's equation be expressed in inertia frame? I found in some game physics engines the equation is expressed in inertia frame rather than body frame.
$$\tau=I\dot{\omega}+\omega \times I \omega$$

In that situation the inertia tensor $I$ is not constant but varying with the body frame. Therefore it is updated with the orientation of rigid body. Moment $\tau$ and angular velocity $\omega$ are expressed in world frame(inertia frame). Is the formula above established?

Best Answer

I found in some game physics engines the equation is expressed in inertia frame rather than body frame. $$\tau=I\dot{\omega}+\omega \times I \omega$$ In that situation the inertia tensor $I$ is not constant but varying with the body frame. Therefore it is updated with the orientation of rigid body. Moment $\tau$ and angular velocity $\omega$ are expressed in world frame(inertia frame). Is the formula above established?

tl;dr: Yes, this is valid. Getting there is nontrivial.


The $\boldsymbol \omega_B \times (\mathrm I_B \, \boldsymbol \omega_B)$ term in $\boldsymbol \tau_B = \mathrm I_B \, \dot{\boldsymbol \omega}_B + \boldsymbol \omega_B \times (\mathrm I_B \, \boldsymbol \omega_B)$ results from working in a rotating frame. It is a fictitious torque, very much akin to the fictitious forces that arise with Newton's second law when computed in a rotating frame. Just as those fictitious forces vanish in an inertial frame, so does the fictitious torque. The inertial frame rotational equation of motion is

$$\boldsymbol\tau_I = \frac d{dt} (\mathrm I_I\, \boldsymbol \omega_I) = \mathrm I_I \, \dot {\boldsymbol \omega}_I + \dot {\mathrm I}_I \,\boldsymbol \omega_I$$

This raises the question, what is the time derivative of the inertia tensor from the perspective of an inertial frame? To determine this, the relationship between the inertia tensor as expressed in the body frame and as expressed inertial frame is needed. This is $$\mathrm I_I = \mathrm T_{R\to I}\,\mathrm I_B\,\mathrm T_{R\to I}^{\,T}$$ where $\mathrm I_I$ is the inertia tensor expressed in the inertial frame, $\mathrm T_{R\to I}$ is the transformation matrix from the body frame to the inertial frame, $\mathrm I_B$ the inertia tensor expressed in the body frame, and $\mathrm T_{R\to I}^{\,T}$ is the transpose of (and also the inverse of) $\mathrm T_{R\to I}$. Taking the derivative with respect to time yields $$\dot {\mathrm I}_I = \dot {\mathrm T}_{R\to I} \, \mathrm I_B\,\mathrm T_{R\to I}^{\,T} + \mathrm T_{R\to I} \, \mathrm I_B \, \dot {\mathrm T}_{R\to I}^{\,T}$$ Without derivation, the time derivative of the transformation matrix is $$\dot {\mathrm T}_{R\to I} = \mathrm T_{R\to I} \operatorname{Sk}(\boldsymbol \omega_B) = \operatorname{Sk}(\boldsymbol \omega_I)\mathrm T_{R\to I}$$ where $\operatorname{Sk}(a)$ is the skew symmetric cross product matrix generated by the vector $\boldsymbol a$: $$\operatorname{Sk}(\boldsymbol a) \equiv \begin{pmatrix} \phantom{-}0 & -a_z & \phantom{-}a_y \\ \phantom{-}a_z & \phantom{-}0 & -a_x \\ -a_y & \phantom{-}a_x & \phantom{-}0 \end{pmatrix}$$ Note that $\operatorname{Sk}(\boldsymbol a) \, \boldsymbol b = \boldsymbol a \times \boldsymbol b$. With the above, the time derivative of the inertia tensor as expressed in the inertial frame is $$\dot {\mathrm I}_I = \operatorname{Sk}(\boldsymbol \omega_I) \mathrm T_{R\to I} \, \mathrm I_B\,\mathrm T_{R\to I}^{\,T} + \mathrm T_{R\to I} \, \mathrm I_B \, \mathrm T_{R\to I}^{\,T} \operatorname{Sk}^T(\boldsymbol \omega_I) = \operatorname{Sk}(\boldsymbol \omega_I)\,\mathrm I_I - \mathrm I_I \, \operatorname{Sk}(\boldsymbol \omega_I)$$ This can be nonzero due to the non-commutative nature of matrix multiplication. We're not interested so much in the form of $\dot {\mathrm I}_I$ in general so much as the product $\dot {\mathrm I}_I\,\boldsymbol \omega_I$. This is $$\dot {\mathrm I}_I\,\boldsymbol \omega_I = \operatorname{Sk}(\boldsymbol \omega_I)\,\mathrm I_I \,\boldsymbol \omega_I - \mathrm I_I \, \operatorname{Sk}(\boldsymbol \omega_I) \,\boldsymbol \omega_I = \boldsymbol \omega_I \times (\mathrm I_I \,\boldsymbol \omega_I) - \mathrm I_I \, (\boldsymbol \omega_I \times \boldsymbol \omega_I) = \boldsymbol \omega_I \times (\mathrm I_I \,\boldsymbol \omega_I)$$ and thus $$\boldsymbol\tau_I = \mathrm I_I \, \dot {\boldsymbol \omega}_I + \boldsymbol \omega_I \times (\mathrm I_I \,\boldsymbol \omega_I)$$

Related Question