Downloads · 30 days
39
100% of all-time downloads
arkojit1/pi05_franka_haply_absjointpos
pi05_franka_haply_absjointpos is a robotics model from arkojit1. Use it for the robotics task on the model card, and read the license before you ship it in a product. It is set up for lerobot.
π₀.₅ fine-tuned on Haply-teleoperated Franka demonstrations, predicting absolute joint positions. Checkpoint taken at the step with the lowest eval loss.
Downloads · 30 days
39
100% of all-time downloads
All-time downloads
39
Public
Parameters
4.1B
9.4 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors9.4 GB · 100%
How the weights are stored.
BF163.6B · 87%
From the Hugging Face model README
franka_haply_joint_deltaπ₀.₅ fine-tuned on Haply-teleoperated Franka demonstrations, predicting absolute joint positions. Checkpoint taken at the step with the lowest eval loss.
| Base checkpoint | lerobot/pi05_base |
| Dataset | Ameyapores/franka_haply_joint_delta — 94 episodes / 50,861 frames @ 20 fps, 1 language task |
| Step | 1,000 |
| Eval loss | 0.1454 (flow-matching objective, 10% held-out episodes) |
| Trainable | action expert only (--train_expert_only: SigLIP and Gemma-2B frozen, ~300M trainable) |
8-dimensional, from the dataset's action_absolute_joint_position column:
| dims | meaning |
|---|---|
| 0–6 | absolute joint positions (7 DoF), in radians |
| 7 | gripper |
These are absolute targets, not deltas — despite the dataset being named
franka_haply_joint_delta, which refers to its default action column. Order is the
contract: feeding this model joint deltas, or a Cartesian action space, produces
plausible-looking nonsense rather than an error. The source dataset publishes the
authoritative axis names as joint_position_0 … joint_position_6, gripper.
Observations are three 224×224 RGB cameras (observation.images.base_0_rgb,
observation.images.base_1_rgb, observation.images.left_wrist_0_rgb) plus an 8-dim
observation.state. empty_cameras=0 — the three cameras exactly fill π₀.₅'s three image
slots, with no masked padding.
chunk_size=50 and n_action_steps=50 are pi05_base's own defaults. At 20 fps that is
2.5 s of predicted motion, executed open-loop in full before re-planning. Lower
n_action_steps at inference for tighter closed-loop control; it does not affect the weights.
from lerobot.policies.pi05.modeling_pi05 import PI05Policy
policy = PI05Policy.from_pretrained("arkojit1/pi05_franka_haply_absjointpos")
Requires access to the gated google/paligemma-3b-pt-224
repo — the preprocessor loads its tokenizer by id. Accept the license there first and make
sure HF_TOKEN is set.
Global batch 256 across 8×MI300X (RCCL DDP, 32 per GPU), learning rate 2.5e-5 with a cosine schedule, bf16 with gradient checkpointing, quantile normalisation of state and action, image augmentation on the train split only. 84 train / 10 eval episodes.
eval_loss is the training objective evaluated on held-out episodes — not a success rate.
With only ~10 held-out episodes it is correspondingly noisy; treat differences of a few percent
as unresolved.