# GeoPi0-real-robot PyTorch `pi0` policy fine-tuned on the local UR5 real-robot LeRobot-format dataset with the stage-2 foreground cross-view distillation setup: - dataset: `ur5_lab_test_tube_camera_shifts` - training config name: `pi0_ur5_real_robot_pytorch_cross_attn_fg_distill_stage2_hard` - experiment name: `pi0_ur5_real_robot_cross_attn_fg_distill_hard_stage2_2gpu` - base camera view: `observation.images.context_left_rgb` - wrist camera view: `observation.images.wrist_right_rgb` - base model init: `/scratch/yz11445/pi0_base` - stage-1 init weights: `/scratch/yz11445/tmp/openpi_cam/checkpoints/pi0_ur5_real_robot_pytorch_cross_attn_fg_distill_stage1_hard/pi0_ur5_real_robot_cross_attn_fg_distill_hard_stage1/5000` - currently included checkpoint steps: `20000`, `25000`, `30000` This run has completed through `30000` steps. ## Included Files - `config.json`: base Pi0 model config copied from the initialization checkpoint - `model_architecture_config.json`: fine-tuned architecture settings used by this run - `training_config_summary.json`: training/data/run summary for this release - `assets/ur5_lab_test_tube_camera_shifts/norm_stats.json`: normalization statistics - `checkpoints//`: checkpoint snapshots with `model.safetensors`, `metadata.pt`, `optimizer.pt`, and copied assets ## Inference Serve one of the included checkpoints with: ```bash uv run scripts/serve_policy.py policy:checkpoint \ --policy.config=pi0_ur5_real_robot_pytorch_cross_attn_fg_distill_stage2_hard \ --policy.dir=/path/to/GeoPi0-real-robot/checkpoints/30000 ``` ## Notes - The policy loader uses the code-defined training config `pi0_ur5_real_robot_pytorch_cross_attn_fg_distill_stage2_hard` from `src/openpi/training/config.py`. - This stage-2 variant keeps the foreground cross-view topology and auxiliary point head, while leaving PRoPE/ray branches disabled for the current UR5 dataset. - Normalization stats are loaded from `assets/ur5_lab_test_tube_camera_shifts/norm_stats.json` inside each checkpoint directory. - Tokenizer assets are not bundled in this release directory. In this codebase, the Pi0 tokenizer is loaded at runtime from external sources referenced in `src/openpi/models/tokenizer.py`.