Views
No views yet
stack red cube on blue cubepiperx_bimanual — 14-D joint state/action (per arm: 6 joints + gripper × 2)cam_front, cam_left_wrist, cam_right_wrist (resized to 224×224)pi05_base · full fine-tune (no LoRA) · 3.35B paramsparams/ — EMA inference weights (orbax)assets/piperx_bimanual/norm_stats.json — normalization stats (baked from this dataset)_CHECKPOINT_METADATAtrain_state/ is intentionally excluded (not needed for inference).piperx_policy + the pi05_piper_stacking config).1import pathlib
2from huggingface_hub import snapshot_download
3from openpi.training import config as _config
4from openpi.policies import policy_config
5
6ckpt = pathlib.Path(snapshot_download("axiboai/pi05_piper_stacking"))
7cfg = _config.get_config("pi05_piper_stacking")
8policy = policy_config.create_trained_policy(cfg, ckpt)
9
10# observation = {"observation.images.cam_front": img, ...cam_left_wrist, ...cam_right_wrist,
11# "observation.state": state_14d, "prompt": "stack red cube on blue cube"}
12action_chunk = policy.infer(observation)["actions"] # (50, 14)pi05_piper_stacking is not yet in your src/openpi/training/config.py, add:1 TrainConfig(
2 name="pi05_piper_stacking",
3 model=pi0_config.Pi0Config(pi05=True),
4 weight_loader=weight_loaders.CheckpointWeightLoader("gs://openpi-assets/checkpoints/pi05_base/params"),
5 data=LeRobotPiperXBimanualDataConfig(
6 repo_id="axiboai/piper_stacking",
7 base_config=DataConfig(prompt_from_task=True),
8 assets=AssetsConfig(asset_id="piperx_bimanual"),
9 default_prompt="stack red cube on blue cube",
10 ),
11 lr_schedule=_optimizer.CosineDecaySchedule(warmup_steps=600, peak_lr=5e-5, decay_steps=9400, decay_lr=5e-6),
12 num_train_steps=10000, batch_size=32, save_interval=2500, keep_period=2500,
13 ),pi05_base checkpoint via openpi; the weights inherit the
upstream openpi / base-model license. Dataset: axiboai/piper_stacking.| Path | Step | Train loss |
|---|---|---|
/ (root) | 10,000 (final) | 0.0012 |
step_7500/ | 7,500 | 0.0021 |
step_5000/ | 5,000 | 0.0031 |
step_2500/ | 2,500 | 0.0048 |
create_trained_policy(cfg, ckpt_dir / "step_XXXX") (root = final). Training loss fell monotonically (2,500 → final); compare real-rollout success to tell whether the longer run overfit the 60 demos.