Convert rosbag versions
The rosbags.convert
package includes a CLI tool to convert legacy rosbag1 files to rosbag2 and vice versa.
Features
Reasonably fast, as it converts raw ROS1 messages to raw CDR messages without going though deserialization and serialization
Tries to match ROS1 message type names to registered ROS2 types
Automatically registers unknown message types present in the legacy rosbag file for the conversion
Handles differences of
std_msgs/msg/Header
between both ROS versions
Limitations
Refuses to convert unindexed rosbag1 files, please reindex files before conversion
Currently does not handle split bags
Only ROS2 default message types are supported when converting rosbag2 to rosbag1
Usage
# Convert "foo.bag", result will be "foo/"
$ rosbags-convert foo.bag
# Convert "bar", result will be "bar.bag"
$ rosbags-convert bar
# Convert "foo.bag", save the result as "bar"
$ rosbags-convert foo.bag --dst /path/to/bar
# Convert "bar", save the result as "foo.bag"
$ rosbags-convert bar --dst /path/to/foo.bag