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.