Skip to content

Code Map

πŸ—ΊοΈ Code Map

A Code Map is a one-page visual reference that shows every important file in the robot project and what it does. Use this as a quick-reference sheet when navigating the codebase.

Robot Project Structure

Browse the full project on GitHub: frc/robot/

frc/robot/
β”œβ”€β”€ Main.java β€” Entry point; starts the robot program
β”œβ”€β”€ Robot.java β€” Handles the robot lifecycle (init, periodic, teleop, auto)
β”œβ”€β”€ RobotContainer.java β€” Wires subsystems to controller buttons and selects autos
β”œβ”€β”€ Constants.java β€” Stores configuration values (CAN IDs, speeds, limits)
β”œβ”€β”€ LimelightHelpers.java β€” Utility methods for Limelight vision camera
β”œβ”€β”€ Telemetry.java β€” Sends data to the driver dashboard
β”œβ”€β”€ TrajectoryCalculations.java β€” Math for shooting trajectory
β”‚
β”œβ”€β”€ subsystems/
β”‚ β”œβ”€β”€ IntakeSubsystem.java β€” Picks up game pieces with rollers and deploy mechanism
β”‚ β”œβ”€β”€ ShooterSubsystem.java β€” Launches notes with dual flywheels, feeder, and hood
β”‚ β”œβ”€β”€ TurretSubsystem.java β€” Rotates the shooter left/right to aim
β”‚ β”œβ”€β”€ ClimberSubsystem.java β€” Handles endgame climbing with elevator and servos
β”‚ └── CommandSwerveDrivetrain.java β€” Swerve drive for omnidirectional movement
β”‚
β”œβ”€β”€ commands/
β”‚ └── AutoShootCommand.java β€” Coordinates turret aiming, spin-up, and note feeding
β”‚
└── generated/
└── TunerConstants.java β€” Auto-generated swerve config from CTRE Tuner X (read-only!)

Core Files

FileRole
Main.javaEntry point β€” calls RobotBase.startRobot() to launch the robot program
Robot.javaManages the robot lifecycle: robotInit, teleopPeriodic, autonomousInit, etc.
RobotContainer.javaCreates subsystems, binds controller buttons to commands, selects autonomous routines
Constants.javaCentral location for configuration values: CAN IDs, motor speeds, and limits

Subsystems

SubsystemFileWhat It Controls
IntakeSubsystemIntakeSubsystem.javaPicks up game pieces from the ground using rollers and a deploy mechanism
ShooterSubsystemShooterSubsystem.javaLaunches notes using dual flywheels, a feeder, indexer, and adjustable hood
TurretSubsystemTurretSubsystem.javaRotates the shooter left/right to aim at the hub
ClimberSubsystemClimberSubsystem.javaHandles endgame climbing with elevator and servos
CommandSwerveDrivetrainCommandSwerveDrivetrain.javaSwerve drive system for omnidirectional movement

Commands

CommandFileWhat It Does
AutoShootCommandAutoShootCommand.javaCoordinates turret aiming, flywheel spin-up, and note feeding

✏️ Your Task

Print or copy this page and keep it next to your computer as a quick reference. When you need to find a file, check the map first!