Skip to content

Reading and writing ROS 1

To start writing Python code that reads and writes ROS 1 data in MCAP, install the mcap-ros1-support helper library.

Reading

Read ROS1 messages from an MCAP file using the mcap_ros1.reader module:

import sys

from mcap_ros1.reader import read_ros1_messages

for msg in read_ros1_messages(sys.argv[1]):
    print(f"{msg.topic}: {msg.ros_msg}")

Writing

Import the necessary packages from Python and a Writer from mcap-ros1-support:

import sys
from std_msgs.msg import String
from mcap_ros1.writer import Writer

Open a file and create a writer:

with open(sys.argv[1], "wb") as f:
    ros_writer = Writer(f)

Finally, specify the channel (“/chatter”) and its schema (String) you will be using before publishing your messages (“string message 0”, “string message 1”, “string message 2”, etc.):

    for i in range(0, 10):
        ros_writer.write_message("/chatter", String(data=f"string message {i}"))
    ros_writer.finish()