Record/play custom messages without having to source workspace #1089
-
As I understood, MCAP is, like ROS 1 Bags, an encapsulated container that contains all msg definitions. Same goes when I try to play an MCAP bag with "ros2 bag play". Custom messages are skipped with the message: Playing custom messages was possible with ROS 1 bags, is there anything planned to support this behaviour with ROS 2 and MCAP? |
Beta Was this translation helpful? Give feedback.
Replies: 0 comments 3 replies
-
As of current ROS 2 state, message types must be installed in the local space in order to play them back in the bag. The schemas stored in the MCAP file are for use by other tooling, not the ROS 2 system itself. To highlight a few details about it, the The ability to playback without message types installed locally doesn't yet exist in the ros2 core, so it's not an MCAP issue specifically. There is some work begun in |
Beta Was this translation helpful? Give feedback.
As of current ROS 2 state, message types must be installed in the local space in order to play them back in the bag. The schemas stored in the MCAP file are for use by other tooling, not the ROS 2 system itself.
To highlight a few details about it, the
rclcpp::GenericPublisher
that is used by the Rosbag2Player
class still requires the ability to fetch the appropriatetypesupport
for the type. The benefit from the "generic" publisher is the ability to publish already-serialized messages, saving performance.The ability to playback without message types installed locally doesn't yet exist in the ros2 core, so it's not an MCAP issue specifically. There is some work begun in
rclcpp
(ros2/ros…