Robotics
LeRobot
Safetensors
pi05
pytorch_model_hub_mixin
IB-Robot
LeRobot
so-101
banana-pick
vision-language-action
Instructions to use openEuler/pi05 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use openEuler/pi05 with LeRobot:
- Notebooks
- Google Colab
- Kaggle
File size: 4,989 Bytes
9f91d2f b3c16d4 9f91d2f b3c16d4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | ---
license: apache-2.0
library_name: lerobot
pipeline_tag: robotics
tags:
- pi05
- pytorch_model_hub_mixin
- robotics
- IB-Robot
- LeRobot
- so-101
- banana-pick
- vision-language-action
base_model:
- lerobot/pi05_base
---
# Model Card for PI0.5/BananaPick (IB-Robot)
PI0.5 policy (as per [ฯ0 and ฯ0.5: Vision-Language-Action Flow Models for Robot Manipulation](https://arxiv.org/abs/2410.24132)) fine-tuned for banana pick-and-place on a 1-arm SO-101 robot within the [IB-Robot](https://gitcode.com/openeuler/IB_Robot) framework.
This checkpoint fine-tunes `lerobot/pi05_base` (PaliGemma 2B vision-language model + Gemma 300M action expert) on a teleoperated banana-pick dataset. The bundle ships PyTorch weights plus a BERT tokenizer for language-conditioned inference, and a single [`inference_manifest.json`](./inference_manifest.json) routing table (schema v3).
## Repository Structure
```
โโโ config.json # PI0.5 ็ญ็ฅ้
็ฝฎ
โโโ model.safetensors # torch ๆ้ (~8.8 GB, bf16)
โโโ policy_preprocessor.json
โโโ policy_postprocessor.json
โโโ policy_preprocessor_step_2_normalizer_processor.safetensors
โโโ policy_postprocessor_step_0_unnormalizer_processor.safetensors
โโโ bert-base-uncased/ # ่ฏญ่จๆไปค tokenizer (5 files)
โ โโโ tokenizer.json
โ โโโ tokenizer.model
โ โโโ tokenizer_config.json
โ โโโ special_tokens_map.json
โ โโโ added_tokens.json
โโโ train_config.json # ๅฎๆด่ฎญ็ป่ถ
ๅ
โโโ inference_manifest.json # ้จ็ฝฒ่ทฏ็ฑ่กจ (schema v3, ๆๅจ)
```
> The directory layout and every file path inside `inference_manifest.json` must stay in sync. Do not rename or relocate files โ the manifest's sha256 checks and path bindings depend on them.
## Deployment Backends
Read `inference_manifest.json` โ `deployments[<target>]` to route to the right backend. This bundle ships **PyTorch-only** deployments (compiled Ascend/RKNN artifacts are published separately).
| Target | Backend | Runtime | Artifact | Hardware |
|--------|---------|---------|----------|----------|
| `torch-cuda` | torch | PyTorch | `model.safetensors` (in bundle) | NVIDIA GPU |
| `torch-cpu` | torch | PyTorch | `model.safetensors` (in bundle) | CPU |
**Input tensors:** `observation.state` [6] float32, `observation.current` [6] float32, `observation.images.top` [3,480,640] NCHW, `observation.images.wrist` [3,480,640] NCHW.
**Output tensor:** `action` [6] float32 (6-dim joint action: shoulder_pan, shoulder_lift, elbow_flex, wrist_flex, wrist_roll, gripper).
## How to Get Started with the Model
See the [IB-Robot project](https://gitcode.com/openeuler/IB_Robot) (particularly the [inference_service](https://gitcode.com/openeuler/IB_Robot/tree/main/src/inference_service)) for instructions on how to load and deploy this model with ROS 2.
To load the **PyTorch** backend directly in Python:
```python
from lerobot.common.policies.pi05.modeling_pi05 import PI05Policy
policy = PI05Policy.from_pretrained("openEuler/pi05")
```
For ROS 2 deployment, consume `inference_manifest.json` and route to `deployments["torch-cuda"]` or `deployments["torch-cpu"]` via the IB-Robot inference_service.
## Training Details
- **Policy:** PI0.5 (PaliGemma 2B + Gemma 300M action expert)
- **Base model:** `lerobot/pi05_base`
- **Robot:** 1-arm SO-101
- **Task:** Banana pick-and-place
- **Cameras:** top, wrist (480ร640, resized to 224ร224 internally)
- **Action dim:** 6 (5 joints + gripper)
- **Chunk size:** 50 action steps, 50 executed per step
- **Inference steps:** 10 flow-matching denoising steps
- **Dtype:** bfloat16
- **Tokenizer:** bert-base-uncased (max_length=200)
- **Normalization:** VISUAL=IDENTITY, STATE=QUANTILES, ACTION=QUANTILES
- **Gradient checkpointing:** enabled
- **Optimizer:** AdamW (lr=2.5e-5, weight_decay=0.01, betas=[0.9, 0.95])
- **Scheduler:** cosine decay with warmup (1000 warmup, 30000 decay, decay_lr=2.5e-6)
- **Batch size:** 8
- **Training steps:** 100,000
- **Seed:** 1000
## Model Architecture
PI0.5 is a Vision-Language-Action (VLA) flow model:
- **Vision encoder:** PaliGemma (SigLIP-based, 224ร224 input)
- **Language model:** Gemma 2B (PaliGemma backbone, processes text + image tokens)
- **Action expert:** Gemma 300M (separate decoder for flow-matching action generation)
- **Flow matching:** 10 denoising steps to generate action chunks
- **Parameters:** ~4.1B (533M F32 + 3.6B BF16)
## Citation
```bibtex
@software{ib_robot,
title = {IB-Robot: Intelligence Boom Robot},
url = {https://gitcode.com/openeuler/IB_Robot},
license = {Apache-2.0}
}
```
```bibtex
@article{pi05,
title = {ฯ0 and ฯ0.5: Vision-Language-Action Flow Models for Robot Manipulation},
url = {https://arxiv.org/abs/2410.24132}
}
```
|