Skip to content

Mechanical-Advantage/AdvantageKit

Repository files navigation

AdvantageKit

Build

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

Please see the following guides to get started with AdvantageKit:

Feedback, feature requests, and bug reports are welcome on the issues page. For non-public inquires, please send a message to software@team6328.org.

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.