Newton-Euler Dynamics

March 22, 2026 · View on GitHub

Overview & Motivation

The Newton-Euler formulation describes the dynamics of a single rigid body by directly applying Newton's second law for translational motion and Euler's equation for rotational motion. Unlike the Euler-Lagrange approach which works in generalized (joint-space) coordinates, Newton-Euler operates in Cartesian space, computing forces and torques on individual bodies.

In the body-fixed reference frame, the equations are:

F=m(v˙+ω×v)F = m(\dot{v} + \omega \times v) τ=Iω˙+ω×(Iω)\tau = I\dot{\omega} + \omega \times (I\omega)

Where:

  • FR3F \in \mathbb{R}^3 — applied force in the body frame
  • τR3\tau \in \mathbb{R}^3 — applied torque in the body frame
  • mm — body mass (scalar)
  • IR3×3I \in \mathbb{R}^{3 \times 3} — inertia tensor in the body frame
  • v,v˙R3v, \dot{v} \in \mathbb{R}^3 — linear velocity and acceleration in the body frame
  • ω,ω˙R3\omega, \dot{\omega} \in \mathbb{R}^3 — angular velocity and acceleration in the body frame
  • ω×v\omega \times v — Coriolis term due to body-frame formulation
  • ω×(Iω)\omega \times (I\omega) — gyroscopic coupling term

This supports two computations:

  • Forward dynamics: given forces/torques, compute linear and angular accelerations
  • Inverse dynamics: given desired accelerations, compute required forces/torques

Mathematical Theory

Newton's Second Law (Translation)

In an inertial frame, Newton's second law is simply F=maF = ma. In a body-fixed (rotating) frame, the transport theorem introduces an additional term:

F=m(v˙+ω×v)F = m(\dot{v} + \omega \times v)

The ω×v\omega \times v term is the Coriolis acceleration that arises because the reference frame itself is rotating.

Forward: v˙=F/mω×v\dot{v} = F/m - \omega \times v

Inverse: F=m(v˙+ω×v)F = m(\dot{v} + \omega \times v)

Euler's Equation (Rotation)

Euler's equation governs rotational dynamics:

τ=Iω˙+ω×(Iω)\tau = I\dot{\omega} + \omega \times (I\omega)

The ω×(Iω)\omega \times (I\omega) term is the gyroscopic torque — it couples different rotational axes when the inertia tensor is non-spherical. For a body spinning about a non-principal axis, this term causes precession even without external torque.

Forward: ω˙=I1(τω×(Iω))\dot{\omega} = I^{-1}(\tau - \omega \times (I\omega))

This requires solving the $3 \times 3linearsystemlinear systemI\dot{\omega} = \tau - \omega \times (I\omega)$ via Gaussian elimination.

Inverse: τ=Iω˙+ω×(Iω)\tau = I\dot{\omega} + \omega \times (I\omega)

This is a direct matrix-vector multiply plus cross product — no linear solve needed.

Properties of the Inertia Tensor

The inertia tensor II is:

  • Symmetric: I=ITI = I^T (6 independent components, not 9)
  • Positive definite: ωTIω>0\omega^T I \omega > 0 for ω0\omega \neq 0
  • Constant in body frame: For a rigid body, II does not change with the body's orientation when expressed in the body frame

When II is diagonal (principal axes frame), components are the principal moments of inertia Ixx,Iyy,IzzI_{xx}, I_{yy}, I_{zz}, and Euler's equation simplifies to the well-known form:

τx=Ixxω˙x+(IzzIyy)ωyωz\tau_x = I_{xx}\dot{\omega}_x + (I_{zz} - I_{yy})\omega_y\omega_z τy=Iyyω˙y+(IxxIzz)ωzωx\tau_y = I_{yy}\dot{\omega}_y + (I_{xx} - I_{zz})\omega_z\omega_x τz=Izzω˙z+(IyyIxx)ωxωy\tau_z = I_{zz}\dot{\omega}_z + (I_{yy} - I_{xx})\omega_x\omega_y

Complexity Analysis

OperationTimeSpaceNotes
Forward dynamicsO(1)O(1)O(1)O(1)Fixed 3×3 system; Gaussian elimination on 3×3 matrix
Inverse dynamicsO(1)O(1)O(1)O(1)Matrix-vector multiply + cross products
Cross productO(1)O(1)O(1)O(1)6 multiplications and 3 subtractions

All operations are constant-time since the spatial dimension is fixed at 3. The $3 \times 3$ Gaussian elimination is effectively a small constant cost.

Step-by-Step Walkthrough

Example: Uniform Sphere

Parameters: mass m=2kgm = 2\,\text{kg}, radius r=0.5mr = 0.5\,\text{m}

Inertia tensor: I=25mr2I3=0.2I3I = \frac{2}{5}mr^2 \cdot \mathbf{I}_3 = 0.2 \cdot \mathbf{I}_3

Forward dynamics with F=[6,0,0]TNF = [6, 0, 0]^T\,\text{N}, τ=[0,0,1]TN⋅m\tau = [0, 0, 1]^T\,\text{N·m}, v=ω=0v = \omega = 0:

v˙=F/m0=[3,0,0]Tm/s2\dot{v} = F/m - 0 = [3, 0, 0]^T \,\text{m/s}^2 ω˙=I1τ=[0,0,5]Trad/s2\dot{\omega} = I^{-1}\tau = [0, 0, 5]^T \,\text{rad/s}^2

Example: Gyroscopic Precession

Asymmetric body with I=diag(1,2,3)kg⋅m2I = \text{diag}(1, 2, 3)\,\text{kg·m}^2

Spinning at ω=[1,1,0]Trad/s\omega = [1, 1, 0]^T\,\text{rad/s} with no external torque:

Iω=[1,2,0]TI\omega = [1, 2, 0]^T ω×(Iω)=[1,1,0]×[1,2,0]=[0,0,1]T\omega \times (I\omega) = [1,1,0] \times [1,2,0] = [0, 0, 1]^T ω˙=I1(0[0,0,1])=[0,0,13]Trad/s2\dot{\omega} = I^{-1}(0 - [0,0,1]) = [0, 0, -\tfrac{1}{3}]^T \,\text{rad/s}^2

The body accelerates about the z-axis despite no external torque — this is the gyroscopic coupling effect due to asymmetric inertia.

Pitfalls & Edge Cases

  • Singular inertia: An inertia tensor must be positive definite. Zero or negative eigenvalues indicate a non-physical body definition.
  • Body-frame vs. inertial frame: The equations assume all quantities (forces, torques, velocities) are expressed in the body-fixed frame. Users must transform between frames externally.
  • Spherical inertia: When I=cI3I = c \cdot \mathbf{I}_3, the gyroscopic term ω×(Iω)=c(ω×ω)=0\omega \times (I\omega) = c(\omega \times \omega) = 0, simplifying Euler's equation to τ=Iω˙\tau = I\dot{\omega}.
  • Fixed-point arithmetic: Like Euler-Lagrange, Newton-Euler involves physical quantities (forces in Newtons, torques in N·m) that typically exceed Q15/Q31 range. Use float.
  • Energy conservation: For torque-free motion, kinetic energy T=12ωTIωT = \frac{1}{2}\omega^T I \omega and angular momentum L=IωL = I\omega magnitude should be conserved. Numerical integration may violate this.

Variants & Generalizations

VariantKey DifferenceUse Case
Newton-Euler (this)Single rigid body, Cartesian spaceSpacecraft attitude, single-body simulation
Recursive Newton-Euler (RNEA)Multi-body recursive algorithm, O(n)O(n)Robot inverse dynamics, real-time control
Euler-LagrangeGeneralized coordinates, joint spaceControl design, analytical derivations
Spatial vector algebra6D twist/wrench representationCompact multi-body formulations

Applications

  • Spacecraft attitude control: Reaction wheel and thruster control using Euler's equations
  • Drone / UAV dynamics: Quadrotor translational and rotational dynamics
  • Projectile dynamics: Spinning projectile with aerodynamic forces
  • Gyroscope modeling: Precession and nutation analysis
  • Foundation for RNEA: Body-level Newton-Euler equations form the building block for recursive multi-body algorithms

Connections to Other Algorithms

  • Gaussian Elimination (GaussianElimination.md): Used to solve the $3 \times 3inertiasysteminertia systemI\dot{\omega} = \tau_{net}$ in forward dynamics
  • Euler-Lagrange (EulerLagrange.md): Joint-space counterpart; Euler-Lagrange derives the same dynamics from energy principles in generalized coordinates
  • Recursive Newton-Euler (RNEA): Extends single-body Newton-Euler to kinematic chains by propagating velocities/accelerations forward and forces/torques backward through the chain

References & Further Reading

  • Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer. Chapter 7.
  • Goldstein, H., Poole, C., & Safko, J. (2002). Classical Mechanics (3rd ed.). Chapters 4–5.
  • Hughes, P. C. (1986). Spacecraft Attitude Dynamics. Dover Publications.
  • Featherstone, R. (2008). Rigid Body Dynamics Algorithms. Springer. Chapter 2.