The software that powers HATCHfield (our 2019 Robot) was built with the following goals:
- Intuitive control scheme for drivers
- Software design oriented around needs and wants
- Detailed logging system to assist software diagnosis
- Execute repetitive tasks autonomously
In contrast to our previous robots' code, this codebase implements LoopableSubsystem
, which is a replacement for WPIlib's Subsystem
. LoopableSubsystems are registered with their own managed schedular. This design both allows I/O to be buffered, which reduces strain on the robot's internal CAN network, and allows the use of suggestions or desires.