Introduction
Although the life of the formal 2020 season was cut short, the robot code as it stands can be used as a reference for the various software patterns and control methodologies used on Aces High.
Notable features
Year Specific
Aim at last known target location (A.K.A Soft lock/hard lock)
Hypothetical turret/hood position as seen in the 6-ball auto
Library features
- Calibration generation
- Live data viewing
- LabVIEW dashboards
- Network tables
- Lifetime statistics
- Co-proc
- Logging
Topics
System Design
Software Notes
Project structure
Final thoughts
Would-be Planned Features
- Vision skew correction (to allow us to find and hit the inner port)
- 8 ball auto (by picking up the last two in the trench)
- Turret near vs far gains. Code is there just not enabled
What I would've done better
- Error handing. If a drive encoder fails. If the hood encoder failed. Turret not so worried about. If the navx failed
- Turret was never properly tuned, but it worked so I didn't touch it.
- Limelight pictures, pipeline tuning
- Better dashboard - show motor temps
- Make motor init as part of the state machine - that way subsystems can be disabled if need be and the rest of the software can't tell
- I don't know why you have to call that method twice on the hood
- Don't use Sparks
- Initialization issues
- Accelerator would just go backwards
- Pain to test using PWM
- Read the docs - hood encoder
- Iron out autonomous selection before Saturday of competition
Things that were tremendously helpful (in order from greatest to least)
- Writing and prototyping subsystems as they were built.
- OutlineViewer/Shuffleboard telemetry
- OutlineViewer constants management
- OutlineViewer configuration recorders
- Dashboards for tuning/debug
- CheezyPath improvements
- Chef laptop configuration
- Unit tests
- Poof's pose libraries