Structure
Superstructure.java
Superstructure.java
Located in the subsystems
folder, this class is the central coordinator for our robot’s major mechanisms. It takes a SuperStructureState
, a desired overall robot configuration, and computes the necessary actions to get the robot there.
Think of
Superstructure
as the brain that sequences transitions between high level robot states (e.g., “intake game piece,” “score at high node”).The driver/operator sends a high-level request → Superstructure figures out the transition path → It delegates actions to the appropriate subsystems.
In 2025 we structured this file differently than we do now but the idea is this same, take high level robot actions and choreograph the subsystems
Subsystems Breakdown
Each subsystem has its own subfolder in subsystems/
. These typically contain:
IO Control, Servo/Roller Subsystem children
Constants specific to that subsystem
A state machine or state enum to represent its mode of operation
Consider Where to Put the Complexity
We’ve structured the intake
subsystem to better match how it’s actually used on the robot:
Originally, the intake rollers and the intake deployment mechanism were controlled independently.
However, we realized their behavior is strongly coupled—it made little sense to allow fine-grained control of each part.
This change reduces complexity in
Superstructure
, since it no longer needs to micromanage the intake's subcomponents.Now, a single
IntakeState
encapsulates both roller and deploy behavior.
This design makes the overall system simpler and more reliable, as each subsystem behaves predictably and in sync with the others.
Workflow
Driver/Operator Input
↓
Superstructure receives desired state
↓
Finds sequence to reach that state
↓
Commands individual subsystems
↓
Subsystems change behavior accordingly
Last updated