rospeek is a blazing-fast, cross-platform ROS 2 bag analyzer written in Rust.
Execution time [s] (log scale)
0.1 1 10 100
|--------|-------|-------|
rospeek info |█ | 0.79 s
ros2 bag info |██████████████████████████████ | 29.1 s (~36.9× slower)- Cross-platform -- Works on Linux, macOS, and Windows
- Format support -- ROS 2
.db3,.mcap
git clone https://github.com/ktro2828/rosbag2peek.git
cd rosbag2peek
cargo build --releasecargo install --path crates/rospeek-cliThen, you can refer to usage of CLI with rospeek -h.
This command shows overviews of a bag file, similar to rosbag2 info:
rospeek info <BAG_FILE>This command shows a list of serialized messages:
rospeek show <BAG_FILE> -t <TOPIC_NAME>This command decodes topic messages and dumps them into JSON or CSV format.
rospeek dump <BAG_FILE> -t <TOPIC_NAME> [-f json|csv]The output file is saved with the filename that separates the topic namespace by dots.
For example, the following command dumps /foo/bar into foo.bar.json:
rospeek dump <BAG_FILE> -t /foo/bar -f jsonYou can also dump messages between two timestamps:
rospeek dump <BAG_FILE> -t /foo/bar -f json --since 1640995200 --until 1640995260This command spawns a GUI application for visualizing bag files:
rospeek app