Discrete and continuous action heads on pi0.5 (RoboCasa365)

These are the four pi0.5-backbone RoboCasa365 policies from the backbone study of the paper When Do Discrete Actions Make Good Continuous Controllers? (arXiv:2610.20429). All four use the same backbone, data, and training setup. Only the action head differs.

The same four heads on the pi0 backbone, the paper's main results, are in iscoyizj/discrete-actions-pi0-robocasa.

Checkpoints

Folder Head Training step Decode flags RoboCasa365 success, seed 7
dflow/ DFlow: discrete flow over 512 uniform bins per action value 120k --cfg-scale 3 --num-denoise-steps 5 60.2
cflow/ CFlow: continuous flow matching (Euler) 150k --cfg-scale 3 --num-denoise-steps 20 58.2
dreg/ DReg: one pass over 512 uniform bins, argmax 140k --cfg-scale 3 55.8
creg/ CReg: one-pass regression (squared error) 140k --cfg-scale 0 42.4

The paper's guidance weight is λ = --cfg-scale − 1, so --cfg-scale 3 is λ = 2, and --cfg-scale 0 is one pass with no guidance. The values stored in config.json are not these settings, so always pass the flags.

Each folder holds three files:

File Content
model.safetensors weights, fp32, 13.2 GB (the loader casts to bf16)
config.json the model config; its class_path names the head class
norm_stats.json action and state normalization statistics

SHA256SUMS lists the sha256 of every checkpoint file.

Model

Backbone PaliGemma-3B (SigLIP So400m/14 + Gemma-2B), initialized from lerobot/pi05_base at revision b211f3d44c36b6acfcf7ae94a64e8e96f75a64ba, fully fine-tuned
Parameters 2.92B backbone + 367M to 371M resampler and action head
Tokenizer google/paligemma-3b-pt-224 at revision 35e4f46485b4d07967e7e9935bc3786aad50687c (not included: it is gated)
Embodiment franka_rel_eef_aa_ah1: Franka arm, arm only, end-effector actions with axis-angle rotation
Action chunk 24 steps × 7 values

The inputs and outputs are the same as for the pi0 heads.

Inputs

  • 3 RGB images, resized to 224×224, in this order: robot0_agentview_left, robot0_agentview_right, robot0_eye_in_hand.
  • The task instruction (up to 48 tokens).
  • The robot state, 7 values: end-effector position (3, m) and axis-angle rotation (3, rad) in the robot base frame, then the gripper in [0, 1] (0 = open, 1 = closed).
  • DFlow only: the last 8 executed actions, oldest first, in the output format. Leave them out at the start of an episode.

Output. A chunk of 24 actions. Each action has 7 values: end-effector position change (3, m), axis-angle rotation change (3, rad), and gripper (1). Each row is a per-step delta in the base frame, measured from the end-effector pose at that step. In RoboCasa, read the gripper as a close probability: close at ≥ 0.5.

Download

Accept the Gemma terms on google/paligemma-3b-pt-224 first. Then:

hf auth login
hf download google/paligemma-3b-pt-224 \
    tokenizer.model tokenizer.json tokenizer_config.json special_tokens_map.json \
    added_tokens.json preprocessor_config.json config.json generation_config.json \
    --revision 35e4f46485b4d07967e7e9935bc3786aad50687c \
    --local-dir checkpoints/paligemma-3b-pt-224-tokenizer

# All four heads (53 GB):
hf download iscoyizj/discrete-actions-pi05-robocasa --local-dir checkpoints/pi05
# One head (13.2 GB):
hf download iscoyizj/discrete-actions-pi05-robocasa \
    --include "dflow/*" --local-dir checkpoints/pi05

checkpoints/pi05/ keeps these folders apart from the pi0 heads, which use the same folder names. To check the files: (cd checkpoints/pi05 && sha256sum -c --ignore-missing SHA256SUMS).

Results

RoboCasa365: 50 tasks (18 atomic_seen, 16 composite_seen, 16 composite_unseen) × 10 trials = 500 episodes, target split, one evaluation seed (7). The policy executes all 24 actions of a chunk before it predicts the next one. With one seed there is no ±.

Head Flags Overall atomic_seen composite_seen composite_unseen
DFlow --cfg-scale 3 --num-denoise-steps 5 60.2% (301/500) 148/180 75/160 78/160
CFlow --cfg-scale 3 --num-denoise-steps 20 58.2% (291/500) 148/180 69/160 74/160
DReg --cfg-scale 3 55.8% (279/500) 144/180 62/160 73/160
CReg --cfg-scale 0 42.4% (212/500) 117/180 39/160 56/160

Each row is the best cell of a seed-7 grid over steps 110k to 150k, guidance --cfg-scale 0 or 3, and, for the flow heads, 5, 10, or 20 steps. Compare them with the pi0 heads at the same seed, not with their 3-seed means: at seed 7 the pi0 heads score DFlow 56.2%, CFlow 55.2%, DReg 51.2%, and CReg 40.6%.

About 17 of the 50 tasks need base motion, which these arm-only policies cannot do. These checkpoints were not evaluated on LIBERO.

Training

All four heads were trained from lerobot/pi05_base on the same eight-source Franka mix (RoboCasa365, DROID, LIBERO-plus) as the pi0 heads, in one 150k-step run each. Global batch 512 (64 per GPU × 8), AdamW (β = (0.9, 0.95), weight decay 1e-4, gradient clipping 1.0), peak learning rate 7.5e-5 with a linear warmup of 13,333 steps and cosine decay to 0.1× the peak, bf16, condition dropout 0.1, and training seed 42.

  • DFlow: the released DFlow recipe: an 8-step action history and cubic keyframe interpolation with the gripper held between keyframes.
  • DReg and CFlow: the released recipes.
  • CReg: the loss became NaN near step 55k, so the run restarted from its step-50k checkpoint with the peak learning rate halved to 3.75e-5, on the same 150k-step schedule.

Two train/serve differences are kept so that the checkpoints behave as evaluated. In training, the flow time was cast to bf16 before the Fourier features, while serving keeps it fp32. Training images were resized with antialiasing, while serving resizes without it (image_resize_antialias: false in config.json). The results above include both.

Limitations

  • Evaluated only in simulation (RoboCasa365). Not tested on real robots.
  • Arm only: they cannot drive a mobile base.
  • The camera order, state and action format, and normalization must match the description above.

License

The weights are fine-tuned from pi0.5, whose backbone is PaliGemma, so the Gemma Terms of Use apply (see NOTICE). Check the license of lerobot/pi05_base as well. The training datasets keep their own licenses.

Citation

@article{yi2026discrete,
  title   = {When Do Discrete Actions Make Good Continuous Controllers?},
  author  = {Yi, Zeji and Dasgupta, Soham and Zhang, Xinyang and Sreenath, Koushil and
             Qu, Guannan and Chen, Xi and Simchowitz, Max and Shi, Guanya},
  journal = {arXiv preprint arXiv:2610.20429},
  year    = {2026}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading

Model tree for iscoyizj/discrete-actions-pi05-robocasa

Finetuned
(838)
this model

Paper for iscoyizj/discrete-actions-pi05-robocasa