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