-
Notifications
You must be signed in to change notification settings - Fork 0
Home
AtlantisKit is a set of tools for working with WPILib and specifically AdvantageKit. It simplifies the management of robot inputs, value tuning from the dashboard, periodic alerts, and more. AtlantisKit is designed to help teams boost development speed, improve efficiency in working with the robot, and easily incorporate advanced features, all while maintaining clean, organized code without unnecessary complexity. This wiki contains documentation of AtlantisKit, as well as recommendations and tips on how to organize and write a robot code with WPILib, AdvantageKit, and AtlantisKit.
AtlantisKit currently has 4 primary parts:
- Log Fields: An abstraction over AdvantageKit that simplifies the definition of inputs and outputs, creating a cleaner and less error-prone API for IO management.
-
Tunables: An extension of WPILib's
Sendablesystem that enables interactive tuning and command execution from the dashboard, while remaining safe for replay. It also includes useful features like nesting and convenient construction of tunable commands using the command composition API. - Periodic Alerts Manager: A manager for WPILib's alerts, making it easier to handle them with less code while keeping the system clean and efficient.
- Helpers: The helper classes are a collection of generic utilities designed to perform specific tasks, such as managing a rotational sensor.
Note that AtlantisKit and this wiki assume familiarity with the basics of how WPILib robot projects are structured and how AdvantageKit handles logging and replay.
To include AtlantisKit in your robot code, add the following to your vendordeps:
https://atlantis2679.github.io/AtlantisKit/AtlantisKit.json
Alternatively, download the .json manually and place it in your project's vendordeps/ folder.
Note that you still have to set up AdvantageKit independently, as instructed in the AdvantageKit documentation.
AtlantisKit is designed to be as minimal as possible in your code, requiring just one line to update each feature:
LogFieldsTable.updateAllTables();
TunablesManager.update();
PeriodicAlertsManager.update();For each feature you want, add the corresponding line for it in the robotPeriodic() inside the Robot.java file, IN THIS ORDER AND BEFORE ANYTHING ELSE.
Since Log Fields is used inside the Tunables, you will have to enable it too for Tunables to work. And again, make sure to update Log Fields before Tunables.
You can look at our 2025 season robot code or any other robot code project on our GitHub - they all use this library.
We hope you choose to use our library and find it useful. If you have a question, found some bugs you want to report, or have some feature or change you want us to add, feel free to open an issue or write us an email at atlantis2679@gmail.com
If you are interested in the early development of AtlantisKit, visit RobotBase - this is our team template robot code, and until the publication of AtlantisKit, that was where we developed and created new versions of it (hence why AtlantisKit's first version is 4.0.0)