06 / PID and Feedforward
Feedforward and PIDF
Add known model terms so PID does less work.
06 / PID and Feedforward
Add known model terms so PID does less work.
You will
This lesson is about feedback and prediction. Students should understand target, measurement, error, output, and the difference between reacting to error with PID and predicting required effort with feedforward.
PID reacts to error after it appears. Feedforward estimates the power needed for desired motion before the mechanism falls behind. Road Runner tuning uses this idea through kS, kV, and kA.
kS overcomes static friction, kV maps desired velocity to voltage, and kA maps desired acceleration to extra voltage. Students should connect these to robot behavior, not memorize them as mystery constants.
Begin with a safe, slow, observable mechanism. Graph target, actual value, error, and output. Tune one idea at a time: proportional response first, damping second, feedforward when the team can describe the physical effort the mechanism needs.
For this specific lesson, students should first restate the goal in robot terms, then identify the value or behavior they expect to observe, then run the smallest test that proves the idea. The lesson should feel like a guided lab: predict, run, observe, explain, and only then extend.
PIDFOutput.java · Java
double feedback = kP * error + kD * derivative;
double feedforward = kS * Math.signum(targetVelocity)
+ kV * targetVelocity
+ kA * targetAcceleration;
double output = feedback + feedforward;
motor.setPower(Math.max(-1.0, Math.min(1.0, output)));Control bugs come from both code and physics. A bad encoder sign, sticky mechanism, saturated output, or impossible target can look like a tuning problem. The lesson should teach students to inspect measurements and constraints before increasing gains.
Check your understanding
Which term helps overcome static friction?
0 of 1 answered
References
Finished reading?
You'll move on to “Dashboard Tuning Workflow” next.