Flywheel Subsystem Functional Specification
Core Flywheel Functionality
Encoder to measure flywheel velocity. Relative encoder.
Motor(s) to spin the flywheel.
Configure (idle mode, current limits).
Configure gear ratio.
Speed controls:
Set-points. Via tunable PID & Feedforward.
Manual operation.
Pass constants object into constructor
Logging via AdvantageKit.
Method to check if arm is at a setpoint. onTarget.
Bonus Flywheel Functions
Easy Bonus
Support for single or dual motors.
Support for external encoder REV through-bore or CTRE CANCoder.
PID basic control. SVA (Static Friction, Velocity, Acceleration) FeedForward Control Loop
Filtering of velocity feedback. LinearFilter (WPI)
Setup Setpoints to use Enum or data class. This reduces the risk of typos or “mystery constants/doubles” in code.
Hard Bonus
Java Units Classes (Distance, Angle, Velocity, Etc.).
Simulation of subsystem.
Integration with SysID.