Embodied AI Glossary中文

Computed Torque Control

计算力矩控制CTCAdvanced

Using a dynamics model to compute the torque needed, canceling nonlinearities, then applying PD control on top.

Computed torque control is a classic model-based method for controlling arm motion, also called inverse dynamics control. Arm dynamics is written τ = M(q)q̈ + C(q,q̇)q̇ + g(q), where M is the mass matrix, the C term corresponds to Coriolis and centrifugal forces, and g is gravity. The control law is τ = M̂(q)(q̈_d + K_d·ė + K_p·e) + Ĉq̇ + ĝ, where q̈_d is the desired acceleration, e the error between desired and actual joint angle, and the hatted terms are model estimates. When the model is accurate, the nonlinear terms cancel out and the error satisfies ë + K_d·ė + K_p·e = 0 — each joint becomes an independent, linear, second-order system, with gains chosen for the desired response. It's a textbook application of feedback linearization to robotics. Compared to ‘PD plus gravity compensation,’ it also compensates inertia and Coriolis effects, tracking more accurately at high speed; the cost is dependence on accurate dynamic parameters, with degraded performance when the model is off — which led to adaptive and robust variants. The task-space counterpart is operational space control.

ExampleUsing Pinocchio's rnea (Recursive Newton-Euler Algorithm) function, passing the current q, q̇, and ‘desired acceleration plus PD correction term’ as the acceleration input computes, in a single call, exactly the joint torques computed torque control needs.

Also called
CTC, Inverse Dynamics Control
Related
Inverse Dynamics · Feedback Linearization · Feedforward Control · Gravity Compensation · Operational Space Control · Recursive Newton-Euler Algorithm
Sources
Wikipedia: Computed torque control
Pinocchio rnea.hpp(computes the inverse dynamics, aka the joint torques)

See it in the full glossary →