SberRoboticsCenter/GreenChallengeData
GreenChallengeData Demonstrations of a bimanual humanoid robot performing manipulation tasks in simulation, for training vision-language-action (VLA) policies. The repository gathers four collections: three task-specific deliveries recorded by human teleoperation and augmented with synthetic trajectories, plus a large set of scripted-policy episodes covering 15 tasks. Format: LeRobot v2.1 · 30 fps · 3 cameras, 448×448 (H.264) · 51-dim state, 52-dim action Total: 24,055 episodes… See the full description on the dataset page: https://huggingface.co/datasets/SberRoboticsCenter/GreenChallengeData.
GreenChallengeData
Demonstrations of a bimanual humanoid robot performing manipulation tasks in simulation, for training vision-language-action (VLA) policies. The repository gathers four collections: three task-specific deliveries recorded by human teleoperation and augmented with synthetic trajectories, plus a large set of scripted-policy episodes covering 15 tasks.
Format: LeRobot v2.1 · 30 fps · 3 cameras, 448×448 (H.264) · 51-dim state, 52-dim action Total: 24,055 episodes · 15,169,390 frames (≈140 h) · 72,165 videos · ≈594 GB
Repository layout
teleop_kitchen_tea_set/ task-specific delivery
teleop/<dataset>/ human teleoperation, one LeRobot dataset per recording session
mimic/<dataset>/ synthetic trajectories in the same scene
teleop_darkstore/ same structure
teleop_kitchen_plate/ same structure
scripted/
vla/ LeRobot dataset (data/, videos/, meta/)
metadata/refs/ sha256 manifest of every fileEvery <dataset> directory is a self-contained LeRobot v2.1 dataset:
data/chunk-XXX/episode_NNNNNN.parquet telemetry, chunks of 1000 episodes
videos/chunk-XXX/<camera>/episode_NNNNNN.mp4 observation.images.cam_head
observation.images.cam_left_wrist
observation.images.cam_right_wrist
meta/info.json schema, joint_names, fps, totals
meta/episodes.jsonl per-episode: length, task_index, action_config, validity masks
meta/subtasks.jsonl per-frame subtask annotation
meta/tasks.jsonl task text
meta/episodes_stats.jsonl per-episode statistics for normalisation
meta/validation_episodes.json suggested validation splitEpisode indices restart from 0 inside each <dataset>; there is no global numbering across the repository.
Collections
teleopkitchentea_set
Kitchen scene: pick a cup with the right hand and a tea can with the left, place both on a tray.
Task text for the first four datasets: Pick up the cup with the right hand and the Tea can with the left hand, then place both items upright on the tray, with six subtasks:
Raise your right hand → Pick the cup from the shelf with your right hand → Place the cup upright onto the tray with your right hand → Raise your left hand → Pick the Tea can from the shelf with your left hand → Place the Tea can upright onto the tray with your left hand
candidate65 uses the same scene but a different scenario and annotation: Place the cup and the tea can on the tray, four subtasks without the Raise steps, and the tea can ends up lying on the tray rather than standing upright. Treat it as a separate task rather than extra episodes of the one above.
teleop_darkstore
Warehouse scene: move a misplaced red soda can from the snacks shelf to a free slot on the drinks shelf, right hand only.
Task text: Move the misplaced red soda can to a free position on the Drinks shelf, two subtasks:
Pick the bottle from the Snacks shelf with your right hand → Place the bottle onto a Drinks shelf next to other bottles with your right hand
In this scene the head camera is tilted upwards, so the manipulated object is mostly visible in the right wrist camera.
teleopkitchenplate
Kitchen scene: take a plate from the dish drying rack and place it on a tray, left hand only.
Task text: Raise your left hand, pick up the plate, place the plate onto the tray, three subtasks:
Raise your left hand → Pick the plate from the dish drying rack with your left hand → Place the plate onto the tray with your left hand
scripted
9,144 episodes generated by a scripted policy in a digital twin, covering 15 tasks in four scenes (kitchen, shop, warehouse and a room with two tables). Episodes are long — median 1,087 frames (36 s), maximum 2,932 (98 s) — and each is annotated with 2–6 subtasks.
In the basket tasks the robot walks between two tables; in the other tasks it stays in place.
Data fields
All four collections share the same observation and action layout.
Joint names are listed in meta/info.json → joint_names. Hand values: an open palm is ≈ −0.1 summed over the six joints of a hand, a closed fist ≈ 6.3; a grasp lies in between depending on object size.
Validity masks (state_valid_mask / action_valid_mask in meta/episodes.jsonl) mark channels that carry no signal in a given episode, and they differ between collections:
- teleoperation datasets: legs (0–11) and channels 41–50 are invalid;
- mimic datasets: channels 41–50 are invalid;
scripted: channels 45–50 are invalid, or 46–49 in the walking tasks, where linear X and angular Z velocity are meaningful. Legs are valid and do move.
task_index is a plain index within each teleoperation delivery, and a 64-bit hash of the task text in scripted. In scripted the index column is episode_index·10⁹ + frame_index rather than a running counter.
Subtask annotation
Every episode is segmented into subtasks with frame boundaries, in meta/subtasks.jsonl:
{"episode_index": 0,
"subtasks": [{"descriptions": ["Raise your left hand"],
"start_frame": 0, "end_frame": 319, "skill": "Raise"}, ...]}Segments cover the episode end to end with no gaps or overlaps. The same segmentation is mirrored in the action_config field of meta/episodes.jsonl. For language-conditioned training, take instructions verbatim from descriptions; for the whole-task text, use meta/tasks.jsonl indexed by task_index.
Additional metadata
The teleoperation collections carry extra files produced by the recording pipeline:
meta/world_poses.jsonl— per-frame 6-DoF poses of every scene object, of the tray/target guides and of 126 robot links, plus wall-clock timestamps. This is the only source for verifying task success; it is large (≈72 GB in total across the repository) and is not needed for behaviour cloning.meta/format_warnings.jsonl— soft warnings raised by the delivery validator, mainly short subtask segments.meta/subtask_projection_provenance.jsonl— how the subtask boundaries were derived.meta/super_format.json— delivery profile and task text.
scripted instead ships metadata/refs/current-data.json with the sha256 of every file, and its episodes_stats.jsonl contains telemetry statistics only — compute image statistics separately if you normalise the visual input.
Usage
from huggingface_hub import snapshot_download
# one dataset
path = snapshot_download(
repo_id="SberRoboticsCenter/GreenChallengeData",
repo_type="dataset",
allow_patterns="teleop_kitchen_plate/teleop/kitchen_e3_e-fNw__success401__*/**",
)
# everything except the large world-pose files
path = snapshot_download(
repo_id="SberRoboticsCenter/GreenChallengeData",
repo_type="dataset",
ignore_patterns="*world_poses.jsonl",
)Each <dataset> directory is read by the standard LeRobot v2.1 loader. Video frame t corresponds to the parquet row with frame_index = t.
