Downloads · 30 days
16
33% of all-time downloads
RyanL22/pi05-rby1-wujihand2-synth-boxfull-30k
pi05-rby1-wujihand2-synth-boxfull-30k is a robotics model from RyanL22. Use it for the robotics task on the model card, and read the license before you ship it in a product. It is set up for lerobot. The card lists the license as apache-2.0.
LeRobot-native pi05 (v0.6.1) fine-tuned on only synthetic RB-Y1 videos generated from human demonstrations (RoboTryOn-human-2, lerobotboxfullidmpass, 384 ep, 20 fps), no real teleop data: 11 cells, shares ∝ sqrt(frames).
Downloads · 30 days
16
33% of all-time downloads
All-time downloads
48
Public
Parameters
4.1B
9.4 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors9.4 GB · 100%
How the weights are stored.
BF163.6B · 87%
From the Hugging Face model README
LeRobot-native pi05 (v0.6.1) fine-tuned on only synthetic RB-Y1 videos generated from human demonstrations (RoboTryOn-human-2, lerobot_box_full_idm_pass, 384 ep, 20 fps), no real teleop data: 11 cells, shares ∝ sqrt(frames).
Checkpoint: step 30,000 (final) of a 30,000-step run (NAVER MLXP, 2x H200, batch 32 x 2 = 64).
Same layout as RyanL22/pi05-rby1-wujihand2-teleopv1-baseline-20k: joint_position[10:64] = right_arm_0..6 (7) | right hand 20 |
left_arm_0..6 (7) | left hand 20. Wheels / torso / head dropped (constant); hold them at the recording pose at rollout.
max_state_dim = max_action_dim = 54, tokenizer max_length = 320 (already in this repo's config).
| value | |
|---|---|
| vision encoder (SigLIP, 412.4M) | fine-tuned (not frozen) |
| image augmentation | photometric + affine, one draw replayed across the stereo pair |
| mirror augmentation | off |
| optimizer | AdamW, peak lr 2.5e-5, cosine decay to 2.5e-6, warmup 1000 |
| precision | bfloat16, gradient checkpointing |
| chunk | 50 actions @ 20 fps (2.5 s), n_obs_steps=1 |
| normalization stats | quantiles; constant dims widened (gate: q99 - q01 >= 1e-3) |
observation.images.base_0_rgb <- left ZED view, 512x288; observation.images.left_wrist_0_rgb <- right ZED view, 512x288observation.state — 54 dims; action — 54 dims, absolute joint targetsTasks (11): move the box to the right, starting with the left hand and finishing with the right hand / move the cup aside, then pick up the ball from table and put it in the white box / open the air fryer with the left hand, pick up the apple from the table with the right hand and put it in the air fryer, then close the air fryer with the left hand / pick up the ball from table and put it in the white box / pick up the bottle from table and put it in the white box / pick up the bottle from table and put it on the shelf at front / pick up the brush with the right hand and wipe away the black dot / pick up the coffee pot from table and put it in the white box / pick up the doll from table and put it in the white box / pick up the small box from table and put it in the white box / pour the coffee from the bottle into the red cup
All synthetic episodes start from one pose (per-task arm means within 0.26 rad of the common mean, std ≤ 0.19 rad),
so use this synthetic common start for every task. Values are rad in the 66-dim robot order; the 54 policy dims are
joint_position[10:64]. Wheels/torso/head are the recording constants and are not fed to the policy.
| group | values |
|---|---|
| wheels (0:4) | 0 0 0 0 |
| torso (4:10) | +0.000 +0.524 -1.047 +0.524 +0.000 -0.000 |
| right_arm (10:17) | +0.407 -0.158 +0.267 -1.878 -0.496 -0.149 -1.304 |
| right hand (17:37) | +0.356 -0.132 +0.004 +0.059 +0.180 +0.060 +0.056 +0.162 +0.134 +0.074 +0.059 +0.157 +0.086 +0.055 +0.063 +0.169 +0.045 +0.086 +0.071 +0.188 |
| left_arm (37:44) | +0.479 +0.044 -0.370 -1.891 +0.312 -0.299 +1.245 |
| left hand (44:64) | +0.210 +0.027 +0.012 +0.059 +0.116 +0.073 +0.044 +0.101 +0.128 +0.077 +0.047 +0.111 +0.064 +0.056 +0.030 +0.110 +0.007 +0.074 +0.035 +0.091 |
| head (64:66) | +0.000 +0.870 |
Real teleop episodes start from a more extended pose: right_arm +0.522 -0.020 +0.267 -2.078 -0.005 +0.006 -1.592, left_arm +0.528 +0.015 -0.268 -2.067 +0.008 +0.001 +1.591, hands ≈ open.
Both starts are in-distribution for the 4 real tasks; for the synthetic-only tasks use the synthetic start.
from lerobot.policies.pi05.modeling_pi05 import PI05Policy
policy = PI05Policy.from_pretrained("RyanL22/pi05-rby1-wujihand2-synth-boxfull-30k")