AdvantageKit is a logging, telemetry, and replay framework developed by Team 6328. Please see the following guides to get started, or the README files for individual components.
- What is AdvantageKit?
- Installation
- Data Flow
- Recording Inputs: IO Layers
- Recording Outputs
- Version Control
- Common Issues (And How To Avoid Them)
- Developing AdvantageKit
Looking to get started quickly? Here are some example projects to check out:
- AdvantageKit Skeleton Template - Simple
TimedRobot
style template project. The zip is attached to the latest release. - AdvantageKit Command-Based Example - Example command based project with a tank drive and closed-loop flywheel, including sim support. The zip is attached to the latest release.
- Team 6328's 2022 Swerve Code - Swerve drive code built with AdvantageKit v2 (2023).
- Team 6328's 2022 Competition Code - Full robot code built with AdvantageKit v1 (2022).
- Team 4099's 2022 Competition Code - Kotlin robot code built with AdvantageKit v1 (2022).
- 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.