Articulated Body Algorithm
铰接体算法ABAAdvancedAn O(n) recursive algorithm that computes joint accelerations from joint torques — the classic solution to forward dynamics.
The Articulated Body Algorithm (ABA) was introduced by Roy Featherstone in a 1983 IJRR paper, and is also known simply as Featherstone's algorithm. It solves the forward dynamics problem: given the joint angles, joint velocities, and joint torques, find the joint accelerations. ABA introduces the idea of 'articulated-body inertia' — the effective inertia that a link, together with every link outboard of it, exhibits as a single jointed unit. The algorithm sweeps the kinematic chain three times: outward from the root to compute velocities, inward to accumulate articulated-body inertias, and outward again to compute accelerations, so the total cost grows only linearly with the number of joints n. Rigid-body dynamics libraries such as Pinocchio all implement it.
ExampleSimulating each timestep of a 7-axis robot arm: given the current joint angles, velocities, and motor torques, call ABA (for example, Pinocchio's aba function) to get the joint accelerations, then numerically integrate to obtain the state at the next timestep.
- Also called
- ABA, Featherstone's Algorithm, Featherstone Algorithm
- Related
- Forward Dynamics · Composite Rigid Body Algorithm · Recursive Newton-Euler Algorithm · Spatial Vector Algebra · Mass Matrix · Physics Engine
- Sources
- Featherstone: The Calculation of Robot Dynamics Using Articulated-Body Inertias (IJRR, 1983)
Wikipedia: Featherstone's algorithm
Pinocchio GitHub README