Model Card for pi0
π₀ (Pi0) is a general-purpose robot foundation model from Physical Intelligence: a generalist Vision-Language-Action policy that understands visual inputs, interprets natural language instructions, and controls a variety of different robots across diverse tasks. The LeRobot implementation is adapted from their open-source OpenPI repository.
This policy has been trained and pushed to the Hub using LeRobot.
Learn how to train and run it in the LeRobot pi0 guide, or browse the full documentation.
Model Details
- License: apache-2.0
- Fine-tuned from: lerobot/pi0_base
- Robot type:
Panda
- Cameras:
agentview, robot0_eye_in_hand, robot0_eye_in_hand_2
Inputs & Outputs
The policy consumes these observation features and produces these action features.
Inputs
| Feature |
Type |
Shape |
observation.state |
STATE |
(9,) |
observation.images.agentview |
VISUAL |
(3, 224, 224) |
observation.images.robot0_eye_in_hand |
VISUAL |
(3, 224, 224) |
observation.images.robot0_eye_in_hand_2 |
VISUAL |
(3, 224, 224) |
Outputs
| Feature |
Type |
Shape |
action |
ACTION |
(7,) |
Training Dataset
- Repository: mim-chess-vlas/train_800_sparse__point__overlay_a75__sim__all_cameras__live
- Episodes: 787
- Frames: 195184
- Frame rate: 20 FPS
- Task(s): "Pick the jam and place it into the box", "Pick the cereal and place it into the box", "Pick the pear and place it into the box", "Pick the sweet potato and place it into the box", "Pick the scone and place it into the box", "Pick the boxed food and place it into the box", "Pick the can and place it into the box", "Pick the hamburger and place it into the box", "Pick the lemon and place it into the box", "Pick the squash and place it into the box", "Pick the cheese and place it into the box", "Pick the cup and place it into the box", "Pick the egg and place it into the box", "Pick the ham and place it into the box", "Pick the hot dog and place it into the box", "Pick the apple and place it into the box", "Pick the boxed drink and place it into the box", "Pick the bread and place it into the box", "Pick the candle and place it into the box", "Pick the chicken breast and place it into the box", "Pick the soap dispenser and place it into the box", "Pick the jar and place it into the box", "Pick the knife block and place it into the box", "Pick the kettle and place it into the box", "Pick the potato and place it into the box", "Pick the basket and place it into the box", "Pick the cake and place it into the box", "Pick the orange and place it into the box", "Pick the spice and place it into the box", "Pick the spray and place it into the box", "Pick the alcohol and place it into the box", "Pick the blender jug and place it into the box", "Pick the mushroom and place it into the box", "Pick the salt and pepper shaker and place it into the box", "Pick the tiered shelf and place it into the box", "Pick the condiment and place it into the box", "Pick the mango and place it into the box", "Pick the pitcher and place it into the box", "Pick the plant and place it into the box", "Pick the stool and place it into the box"
Training Configuration
| Setting |
Value |
| Training steps |
60000 |
| Batch size |
16 |
| Optimizer |
adamw |
| Learning rate |
5e-05 |
| Seed |
0 |
| LeRobot version |
0.6.0 |
How to Get Started with the Model
New to LeRobot? These guides cover the full workflow:
The short version to run and train this policy:
Run the policy on your robot
lerobot-rollout \
--strategy.type=base \
--robot.type=Panda \
--robot.port=<your_robot_port> \
--robot.cameras="{ <camera_1>: {type: opencv, index_or_path: <index_or_path>, width: 640, height: 480, fps: 30}, <camera_2>: {type: opencv, index_or_path: <index_or_path>, width: 640, height: 480, fps: 30}}" \
--policy.path=mim-chess-vlas/train_800_sparse__point__overlay_a75__sim__all_cameras__live__pi0__seed_0 \
--task="Pick the jam and place it into the box" \
--duration=60
Replace the remaining <...> placeholders with your own values: --robot.port and the camera names/indices are specific to your machine, and the camera names must match the observation keys this policy was trained on.
When --strategy.type=base is used the script doesn't record the episodes. Skipping duration will make the policy run indefinitely. For more information look at rollout documentation.
Train your own policy
This policy type is usually fine-tuned from the pretrained base model lerobot/pi0_base:
lerobot-train \
--dataset.repo_id=${HF_USER}/<dataset> \
--policy.path=lerobot/pi0_base \
--output_dir=outputs/train/<policy_repo_id> \
--job_name=lerobot_training \
--policy.device=cuda \
--policy.repo_id=${HF_USER}/<policy_repo_id> \
--wandb.enable=true
Writes checkpoints to outputs/train/<policy_repo_id>/checkpoints/.
Evaluation
No evaluation results have been provided for this policy yet.
Citation
If you use this policy, please cite the method linked in the description above, along with LeRobot:
@misc{cadene2024lerobot,
author = {Cadene, Remi and Alibert, Simon and Soare, Alexander and Gallouedec, Quentin and Zouitine, Adil and Palma, Steven and Kooijmans, Pepijn and Aractingi, Michel and Shukor, Mustafa and Aubakirova, Dana and Russi, Martino and Capuano, Francesco and Pascal, Caroline and Choghari, Jade and Moss, Jess and Wolf, Thomas},
title = {LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch},
howpublished = "\url{https://github.com/huggingface/lerobot}",
year = {2024}
}