> ## Documentation Index
> Fetch the complete documentation index at: https://docs.generalrobotics.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# pi05

> Run PI05 policy inference on robot observations

Run PI05 policy inference on robot observations.

## Parameters

<ParamField body="base_rgb" type="ImageInput" required>
  Base camera RGB image as file path, URL, PIL Image, or numpy array.
</ParamField>

<ParamField body="wrist_rgb" type="ImageInput" required>
  Wrist camera RGB image as file path, URL, PIL Image, or numpy array.
</ParamField>

<ParamField body="joints" type="Union[np.ndarray, list]" required>
  Joint positions as numpy array or list.
</ParamField>

<ParamField body="gripper" type="Union[np.ndarray, list]" required>
  Gripper position as numpy array or list.
</ParamField>

<ParamField body="state" type="Union[np.ndarray, list]" required>
  Robot state as numpy array or list (concatenation of joints and gripper).
</ParamField>

<ParamField body="prompt" type="Optional[str]">
  Optional task prompt string.
</ParamField>

<ParamField body="rtc_kwargs" type="Optional[Dict[str, Any]]">
  Optional real-time-chunking params (see :py:meth:`preprocess`). When set, the server runs the RTC path and returns a `prev_chunk` field to feed back on the next call.
</ParamField>

<ParamField body="prev_chunk" type="Optional[Union[np.ndarray, list]]">
  Previous predicted chunk fed back as RTC guidance (None on the first call).
</ParamField>

<ParamField body="timeout" type="float | None">
  Optional timeout in seconds for the HTTP request.
</ParamField>

## Returns

Action dictionary containing:

* "actions": numpy array of shape (horizon, action\_dim) with predicted actions
* "prev\_chunk": (RTC only) chunk to feed back on the next call
* Other fields from policy.infer() (e.g., "state", "policy\_timing", etc.)

## Example

```python theme={null}
from grid_cortex_client import CortexClient, ModelType
import numpy as np
client = CortexClient()
base_img = np.random.randint(0, 255, (224, 224, 3), dtype=np.uint8)
wrist_img = np.random.randint(0, 255, (224, 224, 3), dtype=np.uint8)
joints = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6])
gripper = np.array([0.5])
state = np.concatenate([joints, gripper])
action = client.run(
    ModelType.PI05,
    base_rgb=base_img,
    wrist_rgb=wrist_img,
    joints=joints,
    gripper=gripper,
    state=state,
    prompt="pick up the cup"
)
print(action["actions"].shape)
```


## Related topics

- [pi05](/models/cortex/pi05.md)
- [GRID Cortex Client](/models/cortex.md)
