Skip to main content

Crowdsourced egocentric manipulation data pipeline for robot learning

Project description

EgoCrowd

Crowdsourced egocentric manipulation data pipeline for robot learning.

Turn iPhone recordings into robot training data. Zero additional hardware required.

Paper Dataset Demo

Install

pip install egocrowd

With GPU support (for local object detection + hand pose):

pip install egocrowd[gpu]

With simulation (for MuJoCo replay):

pip install egocrowd[sim]

Quick Start

Download and explore the dataset

from egocrowd import download_dataset
import h5py

# Download from HuggingFace
path = download_dataset("egocrowd/pick-mug-v5")

with h5py.File(path, "r") as f:
    ep = f["episode_0"]
    qpos = ep["observations/qpos_arm"][:]       # (270, 7) joint positions
    ee = ep["observations/ee_pos"][:]            # (270, 3) end-effector XYZ
    actions = ep["actions/target_qpos"][:]       # (270, 7) target joints
    print(f"Mug lift: {ep.attrs['mug_lift_cm']:.1f}cm")
# -> Mug lift: 17.7cm

Process a new recording

# Parse .r3d file from Record3D
egocrowd process recording.r3d --object mug --output ./my_dataset

# With cloud GPU processing (GroundingDINO + HaMeR)
egocrowd process recording.r3d --cloud --output ./my_dataset

Use as a library

from egocrowd import parse_r3d, spatial_trajectory
from egocrowd.export import to_lerobot_hdf5, to_rlds_json

# Parse iPhone recording
data = parse_r3d("recording.r3d", output_dir="parsed/")

# Generate robot trajectory (after hand pose extraction)
traj = spatial_trajectory(
    hamer_results="parsed/hamer_results.json",
    object_poses="parsed/object_poses_3d.json",
)

# Export to LeRobot format
to_lerobot_hdf5(traj, qpos_data, "output/data.hdf5")

Pipeline Architecture

iPhone (.r3d)
    |
    v
[1. Parse] ──> RGB frames + LiDAR depth + camera poses
    |
    v
[2. Detect] ──> GroundingDINO: open-vocab object detection
    |
    v
[3. Hand Pose] ──> HaMeR: 3D hand mesh reconstruction (93.7% coverage)
    |
    v
[4. Retarget] ──> Spatial trajectory: hand motion -> robot EE targets
    |
    v
[5. Export] ──> LeRobot HDF5 | RLDS JSON | Raw JSON

Key Results

  • 18.1cm clean mug lift in MuJoCo simulation from a single iPhone recording
  • 93.7% hand pose coverage via HaMeR (no wearable sensors needed)
  • $0 contributor hardware cost (core tier: iPhone with LiDAR only)
  • 9-55x cheaper than teleoperation-based data collection

Supported Formats

Format File Use Case
LeRobot HDF5 data.hdf5 HuggingFace ecosystem, policy training
RLDS JSON episode.json RT-X, Octo, Open X-Embodiment
Raw JSON raw.json Custom pipelines, analysis

Citation

@article{nyamekye2026egocrowd,
  title={EgoCrowd: Crowdsourced Egocentric Manipulation Data at Consumer Cost},
  author={Nyamekye, Christian},
  journal={arXiv preprint arXiv:TODO},
  year={2026}
}

License

CC-BY-4.0

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

egocrowd-0.1.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

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

egocrowd-0.1.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: egocrowd-0.1.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for egocrowd-0.1.0.tar.gz
Algorithm Hash digest
SHA256 70fc097903616766a8a2f53514fc4bc39b35d4f9efeef36c015080961b45f0ba
MD5 07e8e16196e18b2fd33d400391b1f5e9
BLAKE2b-256 2aad34210333ee3cee81f328d1cf154c13c4a53cd18e45b562860d8b9bf61091

See more details on using hashes here.

File details

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

File metadata

  • Download URL: egocrowd-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for egocrowd-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc371fdef212a950de9a1f8ad119546ceda67ea84778083e7c0544f8906d775a
MD5 0f2d0a1f413427bfbf441ecc06f7ae18
BLAKE2b-256 8e3cf6e89cd1a4ef1555ddf5aeba5ddb5dce5cc1aed61abc6e4d68126423e0ad

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