rosbag_timing_inspector
GUI tool to visualize and analyze message timing from ROS2 bags (mcap or db3).
README
rosbag_timing_inspector
A GUI tool to visualize and analyze message timing from ROS 2 bags (.mcap or .db3).
Built with Dear ImGui + ImPlot. No message deserialization is performed – only timestamps and topic names are read, so it opens even bags with custom or unavailable message types.
Features
Timeline tab: zoomable 2D scatter plot – X = time, Y = topic lane. Each dot is one message. Pan/zoom with mouse. Toggle per-topic visibility and color. Measure mode: click twice to place two vertical markers and read the delta-T.
Histograms / Stats tab: per-topic inter-message interval histogram and a statistics table (count, mean, std, min, max in ms).
Dependencies
System packages (Ubuntu / ROS 2 Jazzy):
sudo apt install libglfw3-dev
ROS 2 packages resolved automatically by rosdep:
rosbag2_cpprosbag2_storagerosbag2_storage_mcaprosbag2_storage_sqlite3
Third-party libraries (imgui, implot, tinyfiledialogs) are fetched automatically
by CMake via FetchContent at build time – no manual installation needed.
Build
cd ~/ros2_ws
# Install ROS 2 dependencies
rosdep install --from-paths src/rosbag_timing_inspector --ignore-src -r -y
# Build (release build recommended for large bags)
colcon build --packages-select rosbag_timing_inspector \
--cmake-args -DCMAKE_BUILD_TYPE=Release
Launch
source ~/ros2_ws/install/setup.bash
# Pass a bag path directly:
rosbag_timing_inspector /path/to/recording.mcap
rosbag_timing_inspector /path/to/recording.db3
# Or open without arguments and use File > Open bag...:
rosbag_timing_inspector
Usage tips
Action |
How |
|---|---|
Zoom timeline |
Scroll wheel over plot, or click-drag on an axis |
Pan timeline |
Middle-click drag, or right-click drag |
Reset view |
Double-click on plot |
Toggle topic |
Checkbox in the left panel |
Change topic color |
Color swatch in the left panel |
Measure delta-T |
Enable Measure mode, click for T1, click again for T2; drag either line to adjust |
Reset measurement |
Click a third time to restart |
License
MIT – Copyright (C) 2026 Jose Luis Blanco Claraco