For those unfamiliar, AdvantageScope is a robot diagnostics, log review/analysis, and data visualization application developed by Team 6328. It was released initially for the 2022 season, then split from its sister project AdvantageKit for the 2023 season. AdvantageScope enables a variety of visualizations for any WPILib project, both live over the network and by opening robot log files. We are humbled by the community response to this project, and AdvantageScope now has almost 6,000 downloads .
For a more complete picture of what’s possible with AdvantageScope, my conference from the 2023 Championship provides more examples and detailed explanations:
Also check out the documentation for an explanation of each visualization available in AdvantageScope.
The Big News
We are pleased to announce that for the 2024 season, AdvantageScope will be included in the WPILib installer. We’re excited for the potential of this tool once it becomes available to all FRC teams by default! AdvantageScope is not included in the first 2024 WPILib beta, but it will be available soon.
Development will continue in the Mechanical-Advantage/AdvantageScope repository on GitHub, and you will still be able to download the app directly from 6328. This version of AdvantageScope may include updates and new features before they become available through WPILib (and you’ll get some 6328 robot models to try out on the 3D field). Otherwise there will be no functional difference between the 6328 and WPILib distributions.
What’s New?
For a full 2024 changelog, check the GitHub release. Here are a few of the most notable new features:
Cinematic Mode
Cinematic mode is an alternative 3D rendering mode that includes shadows, lighting, and reflections for a more realistic look. The default rendering mode is unchanged, since cinematic mode requires a decent GPU to run smoothly. The comparison below shows the difference in quality between the cinematic and standard rendering modes (standard is equivalent to AdvantageScope 2023).
TBA Video Download
Powered by The Blue Alliance.
AdvantageScope supports synchronizing a match video to a log file. However, the 2023 version required a local video for this feature. Now, you can find and load a match video from The Blue Alliance with a single click:
AdvantageScope finds the match on TBA using metadata stored in the log file, and offers a selection of videos to download if multiple are available. You can also provide a YouTube URL directly for matches not available on TBA.
Documentation is available here.
Zebra MotionWorks Integration
Powered by The Blue Alliance.
Zebra MotionWorks data is available at some FRC events to track the position of robots throughout the match. I’ve written before about 6328’s work to compare Zebra data to our robot’s onboard localization. This was typically an arduous process that involved a Python script, AdvantageKit log replay, and other custom tooling. I’ve pleased to demonstrate the new and improved process built in to AdvantageScope:
This uses the same logic as the TBA video download to extract match metadata from the log. Zebra data can be visualized on the odometry or 3D field views, as markers with team number annotations or as a translucent “ghost” robot (both types are shown in the examples below).
Documentation is available here.
Odometry Heatmap
As onboard robot localization becomes increasingly accurate, it’s often reliable enough to assist in analyzing match strategy. AdvantageScope’s odometry tab now includes a heatmap visualization based on the provided pose data:
You can generate the heatmap using all pose data, or limit it to times that the robot is enabled. It can also be combined with all other standard object types.
Field Search
Many teams are logging hundreds of fields, which can be a headache to organize. You can now find fields quickly by searching for them in the sidebar. We hope this is a nice quality of life improvement when you misplace a log field
NT Publishing
For logs that include NetworkTables data, you can now publish all (or a subset) of fields to a NetworkTables server in real time. Possible use cases include:
- Replaying matches in simulation for debugging.
- Mimicking data from a coprocessor on a real robot.
- Debugging driver dashboard applications using realistic match data.
This example shows several poses being published from AdvantageScope to an OutlineViewer (NT server) instance:
Documentation is available here.
Faster Log Loading
Many teams are now producing very large log files, which can take a long time to load. For 2024, log loading is ~5x faster and a full progress bar is displayed. Here’s an example of the 2023 (top) and 2024 (bottom) versions of AdvantageScope opening the same 35Mb log file:
Automatic Log Merging
Logs can now be merged with conflicting fields. Timestamps are automatically synchronized based on when the robot is enabled. An example use case would be comparing the movement of the robot across a set of similar matches:
Documentation is available here.
Navigation Improvements
There are a variety of quality of life improvements for navigating log data. On the line graph, the selected and hovered timestamps are displayed along with the delta between them:
The timeline controls are improved too, with buttons to jump to the first robot enable and hide/show the visualization controls:
On MacBooks with a Touch Bar, you can now scrub through the log or add new tabs using a touch interface:
PathPlanner 2023 Client
You can now connect to a robot running PathPlanner 2023 to view trajectories and target/actual poses. Note that PathPlanner 2024 uses NetworkTables, so this feature is only applicable when debugging legacy robot projects; the standard NetworkTables mode covers this use case for modern projects.
JSON & MessagePack Support
You can now individually view fields contained in JSON or MessagePack data. Here’s an example with a JSON field containing two numeric fields:
Coming Soon: Struct & Protobuf Support
Later in the fall, WPILib and AdvantageKit are adding support for struct & protobuf encoding. This will allow for geometry objects like Pose3d
, Trajectory
, and AprilTag[]
to be logged directly without converting to double arrays. AdvantageScope will also be able to recognize different data types, making it impossible to accidentally mix up 2D and 3D objects.
Keep an eye out for updates on this feature soon.
What’s Next?
The AdvantageScope 2024 beta is now released! You can download the beta from the GitHub releases page. Documentation is available online or by clicking the icon in the app. We would welcome feedback, feature requests, and bug reports on this thread or the issues page. We already have some new features in the works, so keep an eye out for future beta releases.
The first 2024 beta of AdvantageKit (our logging framework) will also be released soon. This is a separate framework and NOT required to use AdvantageScope.
Thank you to everyone who has used AdvantageScope in the past two years. We’re excited to see what everyone does with it in 2024!