Software Organization Update for 2023

One of our larger projects this fall was creating a plan to restructure our software to make it easier for more members to be involved in software development. 

The main idea was to make everything a system (subsystem), so auton, pilotGamepad, operatorGamepad, vision, etc., are all considered systems in our structure. Each of the systems has its own folder, its own config class for constants, and its own commands class (and possibly a folder for full command classes). We attempted to split more things out of the default subsystem class so they can be updated and version controlled separately. An example of this is having a separate folder for trajectories/path planning outside of auton or swerve.

Some other things that have changed or been added

  • Created SpectrumLib in its own GitHub library and include it in our project using jitpack.

  • LED Animation system using the WPILib FPGA LED driver

  • Incorporating AdvantageKit

  • Spotless auto-formatting

  • Template Mechanism classes for rollers (intakes, shooters), angle mechanisms (arms), and linear mechanisms (elevators)

2023 Software Changes Notes these aren’t all fully implemented or detailed here, but this is where we were keeping notes as we went through the process of overhauling our code structure this fall.

Our Flash-2023 Repo is the code for our swerve test platform that uses the new structure. So far, it has been working well, but without a full season, we don’t know what bugs will turn up due to these changes. 



Source: Spectrum