# piece-of-mind-8175-emek-yizrael/robot2026 architecture

> Architecture diagram of the GitHub repository piece-of-mind-8175-emek-yizrael/robot2026, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/piece-of-mind-8175-emek-yizrael/robot2026
- Repository: https://github.com/piece-of-mind-8175-emek-yizrael/robot2026

## Overview

This repository is a WPILib command-based FRC robot program, with a second mirrored Java project tree. The visible workflow starts the robot runtime, builds a container for operator inputs and autonomous selection, and lets the robot lifecycle schedule commands. The source excerpts show controller adaptation, Talon FX wrappers, logging setup, and simulation hooks, but no implemented drive or game-piece commands. Other helpers and hardware abstractions are included as capabilities; their runtime wiring is not established by the sampled code.

Main entry points: [`src/main/java/frc/robot/RobotContainer.java`](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/RobotContainer.java) (Robot container), [`src/main/java/frc/robot/Robot.java`](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/Robot.java) (Robot lifecycle), [`src/main/java/frc/robot/POM_lib/Joysticks/PomXboxController.java`](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Joysticks/PomXboxController.java) (Xbox adapter), [`src/main/java/frc/robot/Constants.java`](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/Constants.java) (Robot constants)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Robot runtime"]
  node_entry["Program entry<br/>[Main.java]"]
  node_robot["Robot lifecycle<br/>[Robot.java]"]
  node_container["Robot container"]
  node_constants["Robot constants<br/>[Constants.java]"]
  node_autochooser["Autonomous chooser"]
end

subgraph group_controls["Operator controls"]
  node_pomxbox["Xbox adapter"]
  node_controllerapi["Controller interface<br/>[PomController.java]"]
  node_joystickconstants["Joystick mappings"]
end

subgraph group_hardware["Hardware helpers"]
  node_motorapi["Motor abstraction<br/>[POMMotor.java]"]
  node_talon["Talon FX wrapper<br/>[POMTalonFX.java]"]
  node_spark["Spark Max wrapper<br/>[POMSparkMax.java]"]
  node_digitalinput["Digital input"]
  node_limelight["Limelight helpers"]
  node_phoenixutil["Phoenix utilities<br/>[PhoenixUtil.java]"]
  node_sparkutil["Spark utilities<br/>[SparkUtil.java]"]
  node_pathfinding["AD* pathfinding<br/>[LocalADStarAK.java]"]
end

subgraph group_observability["Simulation and telemetry"]
  node_dashboardnumber["Dashboard numbers"]
  node_logger["AdvantageKit logging"]
  node_arena["Simulation arena"]
  node_simdrive["Drive simulation"]
end

node_scheduler["Command scheduler"]
node_driver["Driver controller"]
node_operator["Operator controller"]

node_entry -->|"starts"| node_robot
node_robot -->|"constructs"| node_container
node_robot -->|"runs"| node_scheduler
node_robot -->|"requests autonomous"| node_container
node_robot -->|"schedules command"| node_scheduler
node_robot -->|"selects mode"| node_constants
node_container -->|"selects mode"| node_constants
node_container -->|"initializes"| node_operator
node_container -->|"constructs"| node_pomxbox
node_container -->|"creates"| node_autochooser
node_autochooser -->|"provides command"| node_container
node_pomxbox -->|"uses mappings"| node_joystickconstants
node_pomxbox -->|"implements"| node_controllerapi
node_container -->|"registers simulation"| node_arena
node_container -->|"reads simulated pose"| node_simdrive
node_container -->|"reads game pieces"| node_arena
node_container -->|"records simulation"| node_logger
node_robot -->|"configures logging"| node_logger
node_motorapi -->|"implemented by"| node_talon

click node_entry "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/Main.java"
click node_robot "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/Robot.java"
click node_container "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/RobotContainer.java"
click node_constants "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/Constants.java"
click node_pomxbox "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Joysticks/PomXboxController.java"
click node_controllerapi "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Joysticks/PomController.java"
click node_joystickconstants "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Joysticks/JoystickConstants.java"
click node_autochooser "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/RobotContainer.java"
click node_motorapi "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Motors/POMMotor.java"
click node_talon "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Motors/POMTalonFX.java"
click node_spark "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Motors/POMSparkMax.java"
click node_digitalinput "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/sensors/POMDigitalInput.java"
click node_limelight "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/LimelightHelpers.java"
click node_phoenixutil "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/util/PhoenixUtil.java"
click node_sparkutil "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/util/SparkUtil.java"
click node_pathfinding "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/util/LocalADStarAK.java"
click node_dashboardnumber "https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Dashboard/DashboardNumber.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_entry,node_robot,node_container,node_constants,node_autochooser toneBlue
class node_pomxbox,node_controllerapi,node_joystickconstants toneAmber
class node_motorapi,node_talon,node_spark,node_digitalinput,node_limelight,node_phoenixutil,node_sparkutil,node_pathfinding toneMint
class node_dashboardnumber,node_logger,node_arena,node_simdrive,node_scheduler toneRose
class node_driver,node_operator toneIndigo
```

## Components

### Robot runtime

- [Program entry](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/Main.java): `src/main/java/frc/robot/Main.java`
- [Robot lifecycle](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/Robot.java): `src/main/java/frc/robot/Robot.java`
- [Robot container](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/RobotContainer.java): `src/main/java/frc/robot/RobotContainer.java`
- [Robot constants](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/Constants.java): `src/main/java/frc/robot/Constants.java`
- [Autonomous chooser](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/RobotContainer.java): `src/main/java/frc/robot/RobotContainer.java`

### Operator controls

- [Xbox adapter](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Joysticks/PomXboxController.java): `src/main/java/frc/robot/POM_lib/Joysticks/PomXboxController.java`
- [Controller interface](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Joysticks/PomController.java): `src/main/java/frc/robot/POM_lib/Joysticks/PomController.java`
- [Joystick mappings](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Joysticks/JoystickConstants.java): `src/main/java/frc/robot/POM_lib/Joysticks/JoystickConstants.java`

### Hardware helpers

- [Motor abstraction](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Motors/POMMotor.java): `src/main/java/frc/robot/POM_lib/Motors/POMMotor.java`
- [Talon FX wrapper](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Motors/POMTalonFX.java): `src/main/java/frc/robot/POM_lib/Motors/POMTalonFX.java`
- [Spark Max wrapper](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Motors/POMSparkMax.java): `src/main/java/frc/robot/POM_lib/Motors/POMSparkMax.java`
- [Digital input](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/sensors/POMDigitalInput.java): `src/main/java/frc/robot/POM_lib/sensors/POMDigitalInput.java`
- [Limelight helpers](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/LimelightHelpers.java): `src/main/java/frc/robot/POM_lib/LimelightHelpers.java`
- [Phoenix utilities](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/util/PhoenixUtil.java): `src/main/java/frc/robot/util/PhoenixUtil.java`
- [Spark utilities](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/util/SparkUtil.java): `src/main/java/frc/robot/util/SparkUtil.java`
- [AD* pathfinding](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/util/LocalADStarAK.java): `src/main/java/frc/robot/util/LocalADStarAK.java`

### Simulation and telemetry

- [Dashboard numbers](https://github.com/piece-of-mind-8175-emek-yizrael/robot2026/blob/main/src/main/java/frc/robot/POM_lib/Dashboard/DashboardNumber.java): `src/main/java/frc/robot/POM_lib/Dashboard/DashboardNumber.java`
- **AdvantageKit logging**
- **Simulation arena**
- **Drive simulation**

### Other components

- **Command scheduler**
- **Driver controller**
- **Operator controller**

## Connections

- Program entry → Robot lifecycle: starts (evidence: `src/main/java/frc/robot/Main.java`)
- Robot lifecycle → Robot container: constructs (evidence: `src/main/java/frc/robot/Robot.java`)
- Robot lifecycle → Command scheduler: runs (evidence: `src/main/java/frc/robot/Robot.java`)
- Robot lifecycle → Robot container: requests autonomous (evidence: `src/main/java/frc/robot/Robot.java`)
- Robot lifecycle → Command scheduler: schedules command (evidence: `src/main/java/frc/robot/Robot.java`)
- Robot lifecycle → Robot constants: selects mode (evidence: `src/main/java/frc/robot/Robot.java`)
- Robot container → Robot constants: selects mode (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Robot container → Operator controller: initializes (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Robot container → Xbox adapter: constructs (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Robot container → Autonomous chooser: creates (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Autonomous chooser → Robot container: provides command (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Xbox adapter → Joystick mappings: uses mappings (evidence: `src/main/java/frc/robot/POM_lib/Joysticks/PomXboxController.java`)
- Xbox adapter → Controller interface: implements (evidence: `src/main/java/frc/robot/POM_lib/Joysticks/PomController.java`)
- Robot container → Simulation arena: registers simulation (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Robot container → Drive simulation: reads simulated pose (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Robot container → Simulation arena: reads game pieces (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Robot container → AdvantageKit logging: records simulation (evidence: `src/main/java/frc/robot/RobotContainer.java`)
- Robot lifecycle → AdvantageKit logging: configures logging (evidence: `src/main/java/frc/robot/Robot.java`)
- Motor abstraction → Talon FX wrapper: implemented by (evidence: `src/main/java/frc/robot/POM_lib/Motors/POMTalonFX.java`)
