From c137c8cdfcfaaa5437e212c1e5d6f4f75c27bbde Mon Sep 17 00:00:00 2001 From: Guillaume Doisy Date: Mon, 7 Nov 2022 21:02:08 +0000 Subject: [PATCH] add MCAP support to offline node --- cartographer_ros/src/playable_bag.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cartographer_ros/src/playable_bag.cpp b/cartographer_ros/src/playable_bag.cpp index f9ef8fcd4..4d5705589 100644 --- a/cartographer_ros/src/playable_bag.cpp +++ b/cartographer_ros/src/playable_bag.cpp @@ -22,6 +22,7 @@ #include "tf2_msgs/msg/tf_message.hpp" #include "rosbag2_storage/topic_metadata.hpp" #include "rosbag2_storage/bag_metadata.hpp" +#include namespace cartographer_ros { @@ -38,7 +39,12 @@ PlayableBag::PlayableBag( filtering_early_message_handler_( std::move(filtering_early_message_handler)) { LOG(WARNING) << "Opening bag: " << bag_filename; - bag_reader_->open(bag_filename); + if (std::filesystem::path(bag_filename).extension() == ".mcap") { + bag_reader_->open(rosbag2_storage::StorageOptions{bag_filename,"mcap"}, + rosbag2_cpp::ConverterOptions{"cdr", "cdr"}); + } else { + bag_reader_->open(bag_filename); + } bag_metadata = bag_reader_->get_metadata(); duration_in_seconds_ = bag_metadata.duration.count()/1e9; LOG(WARNING) << "duration_in_seconds_: " << duration_in_seconds_;