Instructions to use PINlab/pi05-so101 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use PINlab/pi05-so101 with LeRobot:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Add grab_cubes_skin_3cam and lift_leave_cubes_skin_3cam; explicit training prompts
Browse files
README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
library_name: openpi
|
| 3 |
license: apache-2.0
|
| 4 |
tags: [robotics, pi0, pi05, openpi, so101, lerobot, tactile]
|
| 5 |
-
datasets: [endoard/grab_ball_3cam_skin, endoard/grab_cup_3cam_skin, endoard/grab_red_cube_3cam_skin, endoard/grab_green_cube_3cam_skin, endoard/grab_green_cylinder_3cam_skin]
|
| 6 |
---
|
| 7 |
|
| 8 |
# pi0.5 SO-101 with a tactile skin
|
|
@@ -19,11 +19,42 @@ None has been evaluated on the robot yet.
|
|
| 19 |
| `grab_ball_skin_3cam/` | `pi05_so101_grab_ball_skin_3cam` | 3: `fixed`, `handeye`, `side` | "Grab the ball" | `endoard/grab_ball_3cam_skin`, 150 episodes / 65,989 frames | 10000, 20000, 29999 |
|
| 20 |
| `grab_cup_skin_3cam/` | `pi05_so101_grab_cup_skin_3cam` | 3: `fixed`, `handeye`, `side` | "Grab the blue cup" | `endoard/grab_cup_3cam_skin`, 166 episodes / 64,812 frames | 10000, 20000, 29999 |
|
| 21 |
| `grab_3obj_skin_3cam/` | `pi05_so101_grab_3obj_skin_3cam` | 3: `fixed`, `handeye`, `side` | "Grab the red cube" / "Grab the green cube" / "Grab the green cylinder" | `endoard/grab_{red_cube,green_cube,green_cylinder}_3cam_skin` merged, 450 episodes / 161,918 frames, one task per source | 10000, 20000, 28000 |
|
|
|
|
|
|
|
| 22 |
|
| 23 |
`grab_3obj_skin_3cam` is multi-task: the prompt selects the object. Its run was stopped at
|
| 24 |
step 28,500 of 30k, so 28000 is its last checkpoint. Its held-out split is stratified per task
|
| 25 |
(15 episodes each).
|
| 26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
Each step folder is an openpi checkpoint without optimizer state: `params/` (EMA weights),
|
| 28 |
`assets/<asset_id>/norm_stats.json` (quantile stats), `_CHECKPOINT_METADATA`, and a `README.md`
|
| 29 |
with that checkpoint's details.
|
|
@@ -57,6 +88,7 @@ The 3-camera policies need all three cameras every step.
|
|
| 57 |
- Action 6-D (padded to 32): **delta on the 5 joints, absolute gripper** (`make_bool_mask(5, -1)`).
|
| 58 |
- Images: `base_0_rgb` = `fixed`, `left_wrist_0_rgb` = `handeye`; `right_wrist_0_rgb` = `side`
|
| 59 |
(mask on) for 3-camera runs, zeros with mask off for `grab_ball_skin`.
|
| 60 |
-
- `action_horizon=16`, `action_stride=2`, prompt from the dataset task string
|
|
|
|
| 61 |
- From `pi05_base`, 4 nodes x 1 A100-64GB, `--fsdp-devices=4`, batch 32, AdamW with cosine
|
| 62 |
decay, EMA 0.99, seed 42, 30k steps, 10% of episodes held out.
|
|
|
|
| 2 |
library_name: openpi
|
| 3 |
license: apache-2.0
|
| 4 |
tags: [robotics, pi0, pi05, openpi, so101, lerobot, tactile]
|
| 5 |
+
datasets: [endoard/grab_ball_3cam_skin, endoard/grab_cup_3cam_skin, endoard/grab_red_cube_3cam_skin, endoard/grab_green_cube_3cam_skin, endoard/grab_green_cylinder_3cam_skin, endoard/grab_red_cube_distractor_green_cube_3cam_skin, endoard/grab_green_cube_distractor_red_cube_3cam_skin]
|
| 6 |
---
|
| 7 |
|
| 8 |
# pi0.5 SO-101 with a tactile skin
|
|
|
|
| 19 |
| `grab_ball_skin_3cam/` | `pi05_so101_grab_ball_skin_3cam` | 3: `fixed`, `handeye`, `side` | "Grab the ball" | `endoard/grab_ball_3cam_skin`, 150 episodes / 65,989 frames | 10000, 20000, 29999 |
|
| 20 |
| `grab_cup_skin_3cam/` | `pi05_so101_grab_cup_skin_3cam` | 3: `fixed`, `handeye`, `side` | "Grab the blue cup" | `endoard/grab_cup_3cam_skin`, 166 episodes / 64,812 frames | 10000, 20000, 29999 |
|
| 21 |
| `grab_3obj_skin_3cam/` | `pi05_so101_grab_3obj_skin_3cam` | 3: `fixed`, `handeye`, `side` | "Grab the red cube" / "Grab the green cube" / "Grab the green cylinder" | `endoard/grab_{red_cube,green_cube,green_cylinder}_3cam_skin` merged, 450 episodes / 161,918 frames, one task per source | 10000, 20000, 28000 |
|
| 22 |
+
| `grab_cubes_skin_3cam/` | `pi05_so101_grab_cubes_skin_3cam` | 3: `fixed`, `handeye`, `side` | "Grab the red cube" / "Grab the green cube" (see [Prompts](#prompts)) | `endoard/grab_{red_cube,green_cube,red_cube_distractor_green_cube,green_cube_distractor_red_cube}_3cam_skin` merged, 550 episodes / 191,324 frames | 10000 (20000, 29999 in training) |
|
| 23 |
+
| `lift_leave_cubes_skin_3cam/` | `pi05_so101_lift_leave_cubes_skin_3cam` | 3: `fixed`, `handeye`, `side` | "Lift the red cube" / "Lift the green cube" / "Lift the red cube, leave the green cube on the table" / "Lift the green cube, leave the red cube on the table" (see [Prompts](#prompts)) | same 4 cube datasets merged, 550 episodes / 191,324 frames | 10000, 20000 (29999 in training) |
|
| 24 |
|
| 25 |
`grab_3obj_skin_3cam` is multi-task: the prompt selects the object. Its run was stopped at
|
| 26 |
step 28,500 of 30k, so 28000 is its last checkpoint. Its held-out split is stratified per task
|
| 27 |
(15 episodes each).
|
| 28 |
|
| 29 |
+
`grab_cubes_skin_3cam` and `lift_leave_cubes_skin_3cam` are trained on the same 550 cube episodes
|
| 30 |
+
with different prompts; their held-out split is stratified per source (15/15/15/10 episodes).
|
| 31 |
+
|
| 32 |
+
## Prompts
|
| 33 |
+
|
| 34 |
+
Every policy here was trained on a fixed set of text prompts. At inference send one of them
|
| 35 |
+
**verbatim** as the observation `prompt` (same wording, case and punctuation); other phrasings
|
| 36 |
+
are untested.
|
| 37 |
+
|
| 38 |
+
| folder | training prompts (exact strings) |
|
| 39 |
+
|---|---|
|
| 40 |
+
| `grab_ball_skin/`, `grab_ball_skin_3cam/` | `Grab the ball` |
|
| 41 |
+
| `grab_cup_skin_3cam/` | `Grab the blue cup` |
|
| 42 |
+
| `grab_3obj_skin_3cam/` | `Grab the red cube`, `Grab the green cube`, `Grab the green cylinder` |
|
| 43 |
+
| `grab_cubes_skin_3cam/` | `Grab the red cube`, `Grab the green cube` |
|
| 44 |
+
| `lift_leave_cubes_skin_3cam/` | `Lift the red cube`, `Lift the green cube`, `Lift the red cube, leave the green cube on the table`, `Lift the green cube, leave the red cube on the table` |
|
| 45 |
+
|
| 46 |
+
Which prompt each source dataset was trained with in the two cube runs:
|
| 47 |
+
|
| 48 |
+
| source dataset (episodes) | scene | `grab_cubes_skin_3cam` | `lift_leave_cubes_skin_3cam` |
|
| 49 |
+
|---|---|---|---|
|
| 50 |
+
| `endoard/grab_red_cube_3cam_skin` (150) | red cube alone | `Grab the red cube` | `Lift the red cube` |
|
| 51 |
+
| `endoard/grab_green_cube_3cam_skin` (150) | green cube alone | `Grab the green cube` | `Lift the green cube` |
|
| 52 |
+
| `endoard/grab_red_cube_distractor_green_cube_3cam_skin` (150) | red cube + green cube | `Grab the red cube` | `Lift the red cube, leave the green cube on the table` |
|
| 53 |
+
| `endoard/grab_green_cube_distractor_red_cube_3cam_skin` (100) | green cube + red cube | `Grab the green cube` | `Lift the green cube, leave the red cube on the table` |
|
| 54 |
+
|
| 55 |
+
So `grab_cubes_skin_3cam` uses one prompt per target colour whether or not the other cube is
|
| 56 |
+
on the table, and `lift_leave_cubes_skin_3cam` also names the distractor when there is one.
|
| 57 |
+
|
| 58 |
Each step folder is an openpi checkpoint without optimizer state: `params/` (EMA weights),
|
| 59 |
`assets/<asset_id>/norm_stats.json` (quantile stats), `_CHECKPOINT_METADATA`, and a `README.md`
|
| 60 |
with that checkpoint's details.
|
|
|
|
| 88 |
- Action 6-D (padded to 32): **delta on the 5 joints, absolute gripper** (`make_bool_mask(5, -1)`).
|
| 89 |
- Images: `base_0_rgb` = `fixed`, `left_wrist_0_rgb` = `handeye`; `right_wrist_0_rgb` = `side`
|
| 90 |
(mask on) for 3-camera runs, zeros with mask off for `grab_ball_skin`.
|
| 91 |
+
- `action_horizon=16`, `action_stride=2`, prompt from the dataset task string (remapped per
|
| 92 |
+
source for the two cube runs, see [Prompts](#prompts)).
|
| 93 |
- From `pi05_base`, 4 nodes x 1 A100-64GB, `--fsdp-devices=4`, batch 32, AdamW with cosine
|
| 94 |
decay, EMA 0.99, seed 42, 30k steps, 10% of episodes held out.
|