The Definitive FRC Team 937 Guide to PID
WORK IN PROGRESS: How To PID
THIS IS A WORK IN PROGRESS. ANYTHING AND EVERYTHING IT CURRENTLY SAYS COULD BE WRONG. WE WILL UPDATE IT AS WE LEARN MORE.
We're hoping to learn more about PID over the next year or so. As we do, this guide will grow and mature. For now, here's a bunch of links that help explain How To PID.
PID control is really complicated, but at a basic level it's a form of closed-loop control, so it uses a feedback sensor (for our purposes, almost always an encoder) to quickly and efficiently move to and maintain a set velocity or position, known as the setpoint. It uses a number of gains, namely Proportional gain, Integral gain, Derivative gain, and nowadays usually a feedforward. This is where the name PID comes from - Proportional, Integral, and Derivative.
This explains the basic concept behind a PID controller:
WPILib documentation for PID:
A little more basic-overview type stuff about PID control on FRC bots:
A Chief Delphi post that discusses velocity tuning with Talon SRXs:
A Chief Delphi post that discusses position tuning with Talon SRXs:
Information about tuning velocity PID on a SPARK MAX, specifically for a shooter:
Information about how to tune a flywheel such that it will change speed based off of the distance from the target reported by the Limelight (our computer vision camera), as opposed to running the flywheel at a set speed and physically moving the bot.
A lovely Github project made by Team 2930 Sonic Squirrels that makes it easy to tune a PID loop for a shooter:
Last updated