IronStratum Get an API key

pi05-droid: pi 0.5 DROID, the DROID-tuned pi 0.5 checkpoint from Physical Intelligence, documented as a metered action lane

pi05-droid is this platform's name for a metered lane serving the DROID tune of pi 0.5, the open-weights vision-language-action model from Physical Intelligence shipped in September 2025. The tune is real, public, and downloadable today. Its row sits in the platform's model data, behind the public list, rate set, nothing answering. The family head, the pi05 page, carries what pi 0.5 is and how it differs from pi 0. This page owns the DROID side: the rig, the menu, the cameras, the latency band.

Last verified: 2026-10-05

What it is

The pi05_droid checkpoint is an expert tune of pi 0.5: the publisher fine-tuned the base model on the DROID dataset, a large public collection of recorded arm work. The checkpoint table in the openpi repository describes the row as fast inference and good language-following, built with knowledge insulation. The action expert's learning signal stays out of the vision-language backbone, so the backbone keeps its scene and language knowledge. What matters here: the repository calls this one its strongest generalist DROID policy, based on the public RoboArena benchmark.

FactValueOwner of the number
Checkpointgs://openpi-assets/checkpoints/pi05_droid, use case "Inference / Fine-Tuning"openpi repository, read 2026-10-05
Classexpert tune of the pi 0.5 base, fine-tuned on DROIDopenpi repository
Positioning"currently our strongest generalist DROID policy", based on RoboArenaopenpi DROID instructions
Task rangesimple tabletop pick-and-place, across a wide range of environments, camera positions, and lightingopenpi DROID instructions
Camera contractone external camera, left or right, plus the wrist cameraopenpi DROID instructions
Action spacethe released tune was trained on joint velocity actionsopenpi DROID training notes
LeRobot-format portlerobot/pi05_droid, 1,090 downloads, no model card, last change 2026-06-05Hugging Face, read 2026-10-05

The name map: pi0.5 DROID, pi05_droid, and F-Droid

WhereHow it is writtenWhat it means
The paper and the publisher's pagespi 0.5 DROIDthe DROID tune of pi 0.5
Code, configs, the checkpoint tablepi05_droidthe same tune, in code form
This platform's model idpi05-droidthe same tune, as the lane names it
Android search resultsF-Droidan app repository for Android, not a robot thing
Film search resultsdroids, pit droidfiction, not a robot thing

The collision earns its row: autocomplete for pi0.5 droid collapses into Android-store questions.

What DROID is: a rig, not a robot brand

DROID stands for Distributed Robot Interaction Dataset. The DROID paper (2024) describes the collection: 76,000 recorded runs, 350 hours, 564 scenes, 84 tasks, 50 collectors, 12 months, three continents. Every recording came off one standardized rig, and the rig shopping list is public. The rig: a Franka arm (Emika Panda or Research 3), a Robotiq 2F-85 gripper, two ZED 2 stereo cameras outside, a ZED Mini on the wrist, a small industrial computer, and a control laptop. Parts run roughly 20,000 to 46,000, per that list, updated around September 2025.

One line in that shopping list matters more than the prices: a strong GPU in the laptop is only needed if you skip remote inference. The publisher's instructions take that option. The model runs as a policy server on a second machine; the control laptop queries it. That brain-leaves-the-robot split is the publisher's own, and the exact shape of a hosted lane. The SO-101 cloud brain guide walks the pattern on a low cost arm.

Posture once more: not on the public list. The models index is the live catalog, and the VLA category page covers the family.

Use cases

Zero-shot tabletop pick and place. Two camera views and a sentence in, joint commands out, for simple tabletop work. The instructions claim wide tolerance across environments, camera positions, and lighting, with no careful control of camera angle or placement needed. In the publisher's words, "the policy is fairly robust in our experience".

Language-followed rerouting. Good language-following is the checkpoint table's pitch for this tune: the task sentence is read, not matched. The same table notes the older pi0-DROID baseline as weaker at language, the practical reason this tune exists.

A starting point for your own DROID data. Record on your rig, then fine-tune from this checkpoint. The publisher's training notes give two paths: a small custom dataset of tens of demonstrations converts to the LeRobot format and trains with a ready config. Full DROID training is another matter: about 1.8 TB on disk, and roughly two days on eight H100 GPUs per pass. The same notes say plain that low-rank adapter training underperformed on this path.

Where it is the wrong tool: fast reactive work and complex manipulation. In the instructions' words, the policy is far from perfect and will fail on more complex tasks, though it usually makes a decent effort.

The camera and state contract

Two views drive the model: one external camera, chosen left or right, plus the wrist camera. The rig carries two outside ZED 2 cameras, so you pick the better side. ZED Explorer, the setup tool, lists camera IDs and shows the live picture. Check that the outside view sees every object the task touches.

The state is the arm's joint state, sent with every call. Actions come back as a chunk of future joint commands. One detail matters to driver authors. The released tune was trained on joint velocity actions. The publisher's open training recipe switched to joint positions, which fit simulation evaluation. Know which space your driver consumes. Norm stats translate output into your robot's units; wrong stats produce wrong motion. The lane returns the stats it applied with every answer.

The checkpoint menu

The DROID tune sits in a family, and the menu lives in one repository table:

CheckpointBuilt forThe table's pitch
pi05_basefine-tuningthe pretrained base, for tuning onto your own demos
pi05_droidinference, and further fine-tuningfast inference and good language-following
pi05_liberoinferencetuned for the LIBERO simulation benchmark
pi0_fast_droidinferencesimple tabletop tasks, zero-shot in new scenes
pi0_droidfine-tuningfaster inference, but may not follow language as well

The repository frames the choice honestly: expert checkpoints are meant to run directly on the target robot, and may or may not work on yours. Its counterweight: the publisher found some, especially the DROID checkpoint, to generalize quite broadly in practice. The rule: close to a Franka rig with two cameras, run the DROID tune. With your own demos, start from the base. The LIBERO sibling has its own page; the family page carries the map.

Latency to expect

The publisher's troubleshooting table gives the band: 0.5 to 1 second per action chunk is normal; a cabled connection for the control laptop reduces latency. Read any latency claim against two units. A chunk is the batch one call returns. A step is one command inside it. Pages mix them. The family page carries the timing breakdown. The lane's contract follows the same shape: one call, one chunk, the robot runs it while the next computes.

API usage

The lane's contract speaks the platform's action route: POST /v1/action, a Bearer key from the console, multipart form data in, JSON out. The model id is pi05-droid.

Form fieldRequiredNotes
modelyespi05-droid
instructionyesthe task sentence, non-empty on every row
stateyesa JSON array of numbers: your arm's joint state. The empty array [] is the legal stateless case
imageyes, one or morecamera frames as file parts. Two for this checkpoint: the outside view and the wrist view

One served request returns three things. actions is the action chunk, a list of joint commands in the checkpoint's own shape. normalization is the norm stats the lane applied, untouched; your driver converts back to your units. usage is ours: the call count and cost. Metering is per call. One served request is one billed call. A refused request bills nothing. The prepaid wallet is the spending stop. Every field, error code, and limit lives in the run-action reference.

Metering, as designed:

What metersRate
Calls served-

The dash is deliberate: the rate publishes with the row, not before. It is set in the platform's model data, this page's search listing carries it, and the pricing page renders rate cards for the rows it lists.

Calls to this alias answer a plain 404 today, and a client written against this shape is testable now. A busy lane answers with a named 429 and a retry hint, never a silent failure, unbilled.

curl

curl -X POST "https://api.ironstratum.com/v1/action" \
  -H "Authorization: Bearer $KEY" \
  -F "model=pi05-droid" \
  -F "instruction=pick up the apple and put it on the plate" \
  -F 'state=[0.0, 0.12, -0.4, 0.0, 0.5, 0.1, 0.0]' \
  -F "image=@outside.jpg" \
  -F "image=@wrist.jpg"

python

import os
import requests

state = [0.0, 0.12, -0.4, 0.0, 0.5, 0.1, 0.0]  # your arm's joint state

resp = requests.post(
    "https://api.ironstratum.com/v1/action",
    headers={"Authorization": "Bearer " + os.environ["KEY"]},
    data={
        "model": "pi05-droid",
        "instruction": "pick up the apple and put it on the plate",
        "state": "[" + ", ".join(str(s) for s in state) + "]",
    },
    files=[
        ("image", ("outside.jpg", open("outside.jpg", "rb"), "image/jpeg")),
        ("image", ("wrist.jpg", open("wrist.jpg", "rb"), "image/jpeg")),
    ],
    timeout=30,
)
resp.raise_for_status()

answer = resp.json()
chunk = answer["actions"]         # the action chunk: future joint commands
stats = answer["normalization"]   # the norm stats this lane applied
print("commands in this chunk:", len(chunk))
print("cost of this call:", answer["usage"]["cost"])

lerobot

A rig already recording in the LeRobot format speaks this checkpoint's vocabulary. The port maps the two views and the joint state onto observation keys, so a recorded dataset carries the same fields the route takes. Per the LeRobot pi 0.5 docs, the port trains with quantile statistics, so datasets ship q01 and q99 fields; at serving, the normalization block carries the applied stats.

import os
import requests

session = requests.Session()
session.headers["Authorization"] = "Bearer " + os.environ["KEY"]

instruction = "pick up the apple and put it on the plate"
state = [0.0, 0.12, -0.4, 0.0, 0.5, 0.1, 0.0]  # same order on every call

running = True
while running:
    outside = read_camera("outside")  # your camera source, one frame
    wrist = read_camera("wrist")
    resp = session.post(
        "https://api.ironstratum.com/v1/action",
        data={
            "model": "pi05-droid",
            "instruction": instruction,
            "state": "[" + ", ".join(str(s) for s in state) + "]",
        },
        files=[
            ("image", ("outside.jpg", outside, "image/jpeg")),
            ("image", ("wrist.jpg", wrist, "image/jpeg")),
        ],
        timeout=30,
    )
    resp.raise_for_status()

    chunk = resp.json()["actions"]
    for deltas in chunk:
        state, running = arm_step(state, deltas)  # your arm driver goes here
        if not running:
            break

The loop is the whole pattern: send two frames, the sentence, and the joint state. Receive a chunk. Run it at your control rate. Send the new state with the next call. The contract is the form fields, not a client library.

Benchmarks

Every number below carries its owner and its date. None is this platform's own run: nothing serves under this alias today. Our numbers publish only after they are measured, with the method named. That refresh is later work, not a promise here.

The publisher's positioning, quoted. The openpi DROID instructions, read 2026-10-05, call this checkpoint "currently our strongest generalist DROID policy", based on the public RoboArena benchmark, a community arena that scores policies through real-world paired comparisons. The same instructions set the ceiling: tabletop pick-and-place widely, failure on more complex tasks.

A third-party real-robot table, where this tune loses. The MolmoAct2 paper from Ai2 (arXiv 2605.02881, Table 6, read 2026-10-05) ran zero-shot evaluation on a DROID setup, with novel objects and varied camera views, 15 trials per task:

Taskpi 0.5-DROIDMolmoBotMolmoAct2-DROID
Apple on plate66.786.7100.0
Pipette in tray33.353.386.7
Red cube in tape roll53.333.393.3
Knife in box26.740.093.3
Objects in bowl46.228.662.0
Average45.248.487.1

Read that honestly: on this out-of-distribution suite the DROID tune averaged 45.2 percent and the newer model 87.1. The paper's authors built the suite and won it; that bias is worth naming, and the numbers remain the cleanest published real-robot set for this tune. A checkpoint averaging 45 percent on hard novel scenes is still a working tool for the simple tabletop tasks it was tuned for. Both facts sit on this page because both are true.

What is deliberately absent. The family page carries a dated community leaderboard read for the pi 0.5 family. This page does not repeat it. The one DROID-specific production figure circulating in community notes is conflicted between two dated readings, and the leaderboard itself was unreachable at draft time, so no number from it is quoted here.

Getting started

  1. Read the primary sources. The openpi repository, its DROID instructions, and the DROID paper are all public. Every identity fact on this page traces to one of them.
  2. Match the rig before the model. Two camera views, one outside and one on the wrist; a joint state you can send every control tick; a driver that knows whether it consumes joint velocities or joint positions. Those three lines decide whether this tune can run on your robot at all.
  3. Write your client against the contract now. The tabs above are the shape the lane ships under; the run-action reference documents every field and error. The models index is the live catalog.
  4. Watch the index, not this page. The models index is the live catalog. The VLA page introduces the rest of the action model set.
  5. Open the console when you build. The signup flow opens the prepaid wallet, the keys, and the billing history. The loaded balance is the spend bound, and each key revokes alone.

What the platform serves

Specialty models — kind and unit price
ModelKindPrice
pi05-droidvla—

This model is not on the public list. The models index is the live catalog. Nothing on this page is a live rate.

Questions

How do I download the pi 0.5 DROID checkpoint?
The publisher hosts it at the gs://openpi-assets/checkpoints/pi05_droid path, and the openpi tools fetch and cache it. On Hugging Face, the LeRobot-format port lives at lerobot/pi05_droid: 1,090 downloads as of October 5, 2026, and no model card at all. Access friction is real and ranks: GitHub issue 597 documents a permissions error on a preview path; the stable path is the openpi-assets one. If a download fails with an access error, check the path against the repository's checkpoint table first.
Is pi 0.5 DROID the same thing as F-Droid?
No. F-Droid is a free and open source app repository for Android phones. The name collision is real in search: type pi0.5 droid and the suggestions collapse into questions about the Android store. DROID on this page means the robot dataset, the Distributed Robot Interaction Dataset, a large public collection of arm recordings. If you came for the Android store, that is a different site.
What robot is pi 0.5 DROID for?
The DROID rig: a Franka arm with a Robotiq two-finger gripper, two outside ZED 2 stereo cameras, one ZED Mini camera on the wrist, a small industrial computer, and a control laptop, with the model numbers above. The dataset behind the tune is the DROID collection: 76,000 recorded runs, 350 hours, 564 scenes, 50 collectors, 12 months, three continents, per the 2024 DROID paper. DROID is not a robot brand. It is a standard rig plus the dataset recorded on it. The publisher says the tune generalizes quite broadly, so rigs close to this shape are fair game.
What latency does pi 0.5 DROID give per chunk?
The publisher's own troubleshooting table, read October 5, 2026, sets the expectation: 0.5 to 1 second per action chunk is normal, with a cabled connection for the control laptop. Watch the units: a chunk is the batch of commands one call returns, a step is one command inside it, and pages mix them. The family page carries the hardware timing breakdown for the chunk itself.
What cameras does pi 0.5 DROID need?
Two views: one outside camera and one wrist camera. The publisher's instructions pass a single external camera, chosen left or right, plus the wrist camera; the rig's two outside ZED 2 cameras mean you pick the side. The camera section above carries the ZED Explorer check. The model reads only those two views.
Can I run pi 0.5 DROID without my own GPU?
Yes, by design, but today you still bring the GPU. The publisher's recipe runs the model as a policy server on a second machine (their example is a 4090-class box) while the control laptop runs a thin client that sends frames. The brain-leaves-the-robot pattern is the publisher's own. What is missing today is a hosted endpoint you rent per call. This page documents one: the row sits in the platform's model data, and it is not on the public list. The models index is the live catalog.
pi 0.5 DROID or the base checkpoint: which should I use?
Use the DROID tune to run the model directly on a rig close to the DROID setup, and to follow language instructions out of the box. Use the base checkpoint when you plan to fine-tune on your own demonstrations. That is its job. The two older baselines in the same table, pi0-FAST-DROID for inference and the faster-but-weaker-at-language pi0-DROID, sit in the checkpoint menu section above. For the LIBERO simulation benchmark there is a third sibling tune, with its own page.