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.
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.
The four single-source variants
- `zero-wandering-smooth-radius-5` (half-width 5)
- `zero-wandering-smooth-radius-10` (half-width 10)
- `zero-wandering-smooth-radius-15` (half-width 15) - this dataset
- `zero-wandering-smooth-radius-20` (half-width 20)
Quick facts
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.
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.
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
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
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:
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 5550The server must be launched with the UNITREE_G1_SONIC embodiment tag used in training.
Caveats
- 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_viewwas recorded - no wrist cameras. - 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.
- 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.
- Deployment needs the SONIC stack. Actions are
motion_token+ hand joints for theUNITREE_G1_SONICembodiment; 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.
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
@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.
