VLASH GR00T N1.6 β€” R1 Lite (random delay 0–4)

Finetune of Isaac GR00T N1.6 for the Galaxea R1 Lite embodiment, trained with VLASH temporal delay augmentation: for every sample a delay k ~ U[0, 4] is drawn and the state/action windows are shifted by k while video and language stay at the base timestep.

video/language:  t                                   (stale observation)
state:           t + k
action chunk:    action[t + k : t + k + horizon]

The policy therefore predicts an action chunk that begins k steps after the observation it was given, which is what makes asynchronous chunk execution possible on the real robot: the next chunk can be computed while the current one is still executing.

Details

Base model Isaac GR00T N1.6
Checkpoint step 160000
Embodiment tag new_embodiment (R1 Lite, bimanual + 2 grippers)
Action horizon 16
max_delay_steps 4 (random per sample)
use_state_ground_truth true (delayed state is the measured state at t + k)
Tuned layers backbone LLM layers 12–15 + action head

Open-loop evaluation

Delay sweep with gr00t/eval/delayed_open_loop_eval.py, 3 trajectories Γ— 200 steps, horizon 16. Unnormalized action error, averaged over trajectories.

Arm joints only (rad):

delay 0 1 2 3 4 5 6 7 8
MSE .00103 .00124 .00097 .00049 .00037 .00034 .00036 .00048 .00048
MAE .01344 .01358 .01227 .01129 .01022 .01033 .01071 .01181 .01196

All keys concatenated (dominated by the grippers, which span 0–100):

delay 0 1 2 3 4 5 6 7 8
MSE .00605 .00619 .00626 .00561 .00586 .00551 .00571 .00599 .00629
MAE .02768 .02792 .02728 .02535 .02599 .02520 .02588 .02649 .02739

Arm error bottoms out around delay 4–6 β€” roughly 3Γ— lower than evaluating at delay 0 β€” matching the 0–4 training distribution, and degrades again at delay 7–8 (outside the trained range). Gripper error is flat across delays: those are discrete open/close transitions that a few steps of shift do not fix.

Caveat: this sweep was run on the training dataset, so the numbers are train-set fit, not held-out generalization.

Files

Inference artifacts only β€” optimizer.pt, scheduler.pt, rng_state_*.pth, and the trainer state are not included, so this checkpoint cannot be used to resume training.

Usage

from gr00t.policy.gr00t_policy import Gr00tPolicy
from gr00t.data.embodiment_tags import EmbodimentTag

policy = Gr00tPolicy(
    embodiment_tag=EmbodimentTag.NEW_EMBODIMENT,
    model_path="XYZPIT/vlash-random4-gr00t-n1.6-160000",
    device="cuda",
)
action_chunk, _ = policy.get_action(observation)

Because of the delay augmentation, the returned chunk is meant to start executing a few steps after the observation timestamp rather than immediately.

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