pi05-libero

SkillDev tools

Run the openpi π0.5 LIBERO checkpoint (pi05_libero) as a

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the pi05-libero skill

What this skill tells your AI

The instructions your AI receives, as published by graph-robots/open-robot-skills in policies/pi05-libero/SKILL.md and read by ahel’s review.

Closed-loop VLA-policy skill backed by one model checkpoint: openpi's π0.5 LIBERO checkpoint (pi05_libero). The skill is the model — it owns its serving preset (pi05-libero), so a policy node names this skill, not a free-floating policy_id. The closed-loop replan/execute/terminate body and the load-bearing LIBERO observation encoding live in gap.runtime.policy.run_policy_loop; the websocket client is resolved (and cached per preset) through the executor's PolicyExecutor.

Capability

  • Embodiment: Franka Panda (LIBERO/robosuite), OSC_POSE delta action space [Δx, Δy, Δz, Δrx, Δry, Δrz, gripper]. No embodiment translation happens in the loop — the checkpoint's native action space is forwarded to sim.apply_policy_action.
  • Tasks: the LIBERO pick-and-place distribution — pick a tabletop rigid object, optionally place/drop it in a container. Works best steered: perceive the target and hover the end-effector above it (preserving the current rotation) before handing over, so the policy starts in-distribution.
  • Not for: deformables / cloth folding, articulated objects, non-LIBERO embodiments, or tasks the checkpoint never saw. If the task is outside this envelope, pick a different skill or report a missing capability — do not delegate it here and hope.

Serving

The bundle ships its own server.py (vendored from openpi scripts/serve_policy.py) and declares openpi as a git dep in its own pyproject.toml — so this bundle is self-contained: no $GAP_OPENPI_DIR clone, no shared venv. First-run setup is gap skills install pi05-libero, which uv syncs the bundle's .venv/ with all model deps. The launcher then spawns the server via uv run --project policies/pi05-libero -- python server.py ... (so the bundle's own venv activates automatically) and downloads the checkpoint from s3://openpi-assets/checkpoints/pi05_libero on first run.

Run it yourself with gap policy serve pi05-libero. A policies: config entry named pi05-libero overrides the recipe (e.g. an external url:).

Termination & exits

The loop exits on whichever fires first — a commanded gripper open→close→open cycle (gripper_cycle, the per-item terminator for clean-all loops; set gripper_cycle_termination: true), a non-empty termination_prompt answered yes by the VLM (completed_by_vlm), or the max_windows backstop. These are the subgraph's success exits; the failure exit is failed (the loop raised). Whether the task actually succeeded is a checkpoint, not an exit — attach a postcondition that checks the world (e.g. the object is in the container), never an exit value like "folded".

Signals

GitHub stars
41
Forks
7
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
pi05-libero
Source
github.com/graph-robots/open-robot-skills