# team236/2026-robot architecture

> Architecture diagram of the GitHub repository team236/2026-robot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/team236/2026-robot
- Repository: https://github.com/team236/2026-robot

## Overview

This is a command-based FRC robot program. Driver/operator inputs and autonomous selection enter through RobotContainer, which binds commands to mechanisms; commands then operate drivetrain, fuel-handling, shooter, and climbing subsystems. The sampled code confirms teleop drive, hub targeting, PathPlanner configuration, and a coordinated shooting command. Other command families are represented from the source tree; their detailed wiring is not established by the excerpts.

Main entry points: [`src/main/java/frc/robot/RobotContainer.java`](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/RobotContainer.java) (Bindings and chooser), [`src/main/java/frc/robot/commands/FuelShooting/PIDShoot.java`](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/commands/FuelShooting/PIDShoot.java) (Coordinated shooting), [`src/main/java/frc/robot/subsystems/Swerve.java`](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Swerve.java) (Swerve drivetrain), [`src/main/java/frc/robot/commands/PreFeeder`](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/PreFeeder) (Pre-feeder commands)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_control["Robot control"]
  node_robot["Robot lifecycle<br/>[Robot.java]"]
  node_container["Bindings and chooser"]
end

subgraph group_drive["Drive and targeting"]
  node_teleop["Teleop drive<br/>[TeleopSwerve.java]"]
  node_targeting["Targeting commands"]
  node_swerve["Swerve drivetrain<br/>[Swerve.java]"]
  node_module["Swerve modules<br/>[SwerveModule.java]"]
  node_pathplanner["PathPlanner autos"]
end

subgraph group_fuel["Fuel handling"]
  node_shoot["Coordinated shooting<br/>[PIDShoot.java]"]
  node_intakecmd["Intake commands"]
  node_feedcmd["Pre-feeder commands"]
  node_floorcmd["Floor commands"]
  node_intake["Intake subsystem<br/>[Intake.java]"]
  node_prefeeder["Pre-feeder subsystem<br/>[PreFeeder.java]"]
  node_floor["Floor subsystem<br/>[Floor.java]"]
end

subgraph group_mechanisms["Shooter and climb"]
  node_pivotcmd["Pivot commands"]
  node_bincommands["Bin commands"]
  node_climbcmd["Climber commands"]
  node_pivot["Shooter pivot<br/>[ShooterPivot.java]"]
  node_roller["Main roller<br/>[MainRoller.java]"]
  node_bin["Bin release<br/>[BinRelease.java]"]
  node_climber["Climber<br/>[Climber.java]"]
end

node_driver(("Driver/operator"))
node_pathlib["PathPlanner"]
node_vision["Limelight camera"]

node_robot -->|"creates"| node_container
node_driver -->|"supplies controls"| node_container
node_container -->|"binds controls"| node_teleop
node_container -->|"binds commands"| node_targeting
node_container -->|"selects autonomous"| node_pathplanner
node_container -->|"binds shooting"| node_shoot
node_container -->|"binds commands"| node_intakecmd
node_container -->|"binds commands"| node_feedcmd
node_container -->|"binds commands"| node_floorcmd
node_container -->|"binds commands"| node_pivotcmd
node_container -->|"binds commands"| node_bincommands
node_container -->|"binds commands"| node_climbcmd
node_teleop -->|"drives"| node_swerve
node_targeting -->|"targets and drives"| node_swerve
node_swerve -->|"commands modules"| node_module
node_swerve -->|"configures paths"| node_pathlib
node_pathplanner -->|"runs autos"| node_pathlib
node_swerve -.->|"reads pose data"| node_vision
node_shoot -->|"controls speed"| node_roller
node_shoot -->|"feeds fuel"| node_prefeeder
node_shoot -->|"runs floor"| node_floorcmd
node_shoot -->|"runs intake"| node_intakecmd
node_shoot -->|"agitates bin"| node_bincommands
node_intakecmd -->|"controls intake"| node_intake
node_feedcmd -->|"controls feed"| node_prefeeder
node_feedcmd -->|"reads hub distance"| node_swerve
node_floorcmd -->|"controls floor"| node_floor
node_pivotcmd -->|"controls pivot"| node_pivot
node_bincommands -->|"controls bin"| node_bin
node_climbcmd -->|"controls climb"| node_climber

click node_robot "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/Robot.java"
click node_container "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/RobotContainer.java"
click node_teleop "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/commands/TeleopSwerve.java"
click node_targeting "https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/Targeting"
click node_swerve "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Swerve.java"
click node_module "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/SwerveModule.java"
click node_pathplanner "https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/PathPlanner"
click node_shoot "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/commands/FuelShooting/PIDShoot.java"
click node_intakecmd "https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/Intake"
click node_feedcmd "https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/PreFeeder"
click node_floorcmd "https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/Floor"
click node_intake "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Intake.java"
click node_prefeeder "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/PreFeeder.java"
click node_floor "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Floor.java"
click node_pivotcmd "https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/ShooterPivotCommands"
click node_bincommands "https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/BinRelease"
click node_climbcmd "https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/ClimberCommands"
click node_pivot "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/ShooterPivot.java"
click node_roller "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/MainRoller.java"
click node_bin "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/BinRelease.java"
click node_climber "https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Climber.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_robot,node_container toneBlue
class node_teleop,node_targeting,node_swerve,node_module,node_pathplanner toneAmber
class node_shoot,node_intakecmd,node_feedcmd,node_floorcmd,node_intake,node_prefeeder,node_floor toneMint
class node_pivotcmd,node_bincommands,node_climbcmd,node_pivot,node_roller,node_bin,node_climber toneRose
class node_driver,node_pathlib,node_vision toneIndigo
```

## Components

### Robot control

- [Robot lifecycle](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/Robot.java): `src/main/java/frc/robot/Robot.java`
- [Bindings and chooser](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/RobotContainer.java): `src/main/java/frc/robot/RobotContainer.java`

### Drive and targeting

- [Teleop drive](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/commands/TeleopSwerve.java): `src/main/java/frc/robot/commands/TeleopSwerve.java`
- [Targeting commands](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/Targeting): `src/main/java/frc/robot/commands/Targeting`
- [Swerve drivetrain](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Swerve.java): `src/main/java/frc/robot/subsystems/Swerve.java`
- [Swerve modules](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/SwerveModule.java): `src/main/java/frc/robot/SwerveModule.java`
- [PathPlanner autos](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/PathPlanner): `src/main/java/frc/robot/commands/PathPlanner`

### Fuel handling

- [Coordinated shooting](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/commands/FuelShooting/PIDShoot.java): `src/main/java/frc/robot/commands/FuelShooting/PIDShoot.java`
- [Intake commands](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/Intake): `src/main/java/frc/robot/commands/Intake`
- [Pre-feeder commands](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/PreFeeder): `src/main/java/frc/robot/commands/PreFeeder`
- [Floor commands](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/Floor): `src/main/java/frc/robot/commands/Floor`
- [Intake subsystem](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Intake.java): `src/main/java/frc/robot/subsystems/Intake.java`
- [Pre-feeder subsystem](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/PreFeeder.java): `src/main/java/frc/robot/subsystems/PreFeeder.java`
- [Floor subsystem](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Floor.java): `src/main/java/frc/robot/subsystems/Floor.java`

### Shooter and climb

- [Pivot commands](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/ShooterPivotCommands): `src/main/java/frc/robot/commands/ShooterPivotCommands`
- [Bin commands](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/BinRelease): `src/main/java/frc/robot/commands/BinRelease`
- [Climber commands](https://github.com/team236/2026-robot/tree/main/src/main/java/frc/robot/commands/ClimberCommands): `src/main/java/frc/robot/commands/ClimberCommands`
- [Shooter pivot](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/ShooterPivot.java): `src/main/java/frc/robot/subsystems/ShooterPivot.java`
- [Main roller](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/MainRoller.java): `src/main/java/frc/robot/subsystems/MainRoller.java`
- [Bin release](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/BinRelease.java): `src/main/java/frc/robot/subsystems/BinRelease.java`
- [Climber](https://github.com/team236/2026-robot/blob/main/src/main/java/frc/robot/subsystems/Climber.java): `src/main/java/frc/robot/subsystems/Climber.java`

### Other components

- **Driver/operator**
- **PathPlanner**
- **Limelight camera**

## Connections

- Robot lifecycle → Bindings and chooser: creates
- Driver/operator → Bindings and chooser: supplies controls
- Bindings and chooser → Teleop drive: binds controls
- Bindings and chooser → Targeting commands: binds commands
- Bindings and chooser → PathPlanner autos: selects autonomous
- Bindings and chooser → Coordinated shooting: binds shooting
- Bindings and chooser → Intake commands: binds commands
- Bindings and chooser → Pre-feeder commands: binds commands
- Bindings and chooser → Floor commands: binds commands
- Bindings and chooser → Pivot commands: binds commands
- Bindings and chooser → Bin commands: binds commands
- Bindings and chooser → Climber commands: binds commands
- Teleop drive → Swerve drivetrain: drives
- Targeting commands → Swerve drivetrain: targets and drives
- Swerve drivetrain → Swerve modules: commands modules
- Swerve drivetrain → PathPlanner: configures paths
- PathPlanner autos → PathPlanner: runs autos
- Swerve drivetrain → Limelight camera: reads pose data
- Coordinated shooting → Main roller: controls speed
- Coordinated shooting → Pre-feeder subsystem: feeds fuel
- Coordinated shooting → Floor commands: runs floor
- Coordinated shooting → Intake commands: runs intake
- Coordinated shooting → Bin commands: agitates bin
- Intake commands → Intake subsystem: controls intake
- Pre-feeder commands → Pre-feeder subsystem: controls feed
- Pre-feeder commands → Swerve drivetrain: reads hub distance
- Floor commands → Floor subsystem: controls floor
- Pivot commands → Shooter pivot: controls pivot
- Bin commands → Bin release: controls bin
- Climber commands → Climber: controls climb
