Hood Subsystem Functional Specification
Core Hood Functionality
Absolute encoder or potentiometer to track hood position.
Motor or servo to drive the hood.
Configure (idle mode, current limits).
Configure gear ratio.
If servo take in argument from constructor?
Limit switch. Lower limit/home position.
Speed controls:
Set-points. Via tunable PID. (Rotations at a minimum ideally real units).
Manual operation.
Pass constants object into constructor.
Logging via AdvantageKit.
Method to check if hood is at a setpoint. onTarget.
Bonus Hood Functions
Easy Bonus
Motion Profiling (CTRE/Phoenix6 Motion Magic). MaxVelocity & MaxAcceleration.
PID basic control. SVA (Static Friction, Velocity, Acceleration) or GVA (Gravity, Velocity, Acceleration) FeedForward Control Loop
Optional HW limits. Enable / Disable this functionality.
Redundant limit switches (2 on top, 2 on bottom).
Switch from Brake to Coast on disable and vise versa.
Hard Bonus
Java Units Classes (Distance, Angle, Velocity, Etc.).
Simulation of subsystem.
Integration with SysID. Characterizes motor performance.