AdvantageKit is a logging, telemetry, and replay framework developed by Team 6328. AdvantageKit enables log replay, where the full state of the robot code can be replayed in simulation based on a log file (What is AdvantageKit?). See also:
- AdvantageScope, our robot telemetry application which does not require AdvantageKit to use.
- WPILib Data Logging, a simpler logging system included in WPILib (does not support log replay in simulation, but covers the needs of most teams).
View the online documentation.
Feedback, feature requests, and bug reports are welcome on the issues page. For non-public inquires, please send a message to [email protected].
Looking to get started quickly? Check out the AdvantageKit example projects. There are versions for differential and swerve drives, from minimal to advanced (including a project designed for the 2024 FIRST KitBot). Zip files for each project are attached to the latest release.
Also take a look at the examples below of teams utilizing AdvantageKit in their competition code:
- Team 6328's 2023 Code - Spark Max swerve with a triple jointed arm, pose estimation, and auto scoring (TBA).
- Team 2910's 2023 Code - Talon FX swerve with PathPlanner, vision, and a telescoping arm (TBA).
- Team 3476's 2023 Code - Swerve with pose estimation, custom superstructure management, and more (TBA).
- Team 5940's 2023 Code - Talon FX swerve with automated scoring/pickup and "Northstar" AprilTag vision system (TBA)
- Team 4099's 2023 Code - Kotlin code with a swerve, elevator, pose estimation, etc (TBA).
- Team 6328's 2022 Code - Spark Max differential drive with pose estimation and auto aiming (TBA).
- junction - Primary component of logging, manages the flow of data between user code, WPILib, log files, network clients, etc. Written in Java.
- junction/core - Central system for managing data, including reading and writing from log files and user code.
- junction/shims - Replaces components of other libraries (WPILib) to interact directly with
junction
.- junction/shims/wpilib - Replaces WPILib components to read data from
junction
instead of the HAL.
- junction/shims/wpilib - Replaces WPILib components to read data from
- junction/autolog - Annotation procesor for creating log input classes.
- conduit - Transfers data between
junction
and the WPILib HAL efficiently. Written in C++ and Java.
- build_tools - Utilities to assist with building in Bazel and interfacing with WPILib and the roboRIO.
- third_party - Tools for integrating third party libraries like WPILib.