Skip to main content

ROS Bag Loader

Download ROS bag files using JIT (Just-In-Time) manifest with presigned URLs.


Plugin: rosbag-loader Group: Core / ROS

Task Type
dev.bringup.plugin.core.rosbag.LoadById

Overview

The ROS Bag Loader is a specialized task for downloading ROS bag files from cloud storage. It uses a JIT manifest system with presigned URLs to securely download bag files without requiring permanent credentials.

When a flow has inputs matching rosbag naming conventions (e.g., rosbag_id), the Flow Service can automatically insert a LoadById task at the beginning of the flow.


Examples

Basic rosbag loading

id: load-rosbag
namespace: robotics
description: Download and inspect a ROS bag file

inputs:
- id: rosbag_id
type: STRING
required: true
description: The ID of the rosbag to download

variables:
BM_ROSBAGS_DIR: /tmp/bagmaster/rosbags
BM_ROSBAGS_MANIFEST_PATH: /tmp/bagmaster/rosbags/manifest.json

tasks:
- id: bm_rosbag_loader
type: dev.bringup.plugin.core.rosbag.LoadById

- id: inspect
type: dev.bringup.plugin.core.shell.Shell
commands:
- ls -la ${BM_ROSBAGS_DIR}
- cat ${BM_ROSBAGS_MANIFEST_PATH}
- echo "Rosbag files downloaded successfully"

Properties


Common Task Properties

See Shell > Common Task Properties for id, type, description, disabled, timeout, retry, allow_failure, run_if, and worker_group.


Auto-Insertion

The Flow Service automatically inserts a LoadById task when it detects rosbag-related inputs in a flow. The detection is convention-based:

  • Input IDs matching rosbag patterns (e.g., rosbag_id) trigger automatic insertion
  • The loader task is placed at the beginning of the task list
  • Required variables (BM_ROSBAGS_DIR, BM_ROSBAGS_MANIFEST_PATH) are added to the flow

This means you can sometimes omit the loader task entirely if your flow follows naming conventions:

# The loader task will be auto-inserted before 'process'
id: auto-load-example
namespace: robotics
inputs:
- id: rosbag_id
type: STRING
tasks:
- id: process
type: dev.bringup.plugin.core.shell.Shell
commands:
- echo "Rosbag is already available at ${BM_ROSBAGS_DIR}"

Notes

  • The rosbag loader requires network access to the Bringup cloud storage endpoint.
  • Presigned URLs have a limited validity window; flows should be executed promptly after creation.
  • The manifest file (manifest.json) contains metadata about all downloaded files, useful for downstream tasks.
  • Large rosbag files may require extended timeouts on the task.