pi0 β ManiGuard real-teleop jar (DROID schema)
LoRA fine-tune of pi0 on 60 real Franka teleop trajectories. This is the pi0 half of a model comparison: the pi0.5 counterpart was trained on the same data with the same recipe, so the two differ only in the model.
- Task prompt: "Move the jar into the bowl, ensuring that the lid remains securely closed during the transfer"
- Dataset:
IDEAS-Lab-Northwestern/real-jar-60-droid-refined(private) β 60 episodes, 15,012 frames, 15 fps - Warm start:
gs://openpi-assets/checkpoints/pi0_droid/params - Norm stats:
pi0_droid's bundled DROID statistics, reused verbatim β not recomputed on this dataset. Bundled per rung at<step>/assets/droid/norm_stats.json. β οΈ They are pi0's own; the pi0.5 sibling shipspi05_droid's different file. Do not swap them. - LoRA:
gemma_2b_lora(rank 16) +gemma_300m_lora(rank 32), batch 4, EMA off, 50,000 steps.
Controller β read this before running on a robot
| Action | actions[0:7] = arm joint VELOCITY (rad/s) Β· actions[7] = next-frame gripper target (normalized 0=open, 1=closed) |
| Apply as | joint-velocity command to the arm + position target to the gripper |
| Chunk | action_horizon = 10 (pi0.5 sibling uses 15) |
| β οΈ No delta reconstruction | the actions are already velocities. openpi's LeRobotDROIDDataConfig deliberately applies no delta transform β do not integrate or difference them, unlike the ManiGuard sim checkpoints which emit absolute joint targets |
| State | joint_position (7) + gripper_position (1) |
| Cameras | exterior_image_1_left β exterior third-view Β· wrist_image_left β wrist Β· exterior_image_2_left is a zero-filled placeholder (the rig has no second exterior camera) and is masked |
| Rate | data collected at 15 fps |
Checkpoints
Ladder 10000/ 20000/ 30000/ 40000/ 50000/ (the final rung is openpi's 0-indexed 49999,
relabeled). train_state/ is omitted β inference only.
β οΈ Use 20000/ when comparing against the pi0.5 sibling β that checkpoint stopped at
20,000 steps, so 20k is the step-matched point. 50000/ is this model trained to the same
budget as the other two families.
The best real-robot rung is not assumed to be the last one; sweep the ladder on the robot.
Serving
openpi policy server with config pi0-droid_real_jar_60_refined_lora from the ManiGuard openpi fork
(maniguard/openpi_sft/train_configs.py), pointed at a downloaded rung.
Evaluated on a real Franka, not in simulation.
Model tree for IDEAS-Lab-Northwestern/pi0-real-jar-60-droid-refined-lora
Base model
lerobot/pi0_old