GR00T N1.5 — WBT G1 + Inspire (Pick-Up-Drinks weighted, 15k)

Fine-tune of nvidia/GR00T-N1.5-3B on three Unitree G1 + dual Inspire-hand whole-body teleop (WBT) datasets, head-stereo vision only. Inference essentials only (model weights + experiment_cfg/metadata.json); optimizer state omitted.

Training

  • Datasets (pooled, inverse-frequency balance + 2x weight on Pick_Up_Drinks): unitreerobotics/G1_WBT_Inspire_{Pick_Up_Drinks, Put_Drinks_Into_Fridge, Put_Vegetables_Into_Basket}
  • 15,000 steps, effective batch 64, frozen VLM + trained projector/DiT, action head resized to 60-dim.
  • Embodiment tag: new_embodiment; data config: exp1.data_config:WBTInspireG1DataConfig.

Load for inference

from gr00t.experiment.data_config import load_data_config
from gr00t.model.policy import Gr00tPolicy
cfg = load_data_config("exp1.data_config:WBTInspireG1DataConfig")
policy = Gr00tPolicy(
    model_path="Zohreh12/GR00T-N1.5-WBT-G1-Inspire-Drinks-15k",
    modality_config=cfg.modality_config(), modality_transform=cfg.transform(),
    embodiment_tag="new_embodiment", denoising_steps=4, device="cuda",
)

Observation keys: video.head_stereo_left/right, state.ee_state(12), state.hand_state(12), state.robot_q_current(36 = root pose + 29 G1 joints), annotation.human.task_description.

Caveat

Open-loop action MSE is low, but a language-swap probe shows weak language conditioning (scene-routing): feeding the wrong instruction barely changes the action. Treat as a motion baseline, not an instruction-following policy.

Downloads last month
3
Safetensors
Model size
3B params
Tensor type
F32
·
BF16
·
Video Preview
loading