Instructions to use TTaekwan/real_openarm with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use TTaekwan/real_openarm with LeRobot:
- Notebooks
- Google Colab
- Kaggle
openarm_sweep_pump
NVIDIA GR00T-N1.5-3B finetuned on an OpenArm bimanual teleoperation dataset (sweeping and scrubbing). Plain base-mode finetune โ no MoE, no confidence head, no auxiliary losses.
Layout
| Folder | What |
|---|---|
base/ |
Plain base-mode finetune, 40,000 steps. This is what used to sit at the repo root. |
sail/ |
Same recipe plus SAIL EAG (Error-Adaptive Guidance), 40,000 steps. horizon 4, condition dropout 0.1, CFG weight 1.0. |
Both were trained from nvidia/GR00T-N1.5-3B on the same dataset with the same
hyper-parameters; the only difference is the EAG conditioner.
Tasks
The policy was trained on three natural-language instructions:
| # | Instruction | Episodes | Frames |
|---|---|---|---|
| 0 | Hold the dustpan with the left hand and sweep the debris into it with the brush in the right hand |
57 | 31,460 |
| 1 | Pick up the blue scrubber with the left hand and scrub the white bowl |
25 | 17,574 |
| 2 | Pick up the gray scrubber with the left hand and scrub the white bowl |
25 | 17,169 |
| Total | 107 | 66,203 |
Data
LeRobot v2.1, robot_type: openarm_bimanual, 30 fps.
| Key | dtype | Shape |
|---|---|---|
observation.state |
float32 | [26] |
action |
float32 | [26] |
observation.head |
float32 | [2] |
action.head |
float32 | [2] |
observation.images.ego_left |
video | [3, 720, 1280] |
observation.images.ego_right |
video | [3, 720, 1280] |
Images are consumed at their native 1280x720 โ there is no re-encoding step.
Training
| Base model | nvidia/GR00T-N1.5-3B |
| Data config | openarm_bimanual (OpenArmBimanualDataConfig) |
| Embodiment tag | new_embodiment (projector slot 31) |
| Prediction mode | base โ Stage 1 only, Stage 2 skipped |
| Steps | 40,000 (~38.65 epochs over 66,203 frames) |
| Batch | 32 per device x 2 GPUs = 64 effective |
| Hardware | 2x H200 |
| Action horizon | 16 |
| Action dim | 32 (padded; 26 are used) |
Training loss went from 1.1172 at step 10 to 0.0028 at step 40,000. Only
action_loss is reported โ base mode has no loss_conf / loss_ratio / loss_flare.
Files
Final weights from the end of training (step 40,000):
config.json
model-00001-of-00002.safetensors
model-00002-of-00002.safetensors
model.safetensors.index.json
experiment_cfg/metadata.json
Optimizer and scheduler state are not published, so this checkpoint is for inference, not for resuming training.
Usage
from gr00t.model.policy import Gr00tPolicy
from gr00t.experiment.data_config import DATA_CONFIG_MAP
data_config = DATA_CONFIG_MAP["openarm_bimanual"]
policy = Gr00tPolicy(
model_path="TTaekwan/openarm_sweep_pump",
modality_config=data_config.modality_config(),
modality_transform=data_config.transform(),
embodiment_tag="new_embodiment",
device="cuda",
)
action = policy.get_action(observation)
openarm_bimanual is not in upstream Isaac-GR00T โ it needs the OpenArmBimanualDataConfig
entry that this checkpoint was trained with.
Notes
- The training dataset is private and is not distributed with these weights.
- Derived from
nvidia/GR00T-N1.5-3B; the base model's license terms apply.
Model tree for TTaekwan/real_openarm
Base model
nvidia/GR00T-N1.5-3B