MotionView + MVLib: Open-source telemetry & replay logging for PROS V5
Hi everyone,
I’ve been developing an open-source telemetry and logging toolchain for PROS V5 teams called MotionView, with a companion library MVLib, and wanted to share it here for feedback and wider use.
The goal is to make autonomous debugging visual, replayable, and data-driven without teams needing to build custom logging formats or visualization tools.
What MotionView does
MotionView is a desktop app that reads robot logs and visualizes:
- Robot paths on a full field
- Pose data (x, y, heading) over time
- A watch list (battery, motor temps, RPM, current, auton state, etc.)
- Hover-to-inspect values at any point in a run
- Playback controls for reviewing autonomous
MotionView also lets you change:
- Units (inches / tiles / etc.)
- Field origin offsets (x, y, heading)
- Playback speed and scrubbing
Screenshots
Viewing Mode (Run Playback)
Click here to view the image.
Shows a recorded autonomous run with:
- The robot path drawn on the field
- Pose readouts
- Active watches listed on the side
- Hovering on the path to inspect values at that moment
This run is a real recorded run from my robot in the VEX Pushback competition.
Screenshot 2 — Planning Mode
Click here to view the image.
Shows MotionView’s planning mode, where:
- Paths can be laid out visually
- Geometry and heading changes are previewed
- Planned paths are separate from recorded runs
Screenshot 3 — Overlay Mode (Planning + Real Run)
Click here to view the image.
Shows a planned path overlaid on a real autonomous run, making it easy to:
- See drift or error
- Compare intended vs actual motion
- Tune odometry and control
What is MVLib?
MVLib is a lightweight C++ logging and telemetry library for PROS that outputs data in a format MotionView understands.
It provides:
- Structured logs (instead of scattered
printfs) - Pose streaming for path visualization
- “Watches” that track values over time
- Automatic integration with MotionView
MVLib is optional — MotionView can read any logs in the right format — but MVLib simplifies setup and ensures consistency.
Supported odometry libraries
MVLib currently supports:
- EZ-Template
- LemLib
- OkapiLib
- Custom odometry via a user-supplied pose getter
Adapters are header-only and enforced at compile time so only one odometry source is active.
Example use cases
Teams are using this to:
- Debug why an auton failed (not just that it failed)
- Track brownouts, overheating, or jams
- Compare runs between code changes
- Tune odometry and autonomous routines visually
Project status
- Open-source
- Actively developed
- Used on real robots
- Still evolving — feedback welcome
I’m especially interested in:
- Feature requests
- UI feedback
- Edge cases with different odometry setups
Links
Downloads
Official download links for MacOS and Windows:
Thanks for reading — feel free to reply or DM me if you want to try it or have questions.
- Discord (username):
howtoguide - Report issues to: GitHub Issues page



