File size: 7,360 Bytes
00c55c8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
> **30k candidate:** default checkpoint is
> `checkpoints/29999`. L40 and physical-robot acceptance
> are still pending. Do not publish or treat as frozen.

---
license: apache-2.0
library_name: jax
tags:
  - robotics
  - vision-language-action
  - pi0.5
  - stream-pi
  - piper-x
  - real-robot
---

# StreamPI Piper-X Real6 — 20k

StreamPI / π0.5 checkpoint fine-tuned for six Piper-X dual-arm
real-robot manipulation tasks.

This release packages the 20,000-step JAX inference checkpoint together
with its matching normalization statistics, deployment code, evaluation
utilities, and source framework.

## Release contents

- Complete StreamPI/OpenPI source framework
- 20,000-step JAX inference parameters
- Matching `real_piper_x_6tasks` normalization statistics
- WebSocket policy server and Piper-X robot client
- Offline replay-evaluation scripts and saved results
- Release manifest and provenance metadata
- Archived upstream StreamPI README

## Model overview

| Field | Value |
|---|---|
| Base policy | π0.5 |
| Temporal extension | StreamPI |
| Training framework | JAX |
| Robot | Piper-X dual-arm platform |
| Training domain | Real-robot manipulation |
| Number of tasks | 6 |
| Released training step | 20,000 |
| Dataset/config identity | `real_piper_x_6tasks` |
| Intended use | Research, offline evaluation, and controlled real-robot deployment |

## Observation and action interface

The checkpoint must be used with the same feature ordering, camera naming,
normalization statistics, and control convention used during training.

| Component | Expected content |
|---|---|
| External camera | `cam_high` |
| Wrist cameras | `cam_left_wrist`, `cam_right_wrist` |
| Left-arm state/action | `left_joint_1..6`, `left_gripper` |
| Right-arm state/action | `right_joint_1..6`, `right_gripper` |
| Normalization | Bundled `real_piper_x_6tasks` statistics |
| Policy transport | WebSocket policy server/client |

Do not substitute normalization statistics from another robot, dataset, or
checkpoint. Even when tensor dimensions match, a different joint order,
gripper convention, image key, or normalization range can produce invalid
robot actions.

## Recommended validation order

Before enabling torque on the physical robot:

1. Verify checkpoint loading and configuration resolution.
2. Confirm all three camera streams and their expected names.
3. Confirm state and action dimensions, joint order, units, and gripper range.
4. Load the bundled `real_piper_x_6tasks` normalization statistics.
5. Run the packaged offline replay evaluation.
6. Inspect predicted actions for NaN, Inf, discontinuities, and range violations.
7. Test with torque disabled or in a constrained low-speed environment.
8. Enable real-robot execution only after all safety checks pass.

## Deployment notes

The WebSocket server and robot client must use the same checkpoint,
configuration, normalization assets, observation schema, and action-chunk
execution convention.

For reproducibility, use the environment and launch information recorded in
the packaged manifest and provenance metadata. Paths from the original
training machine may need to be replaced with local release paths.

## Key packaged files

- [`assets/pi05_calvin/InternRobotics/InternData-Calvin_ABC/norm_stats.json`](assets/pi05_calvin/InternRobotics/InternData-Calvin_ABC/norm_stats.json)
- [`assets/pi05_libero/physical-intelligence/libero/norm_stats.json`](assets/pi05_libero/physical-intelligence/libero/norm_stats.json)
- [`assets/streampi05/unified_robodojo_all_arx_x5/norm_stats.json`](assets/streampi05/unified_robodojo_all_arx_x5/norm_stats.json)
- [`checkpoints/20000/assets/real_piper_x_6tasks/norm_stats.json`](checkpoints/20000/assets/real_piper_x_6tasks/norm_stats.json)
- [`deployment/piperx_client.py`](deployment/piperx_client.py)
- [`evaluation/scripts/offline_continuous_replay.py`](evaluation/scripts/offline_continuous_replay.py)
- [`evaluation/scripts/offline_replay_eval_30.py`](evaluation/scripts/offline_replay_eval_30.py)
- [`evaluation/scripts/offline_replay_smoke.py`](evaluation/scripts/offline_replay_smoke.py)
- [`lerobot/examples/2_evaluate_pretrained_policy.py`](lerobot/examples/2_evaluate_pretrained_policy.py)
- [`lerobot/lerobot/configs/eval.py`](lerobot/lerobot/configs/eval.py)
- [`lerobot/lerobot/scripts/eval.py`](lerobot/lerobot/scripts/eval.py)
- [`packages/openpi-client/src/openpi_client/websocket_client_policy.py`](packages/openpi-client/src/openpi_client/websocket_client_policy.py)
- [`src/openpi/serving/websocket_policy_server.py`](src/openpi/serving/websocket_policy_server.py)
- [`third_party/aloha/aloha_scripts/replay_episodes.py`](third_party/aloha/aloha_scripts/replay_episodes.py)
- [`third_party/libero/libero/lifelong/evaluate.py`](third_party/libero/libero/lifelong/evaluate.py)

## Upstream documentation

The original StreamPI project README is preserved at:

- [`docs/UPSTREAM_STREAMPI_README.md`](docs/UPSTREAM_STREAMPI_README.md)

Use the upstream document for general StreamPI/OpenPI architecture and
installation information. This model card describes the Piper-X Real6
checkpoint and its release-specific constraints.

## Intended use

This release is intended for:

- StreamPI and π0.5 research
- Offline inference and replay evaluation
- Reproduction of the Piper-X Real6 experiments
- Controlled deployment on a compatible Piper-X dual-arm platform
- Analysis of temporal conditioning in vision-language-action policies

## Limitations

- The checkpoint was trained on a limited set of six real-robot tasks.
- Performance outside the training distribution is not guaranteed.
- Camera placement, lighting, workspace geometry, embodiment calibration,
  and action conventions can materially affect behavior.
- Offline replay consistency does not guarantee closed-loop task success.
- Real-robot execution requires independent collision, workspace, velocity,
  and emergency-stop safeguards.

## Safety

This model can generate unsafe or out-of-distribution robot commands.
Deployment must include external safety controls such as joint-limit checks,
workspace constraints, velocity and acceleration limits, collision monitoring,
and a hardware emergency stop.

Never treat the learned policy as the sole safety layer.

## License

Apache-2.0. Third-party components and upstream dependencies remain subject
to their respective licenses.

<!-- PIPERX_REAL6_DEPLOYMENT_START -->

## Piper-X Real6 deployment

This release contains the StreamPI Piper-X policy trained for six real-robot
tasks.

Runtime configuration:

```yaml
config: pi05_stream3_piper_x_real_6tasks
checkpoint: checkpoints/20000
asset: real_piper_x_6tasks
history: 3
predict: 10
execute: 5
state_dim: 14
action_dim: 14
```

Verify the release:

```bash
export OPENPI_PYTHON=/path/to/python
bash scripts/verify_release.sh
```

Run a synthetic loopback test without robot hardware:

```bash
export OPENPI_PYTHON=/path/to/python
export LOOPBACK_GPU=0
export LOOPBACK_PORT=18080

bash scripts/test_loopback.sh
```

Start the policy server:

```bash
export OPENPI_PYTHON=/path/to/python
export POLICY_GPU=0
export POLICY_PORT=8000

bash scripts/start_policy_server.sh
```

Before enabling robot torque, complete policy warm-up and read
[`HANDOFF.md`](HANDOFF.md), especially the client protocol and safety
requirements.

<!-- PIPERX_REAL6_DEPLOYMENT_END -->