jinseonylee/SO101_PickAndPlace_Fruit
Preview • Updated • 239 • 1
A pi0.5 vision-language-action model, LoRA fine-tuned on the SO-ARM101 robot for a banana pick-and-place task, using openpi.
pi05_base (VLM backbone: PaliGemma / Gemma 2B, action expert: Gemma 300M)gemma_2b_lora) and the action expert (gemma_300m_lora)so101_follower), 6-DoF arm + gripper, front + wrist RGB cameraspi05_so_arm_lora, batch size 32)This checkpoint is meant to be served with openpi's
pi05_so_arm_lora training config, the same one used to produce it.
huggingface-cli download hi-space/PI-0.5-Pick-Banana-v2 --local-dir ./PI-0.5-Pick-Banana-v2
uv run scripts/serve_policy.py policy:checkpoint \
--policy.config=pi05_so_arm_lora \
--policy.dir=./PI-0.5-Pick-Banana-v2
This starts a websocket policy server (default port 8000) that a robot client can query for actions. See docs/remote_inference.md in the openpi repo for the client-side protocol.
from openpi.policies import policy_config
from openpi.training import config as _config
train_config = _config.get_config("pi05_so_arm_lora")
policy = policy_config.create_trained_policy(
train_config,
"./PI-0.5-Pick-Banana-v2",
default_prompt="pick banana and place",
)
# obs is a dict with the SO-ARM101 keys: image.front, image.wrist, state
action_chunk = policy.infer(obs)["actions"]
params/ — model weights (Orbax/OCDBT format, as saved by openpi's training script)assets/jinseonylee/SO101_PickAndPlace_Fruit/norm_stats.json — state/action normalization statistics computed
on the training dataset; loaded automatically by create_trained_policy