|
Download README.md from Tritiumac/PPS_checkpoints: direct link, hf CLI and curl.
- Browser
- Download file 3.6 kB
-
https://huggingface.co/Tritiumac/PPS_checkpoints/resolve/main/README.md
- Command line
-
hf download hf://Tritiumac/PPS_checkpoints/README.md
-
curl -L -o README.md https://huggingface.co/Tritiumac/PPS_checkpoints/resolve/main/README.md
3.6 kB
| license: apache-2.0 | |
| library_name: openpi | |
| tags: | |
| - robotics | |
| - vla | |
| - pi0 | |
| - isaaclab | |
| - manipulation | |
| # PPS Checkpoints β IsaacLab DROID proxy steering models | |
| PROXY steering models for [`TritiumR/pps`](https://github.com/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 demonstrations | |
| - `reference/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 | |
| > [!IMPORTANT] | |
| > These must land under a directory literally named `checkpoints/`. | |
| > `eval_steering.py` derives the training-config name from the path β it finds | |
| > the `checkpoints/` segment and reads the **next** segment as the config name | |
| > (e.g. `.../checkpoints/proxy_isaaclab_droid_pot_pi05_jointpos/task/24000`). | |
| > Unpacking anywhere else raises `Could not derive a training config name`. | |
| From the repo root: | |
| ```bash | |
| python openpi/fetch_checkpoints.py | |
| ``` | |
| or equivalently: | |
| ```python | |
| 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](https://huggingface.co/datasets/Tritiumac/PPS_assets). | |
| ```bash | |
| 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](https://github.com/Physical-Intelligence/openpi). | |
| The DINOv3 vision backbone is a runtime dependency under Meta's DINOv3 license. | |