AdvantageKit

Logging & replay framework for FRC

GPL-3.0 License

Stars
156

AdvantageKit

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].

Sample Projects

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:

Repository Structure

Logging

  • 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/autolog - Annotation procesor for creating log input classes.
  • conduit - Transfers data between junction and the WPILib HAL efficiently. Written in C++ and Java.

General

  • 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.