Skip to content

Glossary

📖 Beginner Glossary

This glossary covers the key terms you need to know when reading FRC robot code. Use it as a quick reference while working through lessons and units.

#TermDefinition
1SubsystemA Java class extending SubsystemBase that represents a physical robot mechanism. Each subsystem controls specific hardware (motors, sensors). Examples in our project: IntakeSubsystem, ShooterSubsystem, TurretSubsystem, ClimberSubsystem, CommandSwerveDrivetrain.
2CommandA Java class or inline definition that describes a specific robot behavior. Commands use one or more subsystems to perform actions. Example: AutoShootCommand coordinates aiming and shooting.
3CommandSchedulerThe WPILib engine that manages which commands are running each loop cycle. It checks triggers, starts/stops commands, and calls subsystem periodic() methods automatically.
4TriggerA condition (usually a button press) that causes a command to start, stop, or toggle. Configured in RobotContainer.java using methods like .onTrue(), .toggleOnTrue(), and .whileTrue().
5Default CommandA command that runs on a subsystem whenever no other command is using that subsystem. Set with subsystem.setDefaultCommand(...). The drive command is a common default command.
6PeriodicA method that runs repeatedly every ~20 ms (50 times per second) during a specific robot mode. Examples: teleopPeriodic(), autonomousPeriodic(). The CommandScheduler runs inside the periodic loop.
7TeleopThe driver-controlled period of an FRC match (typically 2 minutes 15 seconds). During teleop, the driver uses controllers to operate the robot through button bindings and joystick inputs.
8AutonomousThe first 15 seconds of an FRC match where the robot operates without driver input. The robot follows pre-programmed routines (often using PathPlanner paths) selected in RobotContainer.java.
9ConstantsFixed configuration values stored in Constants.java. Includes motor speeds, CAN IDs, PID gains, and physical measurements. Changing constants is the safest type of code edit.
10CAN IDA unique number assigned to each motor controller and sensor on the robot’s CAN bus network. Our robot uses CAN IDs like 21 (shooter left), 31 (intake left), and 41 (climber left). Defined in Constants.java.
11Swerve DriveA drivetrain where each wheel can independently rotate and change direction, allowing the robot to move in any direction while facing any direction. Our project uses CTRE’s swerve implementation in CommandSwerveDrivetrain.java with configuration in TunerConstants.java.
12NetworkTablesThe WPILib publish/subscribe communication system that connects robot code, dashboards (SmartDashboard, Shuffleboard), and coprocessors (Limelight) over the network. Used for sending data between the robot and the Driver Station.
13CAN BusThe Controller Area Network communication bus connecting the roboRIO to motor controllers, sensors, and other devices on the robot. Each device has a unique CAN ID for identification.
14OdometryThe process of tracking the robot’s position on the field using wheel encoder measurements and gyro heading data. Odometry drifts over time due to wheel slip and measurement noise.
15KinematicsThe mathematical transformation that converts desired robot motion (translation + rotation) into individual module states. In swerve drive, kinematics calculates the speed and angle for each wheel module.
16Kalman FilterA mathematical algorithm that optimally blends two noisy measurements (e.g., odometry and vision) based on their respective uncertainty levels (standard deviations) to produce a more accurate estimate.
17State MachineA design pattern where a system is modeled as a set of discrete states with defined transitions and guard conditions controlling movement between states. Used to coordinate complex robot behaviors.
18Superstructure PatternAn architecture pattern used by top FRC teams (254, 1678) where a single coordinating class manages all non-drivetrain subsystem interactions using a state machine.
19Field-Relative ControlA control mode where joystick inputs are interpreted relative to the field orientation rather than the robot’s heading, using gyro data. Pushing the joystick “up” always moves the robot away from the driver, regardless of which way the robot is facing.
20Module StateThe combination of drive speed and steering angle for a single swerve drive module. Each of the four swerve modules has its own module state that is calculated by kinematics.
21Pose EstimatorA WPILib component that fuses odometry data with vision measurements using a Kalman filter to produce a more accurate robot position estimate on the field.
22Standard DeviationA measure of measurement uncertainty used by the Pose Estimator to determine how much to trust odometry vs vision data. Lower standard deviation means higher trust in that measurement source.
23Match LogData recorded during a robot match (via Driver Station logs or AdvantageScope) used for post-match analysis and debugging. Includes sensor readings, command states, and error messages.
24Hotfix BranchA short-lived Git branch created at competition to make targeted code fixes without disrupting the stable main branch. Merged back after the fix is verified.

✏️ Your Task

  1. Read through each definition above
  2. For any term you don’t fully understand, find an example in the actual robot code using the GitHub links
  3. Try writing each definition in your own words — if you can explain it without looking, you know it!