Newton-Euler equations

The Newton-Euler equations of motion correspond to the six unactuated coordinates in the equations of motion of humanoid robots. Newton's equation applies to (linear) translational motions:

\begin{equation*} \displaystyle \sum_{\textrm{link }i} m_i \bfpdd_i = m \bfg + \sum_{\textrm{contact }i} \bff_i \end{equation*}

Meanwhile, Euler's equation applies to angular motions:

\begin{equation*} \displaystyle \sum_{\textrm{link }i} (\bfp_i - \bfp_G) \times m_i \bfpdd_i + {\bfI}_i\,\dot{\omega}_i + \omega_i \times (\bfI_i\,\omega_i) = \sum_{\textrm{contact }i} (\bfp_i - \bfp_G) \times \bff_i + \bftau_i \end{equation*}

Let us detail notations and how these equations are used.

Newton's equation

Let \(\bfp_i\) denote the position in the world frame of a reference point on the robot's \(i^{\textrm{th}}\) link. The center of mass (CoM) \(G\) is located at position \(\bfp_G\) in the world frame. Also, let \(m_i\) denote the mass of link \(i\), and \(m = \sum_i m_i\) the total mass of the robot.

Forces

The robot is subject to gravity and contact forces. Let \(\bfg\) denote the gravity vector. For a link \(i\) in contact with the environment, we write \(\bff_i\) the resultant force exerted on the link. Let \(\bfh_{ij}\) denote the internal force exerted by link \(i\) on link \(j\). We take the convention that \(\bfh_{ij} = 0\) if links \(i\) and \(j\) are not connected (similarly, \(\bff_i = 0\) if link \(i\) is not in contact). All force vectors are expressed in the world frame.

Humanoid whole-body dynamics involve contact forces and the dynamic momentum

Equation

Newton's equation of motion links the resultant accelerations and forces:

\begin{equation*} \sum_{\textrm{link } i} m_i \bfpdd_i = \sum_{\textrm{link } i} m_i \bfg + \bff_i + \sum_{\textrm{link } j \neq i} \bfh_{ij} \end{equation*}

An interesting point here is that \(\bfh_{ij} = - \bfh_{ji}\) (Newton's third law of motion), so that internal forces vanish in this sum over all links: \(\sum_i \sum_{j \neq i} \bfh_{ij} = 0\). In concise form, Newton's equation then binds the acceleration of the center of mass (CoM) with the whole-body resultant force:

The linear momentum of the robot is defined by:

\begin{equation*} \bfP_G := m \bfpd_G \end{equation*}

Then, Newton's equation can be written in concise form as:

\begin{equation*} \dot{\bfP}_G = m \bfpdd_G = m \bfg + \sum_{\textrm{contact } i} \bff_i \end{equation*}

In other words, the rate of change of the linear momentum is equal to the resultant of external forces exerted on the robot.

Euler's equation

Newton's equation is related to translational motions of the robot. Euler's equation provides a similar relation for angular motions.

Let \(\bfR_i\) denote the rotation matrix from the link frame to the world frame, with \(\omega_i\) its corresponding angular velocity. Also, let \(\bfI_i\) denote the inertia matrix of the \(i^{\textrm{th}}\) link, expressed in the world frame and taken at the center of mass of the link.

Forces

For a link \(i\) in contact with the environment, we write \(\bftau_i\) the resultant moment of contact forces exerted on the link at the reference point \(\bfp_i\). If the link is in point contact with the environment at \(\bfp_i\), the moment will be zero. If the link is in surface contact, both \(\bff_i\) and \(\bftau_i\) may be non-zero. See for instance the Section III of this paper for more details on point and surface contacts.

Equation

Euler's equation of motion links the angular momenta and resultant moments of external forces:

\begin{equation*} \sum_{\textrm{link }i} (\bfp_i - \bfp_G) \times m_i \bfpdd_i + {\bfI}_i\,\dot{\omega}_i + \omega_i \times (\bfI_i\,\omega_i) = \sum_{\textrm{link }i} (\bfp_i - \bfp_G) \times (\bff_i + m_i \bfg) + \bftau_i \end{equation*}

Note that, by definition of the CoM, \(\sum_i (\bfp_i - \bfp_G) \times m_i \bfg = 0\). By a similar argument to the vanishing of internal forces in the translational case, the moments of internal forces do not appear in the equation above. For details on this, see D'Alembert's principle which is the axiom behind the vanishing of internal forces.

The angular momentum of the robot is defined by:

\begin{equation*} \bfL_G := \sum_{\textrm{link }i} (\bfp_i - \bfp_G) \times m_i \bfpd_i + \bfI_i \omega_i \end{equation*}

Then, Euler's equation can be written in concise form as:

\begin{equation*} \dot{\bfL}_G = \sum_{\textrm{contact }i} (\bfp_i - \bfp_G) \times \bff_i + \bftau_i \end{equation*}

In other words, the rate of change of the angular momentum is equal to the resultant moment of external forces exerted on the robot.

Using local frames

We took care to precise that our vectors are matrices above are all given with respect to the world frame. Let us denote by \(\omega_i^\ell\), \(\bfI_i^\ell\) and \(\bftau_i^\ell\) the angular velocity, inertia matrix and resultant moment of contact forces (respectively) but this time in the local link frame. Euler's equation can equivalently be written as:

\begin{equation*} \sum_{\textrm{link }i} (\bfp_i - \bfp_G) \times m_i \bfpdd_i + \bfR_i ( {\bfI}_i^\ell\,\dot{\omega}_i^\ell + \omega_i^\ell \times (\bfI_i^\ell\,\omega_i^\ell)) = \sum_{\textrm{contact }i} (\bfp_i - \bfp_G) \times \bff_i + \bftau_i^\ell \end{equation*}

You can check this as an exercise.

Contact and gravito-inertial wrenches

When working with spatial vector algebra and wrench friction cones, it is common to express the left- and right-hand sides of Newton-Euler equations as wrenches.

Contact wrench

The contact wrench \(\bfw^c = (\bff^c, \bftau^c_G)\) corresponds to the sum of external contact forces. Its resultant \(\bff^c\) and moment \(\bftau^c_G\) at the CoM are given by:

\begin{equation*} \begin{array}{rcl} \displaystyle \bff^c & = & \displaystyle \sum_{\textrm{contact }i} \bff_i \\ \displaystyle \bftau^c_G & = & \displaystyle \sum_{\textrm{contact }i} (\bfp_i - \bfp_G) \times \bff_i + \bftau_i \end{array} \end{equation*}

Gravito-inertial wrench

The gravito-inertial wrench \(\bff^{gi} = (\bff^{gi}, \bftau_G^{gi})\) combines the effects of gravity and link accelerations. Its resultant \(\bff^{gi}\) and moment \(\bftau^{gi}_G\) at the CoM are given by:

\begin{equation*} \begin{array}{rcl} \displaystyle \bff^{gi} & = & \displaystyle \sum_{\textrm{link }i} m_i (\bfg - \bfpdd_i) \\ \bftau^{gi}_G & = & \displaystyle \sum_{\textrm{link }i} (\bfp_i - \bfp_G) \times m_i (\bfg - \bfpdd_i) - {\bfI}_i\,\dot{\omega}_i - \omega_i \times (\bfI_i\,\omega_i) \end{array} \end{equation*}

Since \(\sum_i m_i (\bfp_i - \bfp_G) \bfg = \boldsymbol{0}\) the expression of the moment above can be simplified, but this form shows how the net gravito-inertial wrench is the sum of individual gravito-inertial wrenches over all links. As expected, when the robot is not moving, the gravito-inertial wrench reduces to the gravity wrench.

Newton-Euler in terms of wrenches

In terms of these two wrenches, Newton-Euler equations become:

\begin{equation*} \bfw^c + \bfw^{gi} = \boldsymbol{0} \end{equation*}

That is, at any point in time, the sum of gravity, inertial and external contact wrenches is always zero. When the robot is not moving, that is the inertial wrench is zero, we recognize the condition for static equilibrium: external contact wrenches compensate gravity. When the robot is moving, the condition generalizes to dynamic equilibrium: external contact wrenches compensate for both gravity and inertial effects.

To go further

My favorite introduction to humanoid equations of motion is Some comments on the structure of the dynamics of articulated motion by Pierre-Brice Wieber. I warmly recommend it.

The link between Newton-Euler equations, the gravito-inertial and contact wrenches is central to the derivation of wrench friction cones and their projection for reduced dynamic models (used e.g. for walking) such as ZMP support areas.

Pages of this website are under the CC-BY 4.0 license.