Skip to main content
Collection is a primitive in rfx, not a side workflow. The collection API records observations through the same robot interface used by deployment and simulation.

CLI

rfx record \
  --robot so101 \
  --repo-id my-org/demos \
  --episodes 10 \
  --duration 30
Dry-run without hardware:
rfx record --robot so101 --repo-id my-org/demos --mock --duration 5
Push after recording:
rfx record --robot go2 --repo-id my-org/demos --duration 20 --push
See the full flag reference on the rfx record page.

Python

import rfx

dataset = rfx.collection.collect(
    "so101",
    "my-org/demos",
    episodes=2,
    duration_s=10,
)

Where data lives

Datasets land in the LeRobot format — HuggingFace’s open episode schema for robotics datasets. Episodes include aligned observations and actions at the configured rate, with camera streams recorded as video tracks. A manifest records robot config, contract version, and the rfx version used during collection — this makes downstream training reproducible and lets the operator checklist verify schema compatibility before deploy.

MCAP sidecar

Emit an MCAP sidecar alongside the dataset for ROS-compatible tooling:
rfx record --robot so101 --repo-id my-org/demos --duration 15 --mcap