Composite Rigid Body Algorithm
复合刚体算法CRBAAdvancedAn algorithm that efficiently computes the mass matrix by merging each joint's outboard links into one composite rigid body.
The composite rigid body algorithm is a recursive method for computing the joint-space mass matrix M(q), which describes the inertial relationship between joint accelerations and the joint torques needed to produce them; it's generally traced back to a 1982 paper by Walker and Orin. The core idea: for joint i, treat every link outboard of it as if locked together into a single composite rigid body — the inertia of that composite body directly gives the entries of M associated with that joint, and the composite inertias can be accumulated stage by stage from the tip back to the root. Once M is known, the recursive Newton-Euler algorithm supplies the Coriolis, centrifugal, and gravity terms c, and solving M·q̈ = τ − c completes the forward-dynamics calculation. CRBA and the articulated body algorithm are the two common routes to forward dynamics.
ExampleMuJoCo uses the CRB algorithm at every simulation step to get the joint-space mass matrix M, uses the RNE algorithm (with acceleration set to zero) to get the bias force made up of Coriolis, centrifugal, and gravity terms, and then solves for acceleration together with the constraints; Pinocchio's corresponding function is crba.
- Also called
- CRBA, Composite-Rigid-Body Algorithm
- Related
- Mass Matrix · Articulated Body Algorithm · Recursive Newton-Euler Algorithm · Forward Dynamics · Kinematic Tree · MuJoCo (Multi-Joint dynamics with Contact)
- Sources
- MuJoCo 文档: Computation (Chinese)
Walker & Orin: Efficient Dynamic Computer Simulation of Robotic Mechanisms (1982)
Pinocchio 项目主页(CRBA 等算法列表) (Chinese)