--- library_name: lerobot tags: - robotics - lerobot - pi05 - behavioral-cloning pipeline_tag: robotics --- # posco_pi05_260820_left_c50 PI05 (flow-matching VLA) policy trained with [LeRobot](https://github.com/huggingface/lerobot) 0.4.3 on the POSCO left-arm pick-and-place dataset. ## Configuration | | | |---|---| | architecture | `pi05` | | `chunk_size` / `n_action_steps` | 50 / 50 | | observation | `observation.images.agentview` (1 camera, 480x640) + `observation.state` | | action / state dim | **8** (left arm `arm_l_joint1..7` + `gripper_l_joint1`) | | control rate | 20 Hz -> a chunk of 50 spans 2.5 s | | training | 50,000 steps, batch 32, lr 2.5e-05 | | data | `260820_left`, 100 episodes / 44,136 frames | Right-arm dimensions were dropped before training: in these recordings they are effectively constant (action std down to 0.0), so under normalization they contribute unit-variance sensor noise the policy cannot learn. ## Usage ```python from lerobot.policies.pi05.modeling_pi05 import PI05Policy from lerobot.policies.factory import make_pre_post_processors repo = "learner1119/posco_pi05_260820_left_c50" policy = PI05Policy.from_pretrained(repo).eval() pre, post = make_pre_post_processors(policy.config, pretrained_path=repo) processed = pre(observation) # normalizes + tokenizes chunk = policy.predict_action_chunk(processed) # (B, 50, 8), normalized actions = post(chunk[:, 0]) # -> real action space ``` > On lerobot >= 0.4 normalization lives in these processor pipelines, **not** inside the > policy. Calling `predict_action_chunk` on raw observations silently returns wrong > actions -- always go through `pre` / `post`. The paligemma tokenizer is bundled in this repository, so no access to the gated `google/paligemma-3b-pt-224` repo is required. ## Caveat Trained on all available episodes with no held-out split, so it has no honest offline validation number attached. Treat reported training loss as fit quality, not generalization.