CoolFace
Datasetpublic

cloudwalk-research/gr00t-g1-grab-bottle-right-hand-zero-wandering-smooth-radius-15

Grab-Bottle (right hand) - zero-wandering, smoothing half-width 15 LeRobot v2.1 dataset for the Unitree G1 right-hand bottle-grab task, curated to remove non-purposeful arm motion ("wandering") so a trained policy does not learn unstable behavior. Derived from the 105-episode source teleoperation set by running the kinematic zero-wandering pipeline at smoothing half-width 15; each surviving clean sub-segment is emitted as its own episode (no action chunk ever spans a cut). This… See the full description on the dataset page: https://huggingface.co/datasets/cloudwalk-research/gr00t-g1-grab-bottle-right-hand-zero-wandering-smooth-radius-15.

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
0likes472downloads
Dataset Card

Grab-Bottle (right hand) - zero-wandering, smoothing half-width 15

LeRobot v2.1 dataset for the Unitree G1 right-hand bottle-grab task, curated to remove non-purposeful arm motion ("wandering") so a trained policy does not learn unstable behavior. Derived from the 105-episode source teleoperation set by running the kinematic zero-wandering pipeline at smoothing half-width 15; each surviving clean sub-segment is emitted as its own episode (no action chunk ever spans a cut).

This is one of four single-source variants (curating the 105-ep set alone) plus a radius-20 merged set that additionally folds in the worst-positions 115-ep set. The variants differ only in the smoothing half-width - how briefly a motion may drift outward before it is removed. Larger = more permissive.

metric (105-ep source set)value
smoothing half-width15 frames
safe_frames (min kept block)40
clean segments kept342
frames removed28.4%
training samples removed44.0%

The four single-source variants

Quick facts

Episodes342 (clean segments)
Frames50,634 @ 50 fps
FormatLeRobot v2.1
Cameraego_view 640×480 (head), H.264 yuv420p, no audio
RobotUnitree G1 (29-DoF body) + Inspire FTP hands (7-DoF/hand: 6 finger joints + 1 grip pad, via InspireFTPGripMapper)
Task instruction"grab the bottle" (single task, RIGHT hand)
State dim43 (observation.state)
Actionaction.motion_token [64] (latent) + action.wbc [43] whole-body
Mean clean-segment length3.0 s (148 f)
Source105ep-v1 source set (105 ep / 70,680 f)
CollectionPICO 4 Ultra teleop (headset + 2 controllers, 3-pt VR) + 2 ankle trackers -> SMPL retargeting (CloudWalk Robotics Lab)
VisibilityPublic
LicenseApache-2.0

Collection setup

Same data collection as the 105-ep source set

  • —see that card for the full setup. In brief:
  • —Robot: Unitree G1 (29-DoF body) + Inspire FTP hands (7-DoF/hand: 6 finger joints + 1 grip pad, via InspireFTPGripMapper)
  • —Whole-body controller: SONIC WBC
  • —Teleoperation: PICO 4 Ultra (headset + 2 controllers, 3-point VR tracking) + 2 ankle trackers -> SMPL retargeting
  • —Camera: Intel RealSense D435I on the G1 head; Hand control: grip buttons close the Inspire FTP right hand during the grasp
  • —Task prompt: the teleop demonstrations were collected under the task prompt "grab the bottle"; the same prompt is used to invoke the policy at inference (see the model cards' "Prompt conditioning" caveat).

This card's dataset is the radius-15 curation of that source: the kinematic zero-wandering pipeline splits each source episode into clean sub-segments by removing non-purposeful wandering (see Curation method).

Action and state layout

This is a GR00T + SONIC dataset, not a flat-joint-vector dataset. The policy action is emitted as a 64-D latent `motion_token` (decoded by the SONIC whole-body controller into whole-body joint commands) plus 7-D left/right hand-joint targets - it only produces motion through the SONIC WBC + ZMQ deploy pipeline, not on a bare G1.

FieldShapeMeaning
observation.state43leftleg 6 + rightleg 6 + waist 3 + leftarm 7 + lefthand 7 + rightarm 7 + righthand 7
action.wbc43whole-body joint targets (same layout as observation.state)
action.motion_token64latent action token decoded by the SONIC WBC
observation.eef_state14left/right wrist pos (3) + abs quat (4), x2
observation.images.ego_view480×640×3head camera (video)

See meta/info.json for the full feature schema, including teleop.* retargeting fields and observation.* base state.

Curation method

Kinematic goal-progress curation (no vision). The (x, y, z) of the right wrist is known each frame; the goal_position is the wrist's position at the moment the grip is ~95 % closed. Wandering happens whenever the distance between current_position and goal_position grows.

The sensitivity is controlled by one parameter, the smoothing radius (half-width): like a low-pass filter, a larger half-width ignores briefer wandering. Tested at half-widths of 5, 10, 15, 20 frames; all other parameters are chosen in a principled manner (see below).

Never removed (two gates):

  • —before the point of maximum distance (hand getting into position)
  • —at or after the grasp (always kept)

Post-processing:

  • —pad each removed block by the smoothing half-width (compensates the blur the smoothing introduces)
  • —drop kept blocks shorter than 40 frames (too short to yield any training samples under the action horizon)

Provenance for every output episode (source episode, source window, curation mode) is recorded in meta/episodes.jsonl.

The four single-source variants

Each variant differs only in the smoothing half-width; everything else is fixed. Metrics are aggregated over all 105 source episodes.

smoothing half-widthclean segments keptframes removedtraining samples removed
541731.3%51.5%
1037129.9%47.3%
1534228.4%44.0%
2031428.6%42.6%

A larger half-width tolerates briefer wandering, so it removes fewer, longer blocks: fewer (but longer) clean segments survive, and fewer training samples are discarded.

What this dataset is - and is not

  • —Is: a zero-wandering-curated variant of the 105-ep source. Brief non-purposeful arm motion ("wandering") is removed; each surviving clean sub-segment is its own episode (no action chunk spans a cut).
  • —Is: a curation experiment - no fine-tune was produced from this variant. The fine-tuned siblings are v4 (from radius-5) and v5 (from radius-20).
  • —Is not: the source teleoperation set. For un-segmented demonstrations use the 105-ep source set.
  • —Is not: the merged set. The radius-20-merged set additionally folds in the worst-positions 115-ep set and re-curates both sources.
  • —Right-hand only, single camera, single task - see caveats below.

How to download

python
from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="cloudwalk-research/gr00t-g1-grab-bottle-right-hand-zero-wandering-smooth-radius-15",
    repo_type="dataset",
    local_dir="data/real/gr00t-g1-grab-bottle-right-hand-zero-wandering-smooth-radius-15",
)

How to load

python
from lerobot.common.datasets.lerobot_dataset import LeRobotDataset

ds = LeRobotDataset(
    "gr00t-g1-grab-bottle-right-hand-zero-wandering-smooth-radius-15",
    repo_id="cloudwalk-research/gr00t-g1-grab-bottle-right-hand-zero-wandering-smooth-radius-15",
)
print(ds.num_episodes, ds.num_frames, ds.fps)

How to use for fine-tuning & inference

No fine-tune was produced from this variant - it is a curation experiment probing an intermediate smoothing half-width. The fine-tuned siblings are v4 (from radius-5) and v5 (from radius-20).

To fine-tune this variant yourself, use the Isaac-GR00T stack on NVIDIA B200 GPUs, then serve with:

bash
python -m gr00t.eval.run_gr00t_server \
    --model-path <checkpoint-dir> \
    --embodiment-tag UNITREE_G1_SONIC \
    --device cuda:0 --host 0.0.0.0 --port 5550

The server must be launched with the UNITREE_G1_SONIC embodiment tag used in training.

Caveats

  1. 1.Right-hand-only, single task, single camera. Left-hand and locomotion dims reflect the largely stationary demonstrations; do not expect bimanual or walking behavior. Only the head ego_view was recorded - no wrist cameras.
  2. 2.Curated, not source. Episodes are clean sub-segments, so "episode length" is a clean-segment length (shorter than full demonstrations); wandering has been removed by construction. Use the source set for the un-segmented distribution.
  3. 3.safe_frames = 40 for these single-source variants. The radius-20-merged set uses safe_frames = 50 on its 105-ep pass, so it keeps 270 segments from the 105-ep set vs this set's 342 - not a discrepancy, a different threshold.
  4. 4.Deployment needs the SONIC stack. Actions are motion_token + hand joints for the UNITREE_G1_SONIC embodiment; they only produce motion through the SONIC WBC + ZMQ deploy pipeline, not on a bare G1.

Lineage

This set is a single-source zero-wandering curation of the 105-ep source set. Its direct siblings are the other radius-(5, 10, 15, 20) variants (same method, 105-ep alone), the radius-20-merged set (same method, additionally folding in the 115-ep worst-positions set -> v6), and the right-hand-v2 set (same 105-ep source, the earlier distance-to-goal wandering removal -> v2 production champion). The full family - including the DP-resampled both-source sets - is in the table below.

DatasetDerived fromEpisodesFramesNotes
105ep-v1- (source)10570,680Base teleoperation set -> v1 fine-tune
worst-positions-empty-115ep-v3- (source)11578,621Worst-positions + 20 empty-scene episodes (eps 95-114, no bottle/no movement)
right-hand-v2105ep-v121062,772Distance-to-goal wandering removal -> v2 fine-tune (production champion)
zero-wandering-smooth-radius-5105ep-v141748,577Zero-wandering r=5 (most aggressive) -> v4 fine-tune
zero-wandering-smooth-radius-10105ep-v137149,578Zero-wandering r=10 (experiment, no fine-tune)
[zero-wandering-smooth-radius-15](https://huggingface.co/datasets/cloudwalk-research/gr00t-g1-grab-bottle-right-hand-zero-wandering-smooth-radius-15) (this)105ep-v134250,634Zero-wandering r=15 (experiment, no fine-tune)
zero-wandering-smooth-radius-20105ep-v131450,496Zero-wandering r=20 (least aggressive) -> v5 fine-tune
radius-20-merged105ep-v1 + 115ep-v3502120,017Both sources, zero-wandering r=20, grasp-frame preservation; 115ep eps 0-94 curated, 95-114 as-is -> v6 fine-tune
speedup-3mm-v1105ep-v1 + 115ep-v322060,163DP wrist-Cartesian resample 3mm/frame, max_K=40, NO segment removal -> v7 fine-tune (trained 2026-06-25, checkpoint-20000 only)
speedup-3mm-cycle-removed-v1105ep-v1 + 115ep-v340547,944DP resample + cycle detection + sub-episode splitting (no fine-tune yet)

Attribution

Collected at the CloudWalk Robotics Lab (CW-RL) using PICO 4 Ultra teleoperation on the Unitree G1 with the SONIC whole-body controller, then curated with the kinematic zero-wandering pipeline. Stored in the LeRobot v2.1 format.

Citation

bibtex
@misc{cwrl_grab_bottle_radius_15_2026,
  title        = {GR00T G1 "grab the bottle" --- right-hand zero-wandering curation, smoothing half-width 15 (342 episodes, SONIC WBC)},
  author       = {{CloudWalk Robotics Lab}},
  year         = {2026},
  howpublished = {Hugging Face dataset repository},
  url          = {https://huggingface.co/datasets/cloudwalk-research/gr00t-g1-grab-bottle-right-hand-zero-wandering-smooth-radius-15}
}

@article{gr00t_n1_2025,
  title         = {{GR00T N1}: An Open Foundation Model for Generalist Humanoid Robots},
  author        = {{NVIDIA}},
  year          = {2025},
  eprint        = {2503.14734},
  archivePrefix = {arXiv},
  url           = {https://arxiv.org/abs/2503.14734}
}

@article{sonic_2025,
  title         = {{SONIC}: Whole-Body Controller for Humanoid Robot Teleoperation},
  year          = {2025},
  eprint        = {2511.07820},
  archivePrefix = {arXiv},
  url           = {https://arxiv.org/abs/2511.07820}
}

@software{lerobot2024,
  title  = {{LeRobot}: State-of-the-art Machine Learning for Real-World Robotics in {PyTorch}},
  author = {{Hugging Face}},
  url    = {https://github.com/huggingface/lerobot},
  year   = {2024}
}

License

Released under Apache-2.0 by CloudWalk Research. Demonstrations were collected on hardware owned by CloudWalk; the SONIC WBC and GR00T stacks retain their respective upstream licenses. Research preview - closed-loop deployment on a physical humanoid requires human oversight.