python3 GUI tool to read ROS2 bag files, plot topic data, and export CSV/plots.
- Detects bag folders automatically (
metadata.yaml,.db3,.mcap) - Normalizes time to start at
0seconds (t_sec) - Plots known ROS message types directly
- Supports custom message recovery using pasted
.msgdefinition - Supports custom multi-field mapping (including array channels)
- Per-topic derivative checkbox (
Plot d1/d2) to include first/second derivatives in the same plot figure/HTML - Per-topic smoothing checkbox (
Smooth d1/d2) for derivative traces, with GUI-selectable moving-average sample window - Exports:
- CSV files to
csv/ - HTML plots to
plots/ - PNG/SVG plots to
plots/(Plotly or Matplotlib fallback)
- CSV files to
git clone https://github.com/L2S-lab/ros2bag_plotter.git
cd ros2bag_plotter
python3 -m venv .venv
source .venv/bin/activate
pip install -e .python3 -m pip install --user "git+https://github.com/L2S-lab/ros2bag_plotter.git@main"For development tools:
git clone https://github.com/L2S-lab/ros2bag_plotter.git
cd ros2bag_plotter
python3 -m venv .venv
pip install -e .[dev]ros2bag-plotterIn the app:
- Select root folder containing one or more bag folders.
- Pick bag and topics.
- Plot, export CSV, or batch export all bags.
Check installed version:
python3 -m pip show ros2bag-plotterUpdate to latest main:
python3 -m pip install --user --upgrade "git+https://github.com/L2S-lab/ros2bag_plotter.git@main"Install/update to specific tag or commit:
python3 -m pip install --user --upgrade "git+https://github.com/L2S-lab/ros2bag_plotter.git@v1.1.0"
python3 -m pip install --user --upgrade "git+https://github.com/L2S-lab/ros2bag_plotter.git@<commit_sha>"Force reinstall from GitHub even if version string is unchanged:
python3 -m pip install --user --upgrade --force-reinstall "git+https://github.com/L2S-lab/ros2bag_plotter.git@main"ruff check src tests --select F,E9
pytest -q