Views
No views yet
UNITREE_G1_SONIC embodiment. Released as a reference fine-tune for teams building manipulation policies on the GR00T + SONIC + MuJoCo/G1 stack.gr00t-g1-grab-bottle-right-hand-105ep-v1 (DS1, 105 ep) + …-worst-positions-empty-115ep-v3 (DS2, 115 ep, harder starting positions) — with Break-Down wandering removal: rising segments of the distance-to-goal curve are detected and removed, and each kept sub-segment becomes its own episode (so no GR00T action chunk spans a cut). Params: rise_thresh 24 mm/s, smooth_radius 7, min_window 40, grasp_frac 0.95. Result: 371 episodes (210 DS1 sub-segments + 141 DS2 sub-segments + 20 DS2 as-is) / 138,546 frames (124,077 training samples) — the largest set in the lineage. This makes v10 a curation-method sibling of v6 (same merged DS1+DS2 source; v6 uses radius-20 with grasp-frame preservation, v10 uses Break-Down v1-wandering). The natural comparison is v10 vs the v2 champion — does the largest Break-Down-curated set (at ~10 epochs) beat the champion's curated data? — with v10 vs v6 as the curation-method comparison on the shared merge. It is not step-comparable to v7/v8/v9 (different processing and a different step budget → confounded).…-210ep-v2-finetune) — the former production champion (checkpoint-20000, 10/12; superseded by v10, 12/12) — v4 (radius-5, 6/12), v5 (radius-20, 9/12), v6 (merged radius-20, 8/12), v7 (speedup-3mm raw, 7/12), v8 (speedup-3mm + cycle-removed raw, 1/12), v9 (speedup-2mm on curated, 8/12) — and v1 (105ep, 4/12).checkpoint-30000 is the new production champion (12/12, beats v2's 10/12) (train loss 0.0280 @ 30k / 0.0396 @ 20k / 0.0676 @ 10k; all three checkpoints published here). Recipe: 30,000 steps (user choice — not the 20k of v5–v9), save every 10,000 → {checkpoint-10000, checkpoint-20000, checkpoint-30000}. See Evaluation.| Base | GR00T-N1.7-3B — Qwen3-VL vision-language backbone + flow-matching diffusion-transformer (DiT) action head |
| Parameters | 3.14 B total / 1.62 B trainable (51.5%) |
| Dataset | cloudwalk-research/gr00t-g1-grab-bottle-right-hand-v10 — 371 episodes, 138,546 frames @ 50 Hz (124,077 training samples), 480×640 ego_view camera (no wrist cams); largest set in the lineage — merged DS1 (105ep) + DS2 (115ep worst-positions), curated by the Break-Down v1-wandering method |
| Robot target | Unitree G1 (29-DoF body) + built-in G1 hands (7-DoF/hand) + SONIC whole-body controller |
| Embodiment tag | UNITREE_G1_SONIC (unitree_g1_sonic) |
| State space | 43-D (left_leg 6 + right_leg 6 + waist 3 + left_arm 7 + left_hand 7 + right_arm 7 + right_hand 7) |
| Action space | [40 × 78] = 40-step horizon × (64 motion_token + 7 left_hand_joints + 7 right_hand_joints) |
| Hardware | 6× NVIDIA B200 (sm_100 / Blackwell) |
| Mixed precision | bf16 |
| Optimizer | AdamW, lr 1e-4 cosine, warmup_ratio 0.05, weight_decay 1e-5 |
| Steps / batch | 30,000 / global batch 48 (8 per GPU × 6 GPUs); checkpoints saved every 10,000 → {checkpoint-10000, checkpoint-20000, checkpoint-30000} |
| Epochs | 10.39 @ 30k / 6.93 @ 20k / 3.46 @ 10k (1.44M frame-views ÷ 138,546 frames) |
| Augmentation | color jitter (brightness 0.3, contrast 0.4, saturation 0.5, hue 0.08) |
| Wall-clock | 1:34:02 for 30k steps on 6× B200; steady-state ~5.3 it/s |
| Final train loss | 0.0280 @ 30k · 0.0396 @ 20k · 0.0676 @ 10k (run min 0.0207, mean 0.0739) |
| W&B run | redacted (project g1_grab_bottle; offline → synced) |
checkpoint-10000/ # 10k steps (~3.5 ep)
checkpoint-20000/ # 20k steps (~6.9 ep)
checkpoint-30000/ # 30k steps (~10.4 ep) — most-trained rung, natural production candidate
README.md # this fileAll three{checkpoint-10000, checkpoint-20000, checkpoint-30000}are published so the closed-loop eval can pick the best one. Because the dataset is the largest in the lineage, all three rungs sit below v2's validated ~15.3-epoch sweet spot — 30k (~10.4 ep) is the most-trained and the default bet.
checkpoint-NNNNN/ is a self-contained, deploy-ready snapshot:model-00001-of-00002.safetensors + model-00002-of-00002.safetensors (~6.5 GB, bf16)model.safetensors.index.jsonconfig.jsonembodiment_id.json (contains unitree_g1_sonic)processor_config.jsonstatistics.json (dataset normalization stats)experiment_cfg/ (training config snapshot)checkpoint-{10000,20000,30000} were run closed-loop on the physical G1 + SONIC stack and measured against each other and the v2 checkpoint-20000 champion (10/12 across hand-placed bottle poses). Low BC loss is a healthy prerequisite, not evidence of a good policy — this closed-loop result is the load-bearing signal.checkpoint-30000: 12/12 (100%) 🟩 — new production champion. Every position grabbed cleanly on the first trial. This beats the v2 champion (10/12, 83% — 1 🟥 knock-over + 1 🟧 non-convergence) and is the best closed-loop result in the lineage.
⚠️ Single-trial methodology. The 12/12 reflects 1 trial per position. A same-position repeat test (the fixed "black-rectangle" position, 5 trials) landed 4/5 (80%) — i.e. repeated placements at the same spot can fail, and the per-position success rate under repeated sampling is lower than the 1-of-1 grid suggests. Treat the 12/12 as a strong single-pass signal, not a repeated-trial mean. (The 10k and 20k rungs were also tested: results were similar to 30k, with ~1 extra 🟥 knock-over each; the 30k rung was kept as the recommended production checkpoint — no reason found to prefer an earlier rung.)
checkpoint-30000 enters production; v2 is superseded.1from huggingface_hub import snapshot_download
2
3local = snapshot_download(
4 repo_id="cloudwalk-research/gr00t-n17-g1-grab-bottle-rh-371ep-v10-finetune",
5 repo_type="model",
6 allow_patterns=["checkpoint-30000/*"], # or checkpoint-10000/* / checkpoint-20000/*
7)
8print(local)1python -m gr00t.eval.run_gr00t_server \
2 --model-path <local>/checkpoint-30000 \
3 --embodiment-tag UNITREE_G1_SONIC \
4 --device cuda:0 --host 0.0.0.0 --port 5550motion_token + hand-joint targets that the SONIC WBC decodes into whole-body joint commands. The server must be launched with the same UNITREE_G1_SONIC embodiment tag used in training. See the NVlabs VLA inference tutorial. This checkpoint is not plug-and-play on hardware — it requires the SONIC C++ deploy stack and the matching G1 setup.ego_view (head) camera was recorded — no wrist cameras. The policy has never seen wrist views.motion_token + hand joints for UNITREE_G1_SONIC; it only produces robot motion through the SONIC WBC + ZMQ deploy pipeline. It is not directly executable on a bare G1.checkpoint-10000, checkpoint-20000 and checkpoint-30000 are all published so the closed-loop eval can pick the best rung.NCCL_IB_DISABLE=1 NCCL_P2P_LEVEL=NVL (InfiniBand off, P2P over NVLink) and W&B in offline mode (synced post-run). These affect only the training run, not the weights.| Version | Dataset | Episodes | Frames | Epochs | Closed-loop | Notes |
|---|---|---|---|---|---|---|
| v1 | 105ep-v1 | 105 | 70,680 | 13.6 @20k | 4/12 (33%) | First GR00T N1.7 + SONIC fine-tune at CW-RL; right-hand bottle pick. |
| v2 | right-hand-v2 | 210 | 62,772 | 15.3 @20k | ✅ validated (10/12, 83%) | Curated (windows split, bad segments removed). checkpoint-20000 = former production champion (10/12), superseded by v10 (12/12). |
| v4 | radius-5 | 417 | 48,577 | 19.8 @20k | 6/12 (50%) | Zero-wandering, most aggressive curation (radius 5). |
| v5 | radius-20 | 314 | 50,496 | 19.0 @20k | 9/12 (75%) | Zero-wandering, least aggressive curation (radius 20). |
| v6 | radius-20-merged | 502 | 120,017 | 8.0 @20k | 8/12 (67%) | Merged (105-ep + 115-ep "worst-positions"), radius-20 with grasp-frame preservation. |
| v7 | speedup-3mm-v1 | 220 | 60,163 | 16.0 @20k | 7/12 (58%) | DP speedup (wrist-Cartesian, 3 mm/frame) of the raw merged set; no segment removal — raw-branch baseline. |
| v8 | speedup-3mm-cycle-removed-v1 | 405 | 47,944 | 20.0 @20k | 1/12 (8%) | DP speedup + segment removal on the raw merged set (the v7 follow-up). |
| v9 | speedup-2mm-v3 | 193 | 32,786 | 29.3 @20k | 8/12 (67%) | Gentle 2 mm DP speedup on the curated (v2-lineage) data. Smallest set → 10k ≈ sweet spot; trained (loss 0.0308 @20k). |
| v10 (this) | right-hand-v10 | 371 | 138,546 | 10.4 @30k | ✅ 12/12 (100%) — new champion | Largest set — merged DS1+DS2, Break-Down v1-wandering curation (same curation family as v2, on the merge). 30k steps → ~10.4 ep (below v2's ~15.3 sweet spot); the win comes from more curated data, not longer training. checkpoint-30000 = new production champion (supersedes v2). |
cloudwalk-research/gr00t-g1-grab-bottle-right-hand-v10 (CloudWalk Research, 2026), PICO 4 Ultra teleoperation on the Unitree G1 with SONIC WBC; largest set in the lineage (371 ep / 138,546 frames) — merged DS1 (105ep) + DS2 (115ep worst-positions), Break-Down v1-wandering curation.nvidia/GR00T-N1.7-3B using Isaac-GR00T; targets the Unitree G1 with the SONIC whole-body controller.1@misc{cwrl_gr00t_grab_bottle_v10_2026,
2 title = {GR00T N1.7 Fine-Tune v10 --- Unitree G1 "grab the bottle" (right hand, SONIC WBC, largest set, Break-Down-curated merge, 30k steps)},
3 author = {{CloudWalk Robotics Lab}},
4 year = {2026},
5 howpublished = {Hugging Face model repository},
6 url = {https://huggingface.co/cloudwalk-research/gr00t-n17-g1-grab-bottle-rh-371ep-v10-finetune}
7}nvidia/GR00T-N1.7-3B — see the license terms. This is a research preview: not intended for safety-critical use; closed-loop deployment on a physical humanoid requires human oversight.