Telemetry
Telemetry
The art of logging and log-viewing
In testing (real or simulated), it is common to want to directly observe robot measurements and values in order to tune your systems and debug. Rather than looping print statements, WPILib provides interfaces allowing certain information to be logged while the robot runs.
Loggers send data to NetworkTables, which can be read while running or stored for later viewing in log files.
Only classes that implement Sendable
can be sent over NetworkTables; see here for more details.
For more in-depth information on the inner workings, visit the docs.
Logging libraries
Logging libraries, third-party or WPILib-made, are not monolithic. Some are annotation-based (using Java @Annotations
), while others are framework-based. All are unique; a nice list of them can be found here.
- Monologue (we use this!)
- Epilogue (official WPILib)
- AdvantageKit
- URCL
Dashboards
There are two types of dashboards: driving and programming. We'll be talking about the ones related to programming.
These programs allow you to view data over NetworkTables in real time, allowing you to see logged data while working on a real or simulated robot. These will be your main tools for debugging.
Here's a nice list of them. We love AdvantageScope: it does both!
Log Viewers
Log viewers will pull measurements from log files and most commonly allow you to graph data or visualize them in some way. These are especially useful for direct post-match debugging, given you have the ability to process and debug with the data formats.
See this doc for more information.