{ "suite": "level2_dual_arm", "suite_id": "l2dual", "description": "all level-2 dual-arm tasks (gripper + dexterous hand)", "campaign": "pi05_lv2sub_20261029", "tasks": [ "DualArmLiftBall-v1", "DualArmBookPickPlace-v1", "DualArmPegInHole-v1", "DualArmCleanupPotEnv-v1", "DualArmClothAlign-v1", "DualArmPushObject-v1", "DualArmStraightenRope-v1", "DualArmOpenLaptop-v1", "DualArmThrowBlock-v1", "DualArmJugglingBall-v1", "DualArmOpenBottle-v1", "DualArmPlaceRopeOverRod-v1", "DualArmStuffCloth-v1", "DualArmPouringTwoCups-v1" ], "method": "PI0.5 LoRA + trainable weights, multi-task (one policy for all tasks in the suite)", "base_checkpoint": "gs://openpi-assets/checkpoints/pi05_base/params", "checkpoints": [ { "file": "lora_step_0010000.npz", "step": 10000, "sha256": "f563322d41557a2eea55b90ca749c23981fb65fbf274601d0aafcc6d6e6dee88", "bytes": 1867943218, "evaluated": false }, { "file": "lora_step_0020000.npz", "step": 20000, "sha256": "8a20f4505fbde687371efffcfc611971791b167f296d41349ba66c7b4416683d", "bytes": 1867943218, "evaluated": false }, { "file": "lora_step_0030000.npz", "step": 30000, "sha256": "8e272c01828f6d70db71f294633d99679bfe4d631a756646d580a77f3d09eb69", "bytes": 1867943218, "evaluated": false }, { "file": "lora_step_0040000.npz", "step": 40000, "sha256": "b2b3be2bdc5e7e7337492b9f828ad993d30119a46ab4c2400ddbca44ec94b950", "bytes": 1867943218, "evaluated": false }, { "file": "lora_step_0050000.npz", "step": 50000, "sha256": "14bf21db6b8c8d2d9027d2cc20035bb1cca3e663e2bdf25b6fddc0777ebc4555", "bytes": 1867943218, "evaluated": true } ], "evaluated_checkpoint": "lora_step_0050000.npz", "tensor_count": 51, "action_dim": 44, "state_dim": 44, "action_dim_note": "44 = union of all level-2 embodiments (dual-arm dexterous); narrower embodiments are zero-padded, as in the level-2 dataset", "action_horizon": 50, "max_token_len": 200, "image_size": 224, "exec_steps": 16, "sample_steps": 10, "control_mode": "pd_ee_delta_pose", "state_input": "zero vector", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ], "missing_right_wrist_image": "zeros", "num_demos_per_task": 20, "train_episodes": 280, "train_frames": 121618, "train_steps": 50000, "batch_size": 64, "lr": 5e-05, "warmup_steps": 1000, "lr_schedule": "cosine decay over all 50000 steps to 5e-6", "data_parallel": "pure data parallel (fsdp_devices=1), 2-8 GPUs, global batch 64", "norm_stats_file": "norm_stats.json", "norm_stats_sha256": "6e3e58463d53c08f3e7bf6833d11a670c9c11198b6ed152c870c99644a7b404d", "norm_stats_note": "quantile stats computed on this suite's frames only; padded dims whose q01==q99 were repaired (padding-aware)", "training_data": "Linslab/ManiLadder_Dataset raw/, 20 demos per task (14 tasks, 280 episodes, 121618 frames)", "task_sources": { "DualArmLiftBall-v1": { "path": "maniladder/envs/rigid_body/dual_arm_gripper/level_2/lift_ball.py", "sha256": "0560e10a0e9d98906408f8171268cd04ce655a626f38850bca0f31bf04bd9154", "level": "level_2", "category": "rigid_body/dual_arm_gripper", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmBookPickPlace-v1": { "path": "maniladder/envs/rigid_body/dual_arm_gripper/level_2/book_pick_place.py", "sha256": "6a92d5e17c749bacb4dbb9c0aa8b5a6b3922710a70247473846b807e71e8e7a4", "level": "level_2", "category": "rigid_body/dual_arm_gripper", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmPegInHole-v1": { "path": "maniladder/envs/rigid_body/dual_arm_gripper/level_2/peg_in_hole.py", "sha256": "38c5217e32fae22a0fa962b54c44a42fc12cd1220060d602365b8be75f42e5ae", "level": "level_2", "category": "rigid_body/dual_arm_gripper", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmCleanupPotEnv-v1": { "path": "maniladder/envs/rigid_body/dual_arm_gripper/level_2/cleanup_pot.py", "sha256": "279f544967eb0539e28bc8cd4063d28b80aa0fead7c0733a1787ad0fc983b155", "level": "level_2", "category": "rigid_body/dual_arm_gripper", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmClothAlign-v1": { "path": "maniladder/envs/deformable/dual_arm_gripper/level_2/cloth_align.py", "sha256": "9f65e9339bd9b64ab708a1acfbf5780c14c0ab553ef0d83ba4cfe32b5a987748", "level": "level_2", "category": "deformable/dual_arm_gripper", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmPushObject-v1": { "path": "maniladder/envs/deformable/dual_arm_gripper/level_2/push_object.py", "sha256": "3f0cf62ba9ad3f2b6e93d3808fd68b11a810ed6b7eedea063c922059afbc5ab6", "level": "level_2", "category": "deformable/dual_arm_gripper", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmStraightenRope-v1": { "path": "maniladder/envs/deformable/dual_arm_gripper/level_2/straighten_rope_dual.py", "sha256": "fae8f4feb83db36e70574f232d3c6faab0d7fbc43a5dac2cb13fd8bc13207314", "level": "level_2", "category": "deformable/dual_arm_gripper", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmOpenLaptop-v1": { "path": "maniladder/envs/rigid_body/dual_arm_dex/level_2/open_laptop.py", "sha256": "e2c3c0714da9a484ed7a7ac3dc6374f61c7e1867167f50b37dca9845534faf93", "level": "level_2", "category": "rigid_body/dual_arm_dex", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmThrowBlock-v1": { "path": "maniladder/envs/rigid_body/dual_arm_dex/level_2/throw_ball.py", "sha256": "0a00a7e724272b98eb42cd58fb57f6e15756a6e115f19f320febda6dda6d7680", "level": "level_2", "category": "rigid_body/dual_arm_dex", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmJugglingBall-v1": { "path": "maniladder/envs/rigid_body/dual_arm_dex/level_2/juggle_ball.py", "sha256": "f5a65ccfa2d7aa379f131628849315ce1840b5e11620e5f6a86c6a3451706ed1", "level": "level_2", "category": "rigid_body/dual_arm_dex", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmOpenBottle-v1": { "path": "maniladder/envs/rigid_body/dual_arm_dex/level_2/open_bottle.py", "sha256": "6c492aff17adfba725a0f605df5394f4fe93e04ef122cf473a210e4a2cf84e2f", "level": "level_2", "category": "rigid_body/dual_arm_dex", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmPlaceRopeOverRod-v1": { "path": "maniladder/envs/deformable/dual_arm_dex/level_2/drape_rope.py", "sha256": "670f1e36c3cd79cbce17b8e6a6fd5edd57816b15dcd8aad748be5a669b8fe14c", "level": "level_2", "category": "deformable/dual_arm_dex", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmStuffCloth-v1": { "path": "maniladder/envs/deformable/dual_arm_dex/level_2/stuff_cloth.py", "sha256": "5b93ca100fb7b035fa07f9c334e1dce162baf7915a1bbf56cae0f1d78f5d56f8", "level": "level_2", "category": "deformable/dual_arm_dex", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] }, "DualArmPouringTwoCups-v1": { "path": "maniladder/envs/deformable/dual_arm_dex/level_2/water_cup.py", "sha256": "4ac7b0bf11eecec6703389831a8711f66875b4dbfedbe6ab8a5faf04ceb9281d", "level": "level_2", "category": "deformable/dual_arm_dex", "cameras": [ "front_camera", "robot_camera_0", "robot_camera_1" ] } }, "eval_episodes": 50, "eval_seed_base": 1000, "evaluated_steps": [ 50000 ], "selection": "final checkpoint only (no checkpoint selection)" }