YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Pi_05
Contributor: RoboDojo Team | Paper: Pi0.5 technical report | arXiv: TBD | Original code: https://github.com/Physical-Intelligence/openpi
Pi_05 adapts Physical Intelligence's ฯ0.5 policy to XPolicyLab/RoboDojo through the uv-managed OpenPI stack. Integration scripts live at this directory level; the vendored upstream implementation lives in openpi/.
Shared conventions โ argument meanings, checkpoint naming, split-machine deployment, EVAL_ENV_TYPE โ are documented in the XPolicyLab README. Official results: RoboDojo LeaderBoard.
Installation
cd XPolicyLab/policy/Pi_05
bash install.sh
source openpi/.venv/bin/activate # OpenPI is uv-managed; there is no policy conda env
eval.sh arg 9 is not a conda env: pass uv (uses deploy.yml policy_uv_env_path) or an explicit OpenPI project path.
Data Processing
Converts RoboDojo demonstrations into the LeRobot repo consumed by training. The dataset uses the official keys โ observation.state, action, observation.images.cam_high / cam_left_wrist / cam_right_wrist (official LeRobot conversion); the bundled script exists because conversion must run inside openpi's own pinned LeRobot environment, which sets the dataset version. The optional expert_data_num caps episodes for data conversion only (it is not part of checkpoint naming); the optional raw_task_dirs is a source task directory or comma-separated task list under data/<bench_name>/ (defaults to ckpt_name). raw_task_dirs may also be passed directly as the 5th argument to write a differently named dataset from all of a task's demos, e.g. bash process_data.sh RoboDojo stack_bowls_ablation arx_x5 joint stack_bowls.
cd XPolicyLab/policy/Pi_05
bash process_data.sh <bench_name> <ckpt_name> <env_cfg_type> <action_type> [expert_data_num] [raw_task_dirs]
# Example: convert stack_bowls demos for arx_x5 joint control
bash process_data.sh RoboDojo stack_bowls arx_x5 joint
# Example: create a 50-episode ablation while reading from the original task data
bash process_data.sh RoboDojo stack_bowls_50ep arx_x5 joint 50 stack_bowls
Training
cd XPolicyLab/policy/Pi_05
bash train.sh <bench_name> <ckpt_name> <env_cfg_type> <action_type> <seed> <gpu_id>
# Example: train a cotrain run on GPU 0 (comma-separated gpu_id for multi-GPU)
bash train.sh RoboDojo cotrain arx_x5 joint 0 0
Checkpoints land in checkpoints/<bench_name>-<ckpt_name>-<env_cfg_type>-<action_type>-<seed>/; at eval time ckpt_name may be the short run name (auto-combined into that directory name), the full run-directory name, or a path to a checkpoint directory. By default training reads the LeRobot repo produced by process_data.sh (<bench_name>-<ckpt_name>-<env_cfg_type>-<action_type>); override with OPENPI_LEROBOT_REPO_ID when reusing an existing dataset. train.sh sets fsdp_devices=1 for one visible GPU and 2 for multi-GPU by default (override with OPENPI_FSDP_DEVICES).
Evaluation
cd XPolicyLab/policy/Pi_05
bash eval.sh <bench_name> <task_name> <ckpt_name> <env_cfg_type> <action_type> <seed> \
<policy_gpu_id> <env_gpu_id> <policy_uv_env> <eval_env_conda_env>
# Example: evaluate a trained cotrain checkpoint on stack_bowls
bash eval.sh RoboDojo stack_bowls RoboDojo-cotrain-arx_x5-joint-0 arx_x5 joint 0 0 0 uv <eval_env_conda_env>
EVAL_ENV_TYPE=debug runs the offline wiring check (no simulator); leave it unset or set EVAL_ENV_TYPE=sim for RoboDojo simulation. For split-machine deployment via setup_eval_policy_server.sh / setup_eval_env_client.sh, follow the Deployment Flow.
Configuration
deploy.yml keys to check before evaluation: checkpoint_num, result_dir, obs_transform_pipeline, policy_uv_env_path, train_config_name (must match the config used by train.sh), repo_id.
Environment variables used by the adapter scripts:
| Variable | Notes |
|---|---|
OPENPI_LEROBOT_REPO_ID |
Overrides the LeRobot repo id used by train.sh; defaults to <bench_name>-<ckpt_name>-<env_cfg_type>-<action_type>. |
OPENPI_FSDP_DEVICES |
Overrides the FSDP device count passed to OpenPI training. |
OPENPI_TRAIN_CONFIG_NAME |
Overrides the training config; defaults to pi05_base_aloha_full_sim_arx-x5_seed_0. |
OPENPI_DATA_MODE |
Data-processing mode passed to openpi/scripts/process_data.py; defaults to image. |
OPENPI_LOCAL_CACHE_ROOT |
Per-host local cache root for the HF datasets / JAX compilation caches; defaults to /tmp/openpi-cache-$(hostname). |
OPENPI_ROOT and OPENPI_SRC are additional overrides consumed by the local scripts.