ROS2 bag recording and analysis utilities with Clean Architecture (Python & C++)
This skill provides guides for programmatic data recording (rosbag2) and replay mechanism adhering to Clean Architecture.
Defines the interface for recording and playback control.
# domain/interfaces/data_recorder.py
class IDataRecorder(ABC):
@abstractmethod
def start_recording(self, config: RecordingConfig) -> bool:
pass
@abstractmethod
def stop_recording(self) -> None:
pass
See previous Python example using rosbag2_py.
Using rosbag2_cpp library.
// infrastructure/ros2/bag/bag_recorder.hpp
#pragma once
#include <rclcpp/rclcpp.hpp>
#include <rosbag2_cpp/writer.hpp>
#include <rosbag2_storage/storage_options.hpp>
namespace infrastructure::ros2::bag {
class BagRecorder {