Skip to content

feat: Add ROS2 Bag (rosbag2/SQLite) format support #16

@zhexuany

Description

@zhexuany

Issue Description

Robocodec does not support reading or writing ROS2 bag files in the SQLite database format (rosbag2 default before MCAP).

Background

ROS2 Humble and earlier use SQLite3 as the default rosbag2 storage format. ROS2 Iron and later use MCAP as default. There is still legacy ROS2 data in SQLite format that needs to be read/converted.

Proposed Solution

Add a new format module: src/io/formats/ros2bag/

Requirements

  • Create ros2bag/ directory under src/io/formats/
  • Implement SQLite-based reader
  • Implement SQLite-based writer
  • Implement FormatReader trait
  • Implement FormatWriter trait
  • Implement FormatRewriter trait
  • Add .db3 extension detection
  • Handle rosbag2 metadata schema
  • Add unit tests
  • Add integration tests with sample rosbag2 files

Acceptance Criteria

  1. Can read ROS2 SQLite bag files
  2. Can write ROS2 SQLite bag files
  3. Can convert ROS2 bags to/from MCAP and ROS1 bags
  4. Preserves all metadata during conversion

References


Priority: P2 - Legacy ROS2 data support
Estimated effort: Medium-High

Metadata

Metadata

Assignees

No one assigned

    Labels

    formatRelated to data formats (MCAP, ROS bag, ULog, etc.)priority-P2Medium priority

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions