Single-handed pick task ("grab the bottle", RIGHT hand). Trained at the CloudWalk Robotics Lab (CW-RL), 2026-06, on an aggressively curated 417-episode real-robot teleoperation dataset, for the UNITREE_G1_SONIC embodiment. Released as a reference fine-tune for teams building manipulation policies on the GR00T + SONIC + MuJoCo/G1 stack.
Predecessors:v2 (…-210ep-v2-finetune) — the former production champion (superseded by v10 …-371ep-v10-finetune, 12/12) (checkpoint-20000, grasps from poses where v1 failed) — and v1 (…-105ep-v1-finetune). v4 re-trains the same recipe on a more aggressively curated dataset: per the dataset name (zero-wandering-smooth-radius-5), wandering segments (drift without progress toward the grasp) were removed, trajectories smoothed, and a radius-5 filter applied — yielding 417 short windows.
This is a behavior-cloning fine-tune of the full 3B model. Status: trained 2026-06-19, closed-loop eval complete (6/12) — checkpoint-20000 is published; it did not beat the v2 champion, so v2 remains in production (see Evaluation).
DeepSpeed ZeRO partition states, optimizer, scheduler and RNG files are intentionally omitted — they are needed only to resume training and would add several GB per checkpoint.
Evaluation
Why checkpoint-20000. The v4 dataset is smaller than v2 (48,577 vs 62,772 frames), so 20,000 steps is ≈19.8 epochs vs v2's validated 15.3. Checkpoints were saved every 5k during training (5k/10k/15k/20k), but only checkpoint-20000 (≈19.8 ep) is published; the production checkpoint is chosen by closed-loop comparison, not by training loss. There is no held-out split; train loss is a fit probe, not a generalization measure.
Closed-loop evaluation — completed (real G1).checkpoint-20000 was run closed-loop on the physical G1 + SONIC stack and measured against the v2 checkpoint-20000 champion. Low BC loss is a healthy prerequisite, not evidence of a good policy — this closed-loop result is the load-bearing signal.
Procedure. The bottle was placed at 12 fixed positions spanning one half-side of the table (the table is fixed relative to the robot). These are the same 12 positions used for data collection (see the source dataset card). One trial per position (12 trials) gives the grid result. Legend: 🟥 red = knocked the bottle over · 🟧 orange = stuck in an "indecision" loop, never reaching the bottle · 🟩 green = successfully grasped the bottle. The policy was invoked with the task prompt "grab the bottle" — the same prompt used to collect the data.
⚠️ Single-trial methodology. Each of the 12 grid positions is tested once (1 trial/position); repeated placements at the same spot can succeed or fail differently — the fixed-position repeat test, where run, shows this per-position variance. Treat the grid score as a single-pass signal, not a repeated-trial mean.
Conclusion. The most-aggressive curation did not help. v4 has the highest knock-over rate in the family (4/12, 33%) and middling success (6/12, 50%). Radius-5 zero-wandering cuts episodes into the shortest windows, which the lineage already flagged as overfit-prone (~19.8 epochs) — the closed-loop result bears that out. v4 does not beat the v2 champion; v2 remains in production.
Closed-loop control of the G1 (sim or real) is driven by the SONIC whole-body controller in GR00T-WholeBodyControl: the policy emits motion_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.
Known caveats
Right-hand-only, single task. The dataset is one task ("grab the bottle") executed with the right hand. Left-hand and locomotion action dims reflect the (largely stationary) demonstrations; do not expect bimanual or locomotion behavior.
Single camera. Only the ego_view (head) camera was recorded — no wrist cameras. The policy has never seen wrist views.
Deployment needs the SONIC stack. The checkpoint outputs 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.
Train loss is not held-out. No episode split; the loss is a smoothed train-fit probe, not a generalization metric.
Overfit risk — heightened. 20,000 steps = ≈19.8 epochs on 48,577 frames (more than v2's 15.3, because v4 has fewer frames). Whether ≈19.8 epochs overfits this aggressively-curated set is decided by closed-loop eval against the v2 champion.
Aggressively curated dataset. v4 drops wandering segments, smooths trajectories and applies a radius-5 filter (per the dataset name) → 417 short windows (~116 frames/ep). Whether this helps over v2's curation is decided by closed-loop eval.
Grip anticipation (family-wide). Observed in closed-loop eval: the policy performs the full grasp motion — approaching and closing the hand — even when no bottle is on the table, and even with the table removed entirely, as if the bottle were present. This grip-anticipation artifact is shared across the whole grab-bottle family (the same training demonstrations). Worth gating on bottle detection for downstream deployment.
Prompt conditioning — untested. All training data was collected with the task prompt "grab the bottle", and the same prompt is used to invoke the policy at inference — a constant across every episode and every model in this family. We have not tested whether conditioning the prompt on the bottle's presence (e.g. "grab the bottle if there is one in the image") would gate the grasp and reduce the grip-anticipation artifact noted above (the robot closing its hand even with no bottle present). It is a plausible mitigation, but unverified: the model may have learned the grasp as an unconditional reflex from the demonstrations, independent of prompt phrasing.
Training environment. Trained on 6× B200 GPUs with 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.
DP speedup resampling (wrist-Cartesian, 3 mm/frame, max_K=40) of the merged set; no segment removal — reference baseline. ≈16 ep @20k lands on v2's sweet spot.
Developed by cloudwalk-research in the CloudWalk Robotics Lab (CW-RL). Fine-tuned from nvidia/GR00T-N1.7-3B using Isaac-GR00T; targets the Unitree G1 with the SONIC whole-body controller.
Citation
bibtex
1@misc{cwrl_gr00t_grab_bottle_v4_2026,
2 title = {GR00T N1.7 Fine-Tune v4 --- Unitree G1 "grab the bottle" (right hand, SONIC WBC, zero-wandering curated 417-ep dataset)},
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-417ep-v4-finetune}
7}
License
Inherits the NVIDIA Open Model License Agreement of the base model 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.