GR00T Pick and Place Cube v1

A fine-tuned NVIDIA GR00T N1.5 model for robotic pick-and-place manipulation tasks.

Model Description

This model was fine-tuned using LoRA (Low-Rank Adaptation) on the SO-101 robot arm dataset for cube pick-and-place tasks.

Training Details

Parameter Value
Base Model nvidia/GR00T-N1.5-3B
Fine-tuning Method LoRA
LoRA Rank 64
LoRA Alpha 16
Training Steps 50,000
Batch Size 8
Dataset 21,557 episodes / 1.9M frames
Task Pick up cube and place in bin
Cameras Front + Wrist (128x128)
Action Space 4D (x, y, z, gripper)

Performance

  • Training Loss: 1.17 → 0.12 (90% reduction)
  • Evaluation Success Rate: ~60% (with proper action unnormalization)

Usage

from lerobot.policies.groot.modeling_groot import GrootPolicy

# Load the model
policy = GrootPolicy.from_pretrained("gpudad/groot-pick-place-cube-v1")
policy.to("cuda")
policy.eval()

# Use for inference
action = policy.select_action(observation_batch)

Important: Action Unnormalization

The model outputs actions in normalized [-1, 1] space. For the SO-101 robot:

  • XYZ: [-1, 1]
  • Gripper: needs mapping from [-1, 1] to [0, 2]
# Unnormalize actions
action_min = torch.tensor([-1, -1, -1, 0])
action_max = torch.tensor([1, 1, 1, 2])
unnormalized = (action + 1) / 2 * (action_max - action_min) + action_min

Framework

Trained using LeRobot 🤖

License

Apache 2.0 (same as base GR00T model)

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

Model tree for gpudad/groot-pick-place-cube-v1

Adapter
(9)
this model