This repository was archived by the owner on May 31, 2025. It is now read-only.

Description
Background
The deprecated rosrecord command (replaced with rosbag record) had an experimental snapshot feature which kept the buffer in memory until triggered with a separate command to write to disk. This feature is useful in live testing scenarios where the importance of recording data is only obvious after something interesting happens and is found in proprietary robotics middleware. AFAIK this feature still exists in the source, but is inaccessible from the CLI.
Proposal
- Restore the snapshot functionality to
rosbag record by exposing the option to the argument parser
- Add an option for snapshotting to buffer a fixed time duration in the past. It's more convenient for users to know they have the last 5 seconds of data like a dashcamera than thinking in terms of buffer memory usage
- Instead of triggering write with a
std_msgs/Empty, use an actionlib goal. This goal would allow the user to specify which topics to save, how far back to go, and name to give the file (ex: save the last 15 seconds of pointcloud data to cyclist_at_night.bag). The action component would allow the user to see the progress (feedback) of writing large multigigabyte files to disk.
- Add service to pause recording, so users can have some time to think about what to save before it is overwritten
I would like to take on this project after receiving feedback on the design.