PPS Checkpoints β IsaacLab DROID proxy steering models
PROXY steering models for TritiumR/pps,
trained on IsaacLab DROID manipulation tasks with joint-position actions.
Each task ships a pair of proxies used by eval_steering.py:
task/<step>/β the task proxy, trained on task demonstrationsreference/20000/β the reference proxy, the steering baseline
At inference the base pi0.5 velocity is nudged by their difference:
v_t[:, :, :proxy_action_dim] += steer_scale * (task_v_t - ref_v_t)
Contents
| Task | Task proxy | Reference proxy | IsaacLab task id |
|---|---|---|---|
| pot | task/24000 |
reference/20000 |
Isaac-Pot-Droid-Visuomotor-v0 |
| tea | task/32000 |
reference/20000 |
Isaac-Tea-Droid-Visuomotor-v0 |
| weight | task/24000 |
reference/20000 |
Isaac-Weight-Droid-Visuomotor-v0 |
Only the final task step and the reference are published β these are exactly the checkpoints the evaluation scripts load. Optimizer state is not included, so these are for inference / steering, not resuming training.
Each step directory holds model.safetensors (the Gemma-based action expert
plus projection heads, ~135 MB fp32), metadata.pt, and
assets/cn356/<dataset>/norm_stats.json.
Download
These must land under a directory literally named
checkpoints/.eval_steering.pyderives the training-config name from the path β it finds thecheckpoints/segment and reads the next segment as the config name (e.g..../checkpoints/proxy_isaaclab_droid_pot_pi05_jointpos/task/24000). Unpacking anywhere else raisesCould not derive a training config name.
From the repo root:
python openpi/fetch_checkpoints.py
or equivalently:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="Tritiumac/PPS_checkpoints",
local_dir="openpi/checkpoints",
)
Usage
You also need the base pi0.5 policy at
openpi/checkpoints/pytorch/pi05_droid_jointpos, and the scene assets from
Tritiumac/PPS_assets.
python eval_steering.py \
--task Isaac-Pot-Droid-Visuomotor-v0 \
--base_checkpoint_dir openpi/checkpoints/pytorch/pi05_droid_jointpos \
--task_checkpoint_dir openpi/checkpoints/proxy_isaaclab_droid_pot_pi05_jointpos/task/24000 \
--ref_checkpoint_dir openpi/checkpoints/proxy_isaaclab_droid_pot_pi05_jointpos/reference/20000 \
--prompt "remove the lid of the pot and put egg in it" \
--exp_name demo --seed_start 42 --seed_end 43
Prompts used for the published results:
| Task | Prompt |
|---|---|
| pot | remove the lid of the pot and put egg in it |
| tea | pour the tea from the teapot into the cup |
| weight | put pear and apple on the scale |
Model details
Configs are registered in openpi/src/openpi/training/config.py under names
matching the directory names (proxy_isaaclab_droid_<task>_pi05_jointpos):
- action expert:
gemma_12m, action horizon 15, action dim 8 - vision backbone:
facebook/dinov3-vits16-pretrain-lvd1689m - quantile normalization, joint-position action space
The DINOv3 backbone is not bundled β it is fetched from the Hub at load time and carries its own license terms.
License
Apache-2.0, matching openpi. The DINOv3 vision backbone is a runtime dependency under Meta's DINOv3 license.