It’s the season for R303 code publicizing!
If your team uses pre-season code, you should post about it!
Don’t just disclose, say what’s great about what you do!
CD is full of people who would love to hear about it, and there are lots of teams who would love to learn from you!
As an example, the Team 100 library. Some highlights:
- Kinodynamic limiting (“setpoint generator”), with various constraints, e.g. limiting acceleration with battery sag or avoiding tipping over.
- Holonomic paths and trajectories, and trajectory planning with various constraints, and various followers (e.g. PIDF, pure-pursuit).
- Minimum-time profile that correctly handles non-zero entrance and exit velocities, including velocities higher than the allowed “cruise” velocity; this also provides an ETA, so you can coordinate multiple dimensions for goal-at-rest profiles (general multi-axis coordination is more involved).
- Various high-level control classes, e.g. a position servo which includes sensing, control, and actuation.
- Hot-pluggable driver controls, recognized by name.
- Selectable driver assists, e.g. target lock.
- Experiments selectable in the glass tool (or any other dashboard that supports the “Chooser”).
- A python raspberry pi app which manages cameras detecting game pieces and AprilTags.
- There’s also a lightweight logger that blindly sends UDP packets to a Java listener on a coprocessor which publishes them to Network Tables - this is an effort to reduce NT load on the RIO, and we’re hoping not to use it at all, because of the complexity it introduces (pruning log keys instead).
- You can also find 2024-game-specific code (not evergreen library code, but maybe useful anyway) here.
Some of these ideas were adapted from 254’s 2022/23 code, and some from WPILib, so they should look familiar if you know those.
If anyone finds any of this useful, or if you have any questions about it, please let me know!