No version for distro humble. Known supported distros are highlighted in the buttons above.

reductstore_agent package from reductstore_agent repo

reductstore_agent

Package Summary

Tags No category tags.
Version 0.1.0
License MIT
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS2 agent to stream data from ROS topics to ReductStore
Checkout URI https://github.com/reductstore/reductstore_agent.git
VCS Type git
VCS Version main
Last Updated 2025-06-09
Dev Status DEVELOPED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 recorder node that logs selected topics to ReductStore, with YAML-driven pipelines (mcap/raw, compression, splitting, down-sampling, labelling).

Additional Links

No additional links.

Maintainers

  • Anthony Cavin

Authors

  • Anthony Cavin

reductstore_agent

ROS 2 Jazzy & Rolling

reductstore_agent is a ROS 2 node that records selected topics into ReductStore, a high-performance storage and streaming solution. ReductStore is an ELT-based system for robotics and industrial IoT data acquisition. It ingests and streams time-series data of any size—images, sensor readings, logs, files, MCAP, ROS bags—and stores it with time indexing and labels for ultra-fast retrieval and management.

This agent is fully configurable via YAML and designed to solve storage, bandwidth, and workflow limitations commonly found in field robotics. It streams data to ReductStore in near real-time with optional compression, splitting, dynamic labeling, and per-pipeline controls.

System Requirements

To use this agent, you must have a running instance of ReductStore. You can start a local instance using Docker, install it via Snap or from binaries. Refer to the official guide for setup instructions: ReductStore Getting Started Guide

This agent is tested with:

  • ROS 2: Jazzy and Rolling
  • OS: Ubuntu 24.04 (Noble)
  • Python: 3.12

Motivation

  • Continuous recording: Prevent oversized rosbag files by splitting recordings by time, size, or topic groups.
  • Bandwidth constraints: Filter and compress data before optionally replicating to a central server or the cloud.
  • Manual workflows: Replace manual drive swaps, custom scripts, and bag handling with automated data management.
  • Lack of filtering: Apply dynamic labels (e.g., mission ID) to tag, search, and retrieve specific data segments.
  • Ubuntu Core: Future Snap integration to support deployment as part of the Ubuntu Core observability stack.

Structure

The agent is configured using a YAML file. Each pipeline is an independent logging unit (only one type of pipeline is supported at the moment where all topics are recorded continuously without filtering).

/**/*:
  ros__parameters:
    storage: # local ReductStore instance
      url: "http://localhost:8383"
      api_token: "access_token"
      bucket: "ros_data"
    pipelines:
      telemetry:
        filename_mode: "timestamp"
        include_topics: 
          - /recorder/input
        split:
          max_duration_s: 3600
          max_size_bytes: 10000

See the Configuration section for details on available parameters.

Installing

Build and run in a ROS 2 workspace:

# 1. Clone your repo and enter the workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/reductstore/reductstore_agent.git
cd ..

# 2. Install system dependencies
rosdep install --from-paths src --ignore-src -r -y

# 3. Build your package
colcon build --packages-select reductstore_agent

# 4. Source the workspace and run your node
source install/local_setup.bash
ros2 run reductstore_agent recorder --ros-args --params-file ./config.yaml

Configuration

The configuration file is a YAML file that defines the storage settings and pipelines. The storage section contains ReductStore connection details, and the pipelines section defines the individual pipelines for recording data.

Storage Configuration

The storage section specifies the ReductStore instance to connect to:

  • url: The URL of the ReductStore instance (e.g., http://localhost:8383).
  • api_token: The API token for authentication. This is required to access the ReductStore instance.
  • bucket: The bucket name where the data will be stored.

More information on how to setup ReductStore can be found in the ReductStore Getting Started Guide.

Pipeline Parameters

Each pipeline supports the following parameters:

  • split:

    • max_duration_s: Maximum duration (in seconds) for each data segment. Must be between 1 and 3600.
    • max_size_bytes (optional): Maximum size (in bytes) for each segment. Must be between 1KB and 1GB.
  • chunk_size_bytes: Size of each MCAP chunk in bytes. Defaults to 1MB. Must be between 1KB and 10MB.

  • compression: Compression algorithm to use. One of:

    • "none"
    • "lz4"
    • "zstd" (default)
  • enable_crcs: Whether to enable CRC checks. Defaults to true.

  • spool_max_size_bytes: Maximum in-memory spool size before flushing. Defaults to 10MB. Must be between 1KB and 1GB.

  • include_topics: A list of ROS topics to record. Each topic must start with a /.

  • filename_mode: Determines how filenames are generated. One of:

    • "timestamp" (default) — Use first topic timestamp for filenames.
    • "incremental" — Use incrementing numbers (0, 1, 2, …) for filenames.
CHANGELOG

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

[0.1.0] - 2025-06-09

Added

  • Implement minimum recorder agent for ROS 2 MCAP files, PR-6
  • Add code linting with flake8, pep257, and copyright checks, PR-19

[0.1.0]: https://github.com/reductstore/reductstore_agent/releases/tag/v0.1.0

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged reductstore_agent at Robotics Stack Exchange

No version for distro kilted. Known supported distros are highlighted in the buttons above.

reductstore_agent package from reductstore_agent repo

reductstore_agent

Package Summary

Tags No category tags.
Version 0.1.0
License MIT
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Description A ROS2 agent to stream data from ROS topics to ReductStore
Checkout URI https://github.com/reductstore/reductstore_agent.git
VCS Type git
VCS Version main
Last Updated 2025-06-09
Dev Status DEVELOPED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 recorder node that logs selected topics to ReductStore, with YAML-driven pipelines (mcap/raw, compression, splitting, down-sampling, labelling).

Additional Links

No additional links.

Maintainers

  • Anthony Cavin

Authors

  • Anthony Cavin

reductstore_agent

ROS 2 Jazzy & Rolling

reductstore_agent is a ROS 2 node that records selected topics into ReductStore, a high-performance storage and streaming solution. ReductStore is an ELT-based system for robotics and industrial IoT data acquisition. It ingests and streams time-series data of any size—images, sensor readings, logs, files, MCAP, ROS bags—and stores it with time indexing and labels for ultra-fast retrieval and management.

This agent is fully configurable via YAML and designed to solve storage, bandwidth, and workflow limitations commonly found in field robotics. It streams data to ReductStore in near real-time with optional compression, splitting, dynamic labeling, and per-pipeline controls.

System Requirements

To use this agent, you must have a running instance of ReductStore. You can start a local instance using Docker, install it via Snap or from binaries. Refer to the official guide for setup instructions: ReductStore Getting Started Guide

This agent is tested with:

  • ROS 2: Jazzy and Rolling
  • OS: Ubuntu 24.04 (Noble)
  • Python: 3.12

Motivation

  • Continuous recording: Prevent oversized rosbag files by splitting recordings by time, size, or topic groups.
  • Bandwidth constraints: Filter and compress data before optionally replicating to a central server or the cloud.
  • Manual workflows: Replace manual drive swaps, custom scripts, and bag handling with automated data management.
  • Lack of filtering: Apply dynamic labels (e.g., mission ID) to tag, search, and retrieve specific data segments.
  • Ubuntu Core: Future Snap integration to support deployment as part of the Ubuntu Core observability stack.

Structure

The agent is configured using a YAML file. Each pipeline is an independent logging unit (only one type of pipeline is supported at the moment where all topics are recorded continuously without filtering).

/**/*:
  ros__parameters:
    storage: # local ReductStore instance
      url: "http://localhost:8383"
      api_token: "access_token"
      bucket: "ros_data"
    pipelines:
      telemetry:
        filename_mode: "timestamp"
        include_topics: 
          - /recorder/input
        split:
          max_duration_s: 3600
          max_size_bytes: 10000

See the Configuration section for details on available parameters.

Installing

Build and run in a ROS 2 workspace:

# 1. Clone your repo and enter the workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/reductstore/reductstore_agent.git
cd ..

# 2. Install system dependencies
rosdep install --from-paths src --ignore-src -r -y

# 3. Build your package
colcon build --packages-select reductstore_agent

# 4. Source the workspace and run your node
source install/local_setup.bash
ros2 run reductstore_agent recorder --ros-args --params-file ./config.yaml

Configuration

The configuration file is a YAML file that defines the storage settings and pipelines. The storage section contains ReductStore connection details, and the pipelines section defines the individual pipelines for recording data.

Storage Configuration

The storage section specifies the ReductStore instance to connect to:

  • url: The URL of the ReductStore instance (e.g., http://localhost:8383).
  • api_token: The API token for authentication. This is required to access the ReductStore instance.
  • bucket: The bucket name where the data will be stored.

More information on how to setup ReductStore can be found in the ReductStore Getting Started Guide.

Pipeline Parameters

Each pipeline supports the following parameters:

  • split:

    • max_duration_s: Maximum duration (in seconds) for each data segment. Must be between 1 and 3600.
    • max_size_bytes (optional): Maximum size (in bytes) for each segment. Must be between 1KB and 1GB.
  • chunk_size_bytes: Size of each MCAP chunk in bytes. Defaults to 1MB. Must be between 1KB and 10MB.

  • compression: Compression algorithm to use. One of:

    • "none"
    • "lz4"
    • "zstd" (default)
  • enable_crcs: Whether to enable CRC checks. Defaults to true.

  • spool_max_size_bytes: Maximum in-memory spool size before flushing. Defaults to 10MB. Must be between 1KB and 1GB.

  • include_topics: A list of ROS topics to record. Each topic must start with a /.

  • filename_mode: Determines how filenames are generated. One of:

    • "timestamp" (default) — Use first topic timestamp for filenames.
    • "incremental" — Use incrementing numbers (0, 1, 2, …) for filenames.
CHANGELOG

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

[0.1.0] - 2025-06-09

Added

  • Implement minimum recorder agent for ROS 2 MCAP files, PR-6
  • Add code linting with flake8, pep257, and copyright checks, PR-19

[0.1.0]: https://github.com/reductstore/reductstore_agent/releases/tag/v0.1.0

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged reductstore_agent at Robotics Stack Exchange

No version for distro github. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.