PID control is one of the most important ideas in control engineering. Even though modern self-driving systems use many advanced models, PID is still a valuable tool because it is simple, interpretable, and effective for many feedback problems.
What PID Means
PID stands for Proportional, Integral, and Derivative. These three terms work together to reduce the error between a target value and the current value.
- P reacts to the current error.
- I reacts to accumulated past error.
- D reacts to the rate of change of the error.
A Driving Example
Imagine a vehicle that should stay at the center of the lane. The lateral distance from the lane center is called the cross-track error.
A very simple steering rule can be written like this:
steering = -Kp * error - Ki * sum(error) - Kd * delta(error)
If the car drifts to the right, the error becomes positive and the controller applies a steering correction to bring it back.
Why Each Term Matters
- Proportional gives immediate correction, but too much gain can cause oscillation.
- Integral helps remove steady-state bias, for example when the car consistently stays slightly off-center.
- Derivative damps fast changes and can reduce overshoot.
A Simple Python Example
Kp, Ki, Kd = 0.2, 0.01, 1.5
integral = 0.0
previous_error = 0.0
def pid_step(error, dt):
global integral, previous_error
integral += error * dt
derivative = (error - previous_error) / dt
previous_error = error
return -(Kp * error + Ki * integral + Kd * derivative)
Tuning Tips
- Start with
Kponly and increase it slowly. - Add
Kdif the system oscillates too much. - Add a small
Kionly if steady-state error remains. - Test with realistic noise and changing speed, not only ideal conditions.
Final Thoughts
PID control is not the whole story in autonomous driving, but it is still one of the best places to learn feedback control. It gives you intuition that will help later with more advanced controllers such as MPC.