AdvantageScope 2023 Beta: Live visualization & log analysis with WPILOG/NT4

Have you ever lain awake at night wishing for more visualization tools than you know what to do with? Team 6328 has been hard at work over the past few months, so you can finally rest easy:

This is AdvantageScope, 6328’s robot diagnostics, log review/analysis, and data visualization application. We started this project last year as part of 6328’s openalliance efforts, in conjunction with our logging framework AdvantageKit. Since their initial release, the two projects have grown apart. That’s why this 2023 release of AdvantageScope is designed to interface with any WPILib project, using the standard WPILOG and NT4 formats.

There are too many new features in the AdvantageScope beta to talk about everything, but here are a few of our favorite features:

  • Historical log analysis using WPILOG files, produced by WPILib’s built-in data logging or by AdvantageKit.
  • Live data streaming using NetworkTables 4, supported by the 2023 beta of WPILib.
  • A wide selection of flexible graphs, charts, and tables
  • Synchronized video playback from a separately loaded match video
  • 2D field visualization of odometry data
  • Joystick visualization, showing driver actions on customizable controller representations
  • Swerve drive module vector displays
  • Console message review
  • Log statistics analysis
  • Flexible export options, with support for CSV and WPILOG

And of course we can’t forget…

  • 3D field visualization with CAD-based robots

3D Field Demo

Check the 3D field documentation for more videos of the visualizer in action.

The 3D view supports a variety of camera views, including robot relative (tracking) and fixed cameras (like driver and vision cameras). It can display a 2D or 3D robot pose, plus a set of arbitrary 3D poses. Very useful for visualizing AprilTag pipelines…

By combining AdvantageScope’s numerous visualization tools, it’s easy to create advanced views like the one below.

You can download the 2023 beta from the AdvantageScope repository. Also check out the AdvantageScope documentation for more details on all of the features described above. We would welcome community feedback, questions, and suggestions as we continue our development effort.

We also just released the 2023 beta of AdvantageKit, our logging framework! More details here.

-Jonah

GIF

57 Likes

We were able to start testing this the past couple of days and I have to say this is phenomenal. Much of what AdvantageScope can do are things we didn’t even know we needed, but now I’m sure we’ll be using all the time.

Thank you 6328 for creating this and sharing it with the community.

15 Likes

Incredible the feature set that AdvantageKit is building up! Can’t wait to try it out and thank you for continuing to share this work with the community.

6 Likes

We’re very glad to provide it and hope you find it useful!

I do want to point out that AdvantageKit and AdvantageScope are separate tools at this point.

  • AdvantageScope is the log review and visualization tool.
  • AdvantageKit provides our logging/telemetry/replay support.

You don’t need to use one to use the other. But both natively support NT4 and WPILOG formats, so you can mix and match; if you’re not ready for AdvantageKit (or just want to do things your own way), you can still use AdvantageScope as a viewer.

2 Likes

Outstanding work! Thank you for adding support for the WPILog file format and NT4. With AdvantageScope, you’ve probably checked off about 80% of my wishlist for such a tool.

5 Likes

I used the tool for the past month, with their old logging format and now WpiLib, and it has been the best data visualization tool I’ve used yet for FRC.

I highly recommend every team to use the WpiLib logging and this visualization tool this season!

3 Likes

This is really great work! The support for WPILog means this integrates seamlessly with legacy tooling; if you enable logging, then ordinary smartdashboard/shuffleboard telemetry should be viewable in log format with AdvantageScope. That’s huge for teams that want more visualization tools but don’t necessarily want to dive into the Sapphire/Glass ecosystem or spring for the entire AdvantageKit framework.

4 Likes

AdvantageScope 2023 Beta 2

The second beta release of AdvantageScope for 2023 is now available with some useful new features. You can download it here. Check the releases page for a detailed changelog.

Support for Driver Station logs

AdvantageScope can now open log files from the FRC Driver Station (“.dslog” and “.dsevents”). This data can be viewed in isolation or merged automatically with onboard logs from the robot. More details here.

More odometry & 3D field objects

The odometry and 3D field views now support an unlimited number of objects, with more types available. Notable additions include:

  • Trajectories
  • 3D ghost robots (for reference poses)
  • 3D AprilTag models
  • More cone options (align with the tip, center, or back)
  • Axes indicators for poses, plus a simplified 3D field with only axes and a field outline
  • Robot camera poses can be set dynamically (useful for turret mounted cameras or similar)

More details on the odometry and 3D field views.

3D Field Objects

Download quality of life improvements

The download window now displays detailed progress data (transfer speed & time remaining) as well as the size of each log in the file list. More details here.

Download Demo

33 Likes

Very cool.

1 Like

Awesome!

https://github.com/amquake/AprilTagWorkbench

5 Likes

AdvantageScope 2023 Kickoff Release!

Thank you to everyone who tried out the beta releases of AdvantageScope. We are excited to announce that the kickoff release of AdvantageScope 2023 is now available. You can download it here. Check the releases page for a detailed changelog.

2023 Field

AdvantageScope now includes a 3D model and flat image for the 2023 CHARGED UP field! Thank you to @MikLast for the field render (available here).

Revamped Robots

We’ve revamped the set of built-in robot models, including a couple of fun new additions :duck::crab:. We also have a new guide for importing your own CAD models into AdvantageScope (here). The following robots are now included by default:

  • KitBot
  • Duck Bot
  • Crab Bot
  • Bot-Bot Awakens (6328’s 2022 robot)
  • Bot-Bot Strikes Back (6328’s 2020 robot)

-Jonah

19 Likes

I’m loving the crab bot! :crab:

4 Likes

AdvantageScope v2.1.0: Mechanisms!

This game sure seems to lend itself to arms, elevators, arms-on-elevators, and all sorts of other fun mechanisms. With that in mind…

AdvantageScope v2.1.0 is now available, with support for visualizing Mechanism2d objects. You can configure and publish mechanism data using WPILib’s built-in tools (docs), and the rendered view is the same as tools like Glass, SimGUI, etc. Of course, AdvantageScope also allows you to view the mechanisms based on a log file so you don’t need to be connected live.

If you prefer the AdvantageKit route, AdvantageKit v2.1.0 adds support for logging the state of a Mechanism2d object as an output field.

14 Likes

AdvantageScope v2.2.0: More Mechanisms! (And Other Fun Things)

AdvantageScope v2.2.0 is now available with a host of new features. These include…

  • 3D mechanisms and components! See the example videos below, or check the documentation for details.
  • Support for PhotonVision byte packed data through NT or WPILOGs (example here)
  • Overlaying multiple mechanism objects in the “Mechanism” tab
  • Automatic selection of alliance color for the odometry and 3D views

3D Mechanisms

2D Mechanisms

16 Likes

Thank you so much for this awesome app! However, I do have one question: How do we see the robot on the 3D field? I’ve customized it so that our robot is one of the options, but I cant see it on the field…

The robot won’t appear until you select pose data to view. You can send the robot’s pose (X, Y, angle) over NetworkTables using the Field2d class. When you connect to the robot in AdvantageScope you can then drag the published field from the sidebar to the “2D Poses” section on the 3D field tab.

1 Like

Thank you!

Hi, we’ve been using this tool for 2 regionals now, it’s very useful and impressive!
Now we want to implement the 3d robot with components, i’ve been following the steps for implementation but when i try to change any pose values of a component, it doesnt seem to move

Everything seems to be fine, you can even see the components in the visualizer but as i said, they don’t seem to be changing positions.
Any ideas why?

AdvantageScope only loads the JSON file when the app launches. Also keep in mind that the “zeroed” positions and rotations are only used if the user supplies a pose for the component. From the documentation:

When no component poses are provided by the user, the component models will be positioned using the default robot rotations and position (see above). When component poses are provided by the user, the “zeroed” rotations and position are instead applied to bring each component to the robot origin. The user’s poses are then applied to move each component to the correct location on the robot.

The 3D components are a bit confusing, so I’m happy to clarify if you have more questions.

Here’s a reminder that @jonahb55 will be presenting “FRC Data Logging and Visualization” at Champs conferences on Thursday 4/20 at noon. If you’re in Houston, we’d love to have your questions and hear how logging is used by your team.

7 Likes