Robotics
LeRobot
Safetensors
pi05
franka

Ο€β‚€.β‚… β€” absolute joint-position control on 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)

Action space

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.

Usage

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.

Training

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.

Downloads last month
25
Safetensors
Model size
4B params
Tensor type
F32
Β·
BF16
Β·
Video Preview
loading

Model tree for arkojit1/pi05_franka_haply_absjointpos

Finetuned
(635)
this model

Dataset used to train arkojit1/pi05_franka_haply_absjointpos