This is the repository for Team 5026, The Iron Panthers' robot code for our 2019 robot, the Mothership.
We use a WPILib command/subsystem-based approach for our robot code. Most FRC teams are familiar with (or use) some variation of this structure. Here is the way that we lay out our robot code:
- A subsystem refers to a major component of the robot. A concrete example is our robot's drivebase subsystem. Our subsystem classes tend to contain generic methods which act on or receive data from particular motors or sensors.
- In our projects, subsystems are organized into their own directories.
- A command is the core of the command-based framework. It is an abstraction of a specific action. This is more often an action on a subsystem (like driving based on joystick input), although we also use commands that do not require control of their respective subsystem.
- A command that would act on
<subsystem>/SomeSubsystem.java
in our project would have a relative path of<subsystem>/commands/SomeCommand.java
.
- A command that would act on
- All library-like abstractions (for example, motor controller groups) can be found in robot/util.
If you would like more details about how WPILib commands and subsystems work, you can refer to this article
In order to work on this project, no additional tools are required beyond what is recommended here. Running a 'Build' command using the Visual Studio code plugin should install all the necessary vendor APIs.