Robot control

Articulated-body algorithm

Definition

The articulated-body algorithm computes forward dynamics recursively by propagating articulated inertias and forces inward through a kinematic tree, then accelerations outward. It finds joint accelerations from state, applied effort, and external loads without explicitly inverting a dense whole-robot mass matrix.

Also known as: ABA

Updated

Forward dynamics asks for joint accelerations given position, velocity, applied joint force or torque, and external loads. The articulated-body algorithm treats a link and everything beyond its parent joint as an articulated body whose effective inertia and bias force can be passed towards the base.

An inward recursion accumulates those quantities from the leaves of a kinematic tree. An outward recursion then computes the base and joint accelerations. Featherstone's reference implementation and documentation expose this as FDab for fixed-base trees and use the same algorithmic family for floating-base and hybrid dynamics.

Complement inverse-dynamics recursion

The recursive Newton-Euler algorithm maps a requested acceleration to joint effort. ABA performs the opposite mapping without constructing and numerically inverting the full joint-space inertia matrix. Both are recursive rigid-body algorithms and are often implemented with spatial vector algebra.

Physics simulation, model-based control, trajectory optimisation, and reinforcement-learning environments can call ABA repeatedly to advance a tree-structured robot. A floating-base robot requires an appropriate free-base formulation and consistent treatment of gravity, frames, and external wrenches.

Contacts and model errors remain outside the basic pass

The basic algorithm assumes a kinematic tree with known rigid-body inertias and joint models. Closed loops need constraints or a different formulation. Rigid multi-contact also adds contact forces and complementarity or constraint equations that a free forward-dynamics pass does not decide by itself.

Incorrect mass, centre-of-mass, friction, compliance, actuator, or external-load parameters produce incorrect accelerations. ABA improves how the model equations are evaluated; it does not make the model accurate, guarantee numerical stability for every time integrator, or enforce actuator and contact limits.

Sources