|1885||2020||Java||- Data-centric architecture that separates inputs, logic of command, and outputs. This architecture was based off of the Curiosity and Spirit Mars rovers. It provides automated logging to Shuffleboard - this includes every data point that is gathered, every desired state that is calculated, and every motor output level. (check out TestController.java, and the readInputs() method of DriveModule.java for an example)|
- One way "latch" that tracks ball entry, travel, and exit for an individual beam break sensor (AbstractController.java, activateSerializer() method)
- Vision-based range of an arbitrary point behind the OUTER GOAL using 254's code to find vision corners followed by custom Trilateration algorithm with 3D projection geometry (Ilite3DSolver.java).
- Custom bob trajectory implementation that allows us to copy a prior path and modify it for an individual match. All files are automatically saved to the appropriate path in the repository, so there is no manual movement of files.
|4646||2019||C++||[amendment to previous submission] This code contains functions that interact with a Pixy2 connected over USB through libusb. The compiled libusb can be found here: https://github.com/frc4646/roborio-pixy2-libusb|
Be warned that it will crash if the Pixy2 is not plugged in.
|5190||2018||Kotlin||3 cube scale auto using Pathfinder trajectory, elevator and arm locking code, superstructure collision avoidance||https://github.com/FRC5190/2018CompetitionSeason|
|5190||2019||Kotlin||Nonlinear trajectory follower with correction from vision inputs, SolvePnP for retroreflective targets, custom JeVois driver, 2 hatch-panel auto modes, superstructure planner, automatic Level 3 climb||https://github.com/FRC5190/2019CompetitionSeason|
|6377||2019||Labview||- Architecture: Object-oriented LabVIEW with 4 classes for each subsystem, which are encapsulated in subsystem libraries.|
- Dynamic loading of code using a configuration file that provides both constant values for motor controllers and I/O references, as well as the class type to load for each subsystem.
- Limelight integration 1: Use of limelight to control the robot’s alignment in the field.
- Use in multiple robots: This code was written to control our 2019 robot: Outlaw. However, because of the system-based approach we took, it can also be used to control both our 2018 robot: PacBot, as well as our off-season testing robot.
- Leveraging VIMs: Use of malleable VIs to provide adaptable code modules that automatically compile to work one of multiple supported data types.
- Extending capabilities with CTRE: Used the Talon SRX motor controllers to offload the closed loop control from the NI roboRIO to each controller, thus allowing us to control mechanisms such as the flipping arm by just sending position commands.