My Exclesior
Inside the Code of the My Exclesior
Robot Architecture
The codebase follows a command based architecture using WPILib Java. What does this mean?
- The Robot class acts as the main coordinator, initializing modes and scheduling command execution
- Subsystems like the drivetrain, intake, and shooter encapsulate the hardware control
- Commands are action classes that control the subsystems to perform robot behaviors
- The RobotContainer is where everything gets wired together - default commands, button bindings, and auton modes
This architecture allows flexibility when programming the robot capabilities. New commands can be introduced without having to modify the subsystems.
Robot Capabilities
- Teleoperated mode - The joysticks drive the drivetrain around and buttons control sequences like shooting a ball
- Autonomous mode - Preprogrammed routines in AutoMode.java are selected on the driver station and perform tasks like scoring in goals
- Vision targeting - A camera provides positioning data to improve shooting accuracy
Some of the key robot actions include:
- Driving in tank steer with dual joysticks
- Running the intake wheels to grab game pieces
- Indexing balls in the conveyor
- Firing balls out of the flywheel shooter
- Aligning to targets using vision
- Climbing at the end of match with an elevator
Before You Use
- Ensure that the
GradleRIO
,StuyLib
, andvenderdeps
versions are up-to-date in your new repository.
To Update | Maintain
- Import project to the latest version of WPILib using the built-in import tool.
- Check that the
GradleRIO
version is up to date. - Check the latest version of StuyLib here and update the version in
./build.gradle
. - Update the files in
./venderdeps
with their latest version, checking their respective websites.