I am logging data in MCAP format using ros2 bag record -s mcap --all which saves a .mcap file with all my logged data as well as a metadata.yaml file with some info about what is stored in the .mcap file.

I would like to "checkpoint" my system when I save the data by somehow saving all the ROS parameters along with these files that come from ros2 bag record. However, in ROS2 there's no longer a global parameter server and each node has a way of interacting with its own local parameters (see About parameters in ROS 2). Is there a standard way to save all ROS parameters from all nodes so that I could have this info in my logs?

I'm about to work on a script to hack such behavior together, and would like to know if I'm wasting my time, that maybe there is already a reasonable solution to this problem that I'm unaware of. Thanks!

  • $\begingroup$ There's no standard way of doing this yet, but MCAP's Metadata and Attachment records could be appropriate places to put this information. Try mcap help add to see commands you can use to add attachments/metadata after a recording is made. $\endgroup$
    – jtbandes
    Commented Mar 22, 2023 at 5:25


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.