Control Board
The DriverControls class handles input from the driver and co-driver Xbox controllers and translates these inputs into commands for the robot’s subsystems.
Overview
ControlBoard instance: Centralizes access to driver and co-driver controllers.
Subsystem instances:
DriveandSuperstructureare accessed and commanded based on input.Two control modes:
One Controller Mode for simple operation.
Two Controller Mode for full robot control during competition.
Controller Variables
CustomXboxController driver = mControlBoard.driver;
CustomXboxController codriver = mControlBoard.operator;driver: Represents the primary Xbox controller operated by the driver.codriver: Represents the secondary Xbox controller operated by the co-driver (operator).These objects provide access to button states, trigger axes, and POV (D-pad) directions.
Button and Input Handling
Buttons and inputs are queried with methods like:
driver.leftBumper.isBeingPressed(): Returnstruewhile the left bumper button on the driver’s controller is held down.driver.getAButton(): Returnstrueif the A button is currently pressed.codriver.getRightTriggerAxis() == 1: Checks if the right trigger is fully pressed on the co-driver’s controller.driver.POV270.isBeingPressed(): Checks if the D-pad is pressed in the 270° (left) direction.
You can also detect button presses/releases for event-driven actions, e.g., driver.releasedAny(...) or codriver.getStartButtonPressed().
Control Modes
One Controller Mode
Usage: When only one controller is available.
Functionality: Basic commands such as zeroing the gyro, moving the intake deploy subsystem.
Ideal for: Outreach events, demos, early development/testing.
Two Controller Mode
Usage: When both driver and co-driver controllers are active.
Driver responsibilities:
Driving (including gyro zeroing and auto-alignment).
When to actually move the robot/score
Co-driver responsibilities:
Emergency movements (ex.Intake up)
Scoring locations (What happens when the driver presses score)
Code overrides (We make mistakes, this lets us keep playing if we do)
Ideal for: Competition matches and advanced testing, allowing multitasking and precise control.
Example Input Usage
This code checks if the driver's left bumper is currently held down.
While held, it sets the robot’s superstructure goal state to
GROUND_CORAL_INTAKE.
Last updated