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.1.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.1.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dora_parquet_recorder-0.1.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","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.1.0.tar.gz
Algorithm Hash digest
SHA256 50bc3db780913d59f8463e568f94e9d22f623d2222f7fc51f2a693d6ee95cedb
MD5 1c8b1dbf209bc8f80993ecdb509dd7bb
BLAKE2b-256 212c65cdefd0e8e25ef5a3730f417fc3e7819a3c44ac9f7c62b854cdae571672

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dora_parquet_recorder-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f54bb4f281e8cfc0e42bf4b8602992fa451e0a169402260156869f7fd9d98543
MD5 2253370129adc55f3a09bc2f89567f5f
BLAKE2b-256 6909c774f950541bff058d383a5a4961709675829f7e8684ee8a524a2d8360c2

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