Skip to main content

A generic, zero-copy data recorder for dora.

Project description

dora-dataset-record

Node for recording robot datasets in LeRobot format. You can captures synchronized camera feeds and robot poses to create high-quality datasets for imitation learning and robot training.

  • Robot pose recording - Capture both state and action data
  • Multi-camera support - Record from multiple cameras simultaneously
  • LeRobot dataset format (v2.1) - Direct integration with HuggingFace LeRobot datasets
  • Episode management - Automatic episode segmentation with reset phases

Quick Start

1. Installation

# Source your venv
cd dora/node-hub/dora-dataset-record
uv pip install -e .

2. Usage Guide

Create a dataflow file, see examples/lerobot-dataset-record/dataset_record.yml:

nodes:
  # Dataset recorder
  - id: dataset_recorder
    build: pip install -e ../../dora-dataset-record
    path: dora-dataset-record
    inputs:
      laptop: laptop_cam/image
      front: front_cam/image
      robot_state: robot_follower/pose
      robot_action: leader_interface/pose
    outputs:
      - text
    env:
      # Required settings
      REPO_ID: "your_username/your_dataset_name"
      SINGLE_TASK: "Pick up the cube and place it in the box"
      ROBOT_TYPE: "your_robot_type"

      # Recording settings
      FPS: "30"
      TOTAL_EPISODES: "50"
      EPISODE_DURATION_S: "60"
      RESET_DURATION_S: "15"

      # Camera configuration
      CAMERA_NAMES: "laptop,front"
      CAMERA_LAPTOP_RESOLUTION: "480,640,3"
      CAMERA_FRONT_RESOLUTION: "480,640,3"

      # Robot configuration
      ROBOT_JOINTS: "joint1,joint2,joint3,joint4,joint5,gripper"

      # Optional settings
      USE_VIDEOS: "true"
      SAVE_AVIF_FRAMES: "true" # This will additionally save frames
      PUSH_TO_HUB: "false"
      PRIVATE: "false"
      TAGS: "robotics,manipulation,imitation_learning"

  # Visualization with rerun
  - id: plot
    build: pip install dora-rerun
    path: dora-rerun
    inputs:
      text: dataset_recorder/text

3. Start Recording the dataset

dora build dataset_record.yml
dora run dataset_record.yml

The node will send instructions on dora-rerun, about episode starting, reset time, Saving episodes etc.

Configuration

Required Environment Variables

Variable Description Example
REPO_ID HuggingFace dataset repo "username/dataset_name"
SINGLE_TASK Task description "Pick and place objects"
CAMERA_NAMES Comma-separated camera names "laptop,front,top"
CAMERA_*_RESOLUTION Resolution for each camera "480,640,3"
ROBOT_JOINTS Comma-separated joint names "joint1,joint2,gripper"

Optional Settings

Variable Default Description
FPS 30 Recording frame rate (match camera fps)
TOTAL_EPISODES 10 Number of episodes to record
EPISODE_DURATION_S 60 Episode length in seconds
RESET_DURATION_S 15 Break between episodes to reset the environment
USE_VIDEOS true Encode as MP4 videos, else saves images
PUSH_TO_HUB false Upload to HuggingFace Hub
PRIVATE false Make dataset private
ROOT_PATH ~/.cache/huggingface/lerobot/your_repo_id Local storage path where you want to save the dataset

License

This project is released under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dora_parquet_recorder-0.5.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dora_parquet_recorder-0.5.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file dora_parquet_recorder-0.5.0.tar.gz.

File metadata

  • Download URL: dora_parquet_recorder-0.5.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dora_parquet_recorder-0.5.0.tar.gz
Algorithm Hash digest
SHA256 dcd423a1006d2dd37c295553a009ee761ab9497abaff1d8c2f58649dbaa678bf
MD5 21689f76d2b4e2f7a8155f45c4e5ca88
BLAKE2b-256 de1e917d3288b9d79cf1a0b01d0f1a0902cd6c5426dd657fb5b0ff38b1492e40

See more details on using hashes here.

File details

Details for the file dora_parquet_recorder-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: dora_parquet_recorder-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dora_parquet_recorder-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2a31f64c1ffde5894a7850c33c8e975aa8cd2d0ddf8fc9ac2886fadfa4a2360
MD5 5f3e4178c35dbf5c5310276fa2fb2e98
BLAKE2b-256 889b34b41b3c087f0281b5c2582326254356cbfd25f80feae678901068917904

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page