Structure

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.


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