Proportional-Derivative Control
PD 控制PDEssentialFeedback control based on how large an error is and how fast it's changing — PID with the integral term dropped.
PD control is PID control with the integral term removed. PID's output is u = Kp·e + Ki·∫e + Kd·de/dt, where e is the difference between the target and the measured value, and Kp, Ki, Kd are three gains; PD keeps only the proportional term (output grows with the error) and the derivative term (output responds to how fast the error is changing, which damps overshoot and oscillation). On a robot joint it's commonly written τ = Kp(q* − q) − Kd·q̇: τ is motor torque, q* is the target angle, q and q̇ are the measured angle and angular velocity, and Kp, Kd mechanically behave like a spring stiffness and a damping coefficient. Dropping the integral term leaves a steady-state error — a joint under gravity, for instance, settles slightly short of its target — which has to be offset with gravity compensation or by the higher-level policy; the derivative term is also sensitive to noise, so the velocity signal often needs filtering. It's the most common low-level joint controller used when deploying reinforcement-learning locomotion policies and VLA models.
Examplelegged_gym multiplies the policy's output by 0.5 and adds it to the default joint angles to get q*, then computes torque as τ = Kp(q* − q) − Kd·q̇; example configs use Kp around 10–15 N·m/rad and Kd around 1–1.5 N·m·s/rad.
- Also called
- PD Control, PD Controller
- Related
- Proportional-Integral-Derivative Control · Stiffness and Damping Gains · Position Control · Gravity Compensation · MIT Mode · Control Decimation
- Sources
- Wikipedia: Proportional–integral–derivative controller
legged_gym: legged_robot.py(_compute_torques)
legged_gym: legged_robot_config.py(PD Drive parameters)