ROS Telemetry Analytics
A local ROS workbench for replaying telemetry, investigating robot recordings, and evaluating localization detection.
On this page
Overview
ROS Telemetry Analytics started with replaying robot missions and looking for gaps in telemetry. It has grown into a local workbench where I can inspect recordings, look at the evidence behind an incident, and compare evaluation results.
ROS Workbench brings three views together: Telemetry, Recording, and Localization. I can replay a mission, investigate a prepared recording without replaying it, and look at which localization failures the detector catches or misses. The optional live ROS 2 path is still available for testing delivery and recovery.
Why I Built It
I started this project to practice working with ROS data and learn how to turn robot recordings into useful analysis.
Also wanted to investigate robot missions and visualize incidents, so I could better understand how sensor failures and timing issues affect a mission.
Still exploring additional datasets and scenarios to test, and how to make the results more useful for troubleshooting.
How It Works
- Analyze
.bag,.mcap, and.db3recordings offline, or replay them through Kafka and Flink into the web app. - Prepare recordings into saved measurements and source samples, then inspect an incident or select a time range in the Recording view.
- Use deterministic rules to explain the observations, possible explanations, missing evidence, and useful next checks. This works offline without an LLM.
- Rebuild evidence for installed recordings from the page when analysis rules change, keeping the previous results available if a rebuild fails.
- Compare localization detections against published labels to see which failures were missed and how often the detector raised a false alarm.
- Observe selected live ROS 2 topics through a bounded SQLite outbox, preserving message identity across retries and counting observations rejected when storage fills.
Features
- Telemetry replay: follow topic delivery through a mission and inspect gaps, rate changes, and recovery
- Recording investigations: select a detected incident, inspect aligned signals and source samples, and read the supporting explanation and its limits
- Localization evaluation: compare missed events and false alarms against published reference trajectories and labels
What I Learned
I started by looking for gaps in telemetry, but wanted to understand what was happening around them too. A warning could tell me where to look, but didn’t always explain the problem.
I tried making the localization detector more sensitive. It caught more failures, but also produced more false alarms, so I kept the original setting as the default.
Testing live data and restarting services helped me find timing and recovery issues I hadn’t caught during replay. Still learning how to make the results more useful for troubleshooting.
Project Status
Still working on this as a learning project. The local workbench supports telemetry replay, recording investigations, and localization evaluation.
I’ve taken Navigation out of the workbench for now. The recordings I’m using don’t have the paired runs and goal and collision evidence needed for those comparisons. The offline evaluator and synthetic examples are still in the repo.
I’ve tested it with recorded datasets and local ROS 2 simulations. Recording analysis needs some preparation, and Localization uses saved detector evaluations. I haven’t tested it on a physical robot yet.