--- datasets: - lichtphyz/so101_block_to_bin_v3 library_name: lerobot license: apache-2.0 model_name: diffusion pipeline_tag: robotics tags: - lerobot - robotics - diffusion - so101 --- # Diffusion Policy ablation: SO-101 block to bin, without hue and sharpness augmentation An ablation of [lichtphyz/diffusion_v3_desktop](https://huggingface.co/lichtphyz/diffusion_v3_desktop): the same [Diffusion Policy](https://huggingface.co/papers/2303.04137), data and settings, but without the two slowest image augmentations (hue and sharpness). Those two took most of the data-loading time, so this run trained in 5 h 13 min instead of 11 h 20 min, with the same final training loss (0.003). It keeps brightness, contrast and saturation jitter and a small random affine transform. Part of the [SO-101 block-to-bin collection](https://huggingface.co/collections/lichtphyz/so-101-block-to-bin-act-vs-diffusion-policy-6ad6ca5c5e111b426bb1f8a6) (models, training data and real-robot evaluations). Code, training commands and lessons learned: [github.com/Lichtphyz/so101-block-to-bin](https://github.com/Lichtphyz/so101-block-to-bin). > **Not evaluated on the real robot.** For a tested model, use > [lichtphyz/diffusion_v3_desktop](https://huggingface.co/lichtphyz/diffusion_v3_desktop) (8/10). Run this one the > same way (DDIM, 5 denoising steps). Trained with [LeRobot](https://github.com/huggingface/lerobot); the training command is in [docs/training.md](https://github.com/Lichtphyz/so101-block-to-bin/blob/main/docs/training.md). --- ## Model Details - **License:** apache-2.0 - **Robot type:** `so_follower` - **Cameras:** `front`, `wrist` ## Inputs & Outputs The policy consumes these observation features and produces these action features. **Inputs** | Feature | Type | Shape | | --- | --- | --- | | `observation.state` | STATE | `(6,)` | | `observation.images.front` | VISUAL | `(3, 480, 640)` | | `observation.images.wrist` | VISUAL | `(3, 480, 640)` | **Outputs** | Feature | Type | Shape | | --- | --- | --- | | `action` | ACTION | `(6,)` | ## Training Dataset - **Repository:** [lichtphyz/so101_block_to_bin_v3](https://huggingface.co/datasets/lichtphyz/so101_block_to_bin_v3) - **Episodes:** 125 - **Frames:** 55677 - **Frame rate:** 30 FPS - **Task(s):** "Put the block in the bin." ## Training Configuration | Setting | Value | | --- | --- | | Training steps | 60000 | | Batch size | 32 | | Optimizer | adam | | Learning rate | 0.0001 | | Seed | 1000 | | LeRobot version | 0.6.2 | --- ## How to Get Started with the Model New to LeRobot? These guides cover the full workflow: - **[Install LeRobot](https://huggingface.co/docs/lerobot/main/en/installation)** — set up the `lerobot` package. - **[Hardware setup](https://huggingface.co/docs/lerobot/main/en/hardware_guide)** — assemble, wire, and calibrate your robot and cameras. - **[Record data & train a policy](https://huggingface.co/docs/lerobot/en/il_robots)** — the end-to-end imitation-learning walkthrough. - **[CLI cheat-sheet](https://huggingface.co/docs/lerobot/main/en/cheat-sheet)** — quick reference for the `lerobot-*` commands. The short version to run and train this policy: ### Run the policy on your robot ```bash lerobot-rollout \ --strategy.type=base \ --robot.type=so_follower \ --robot.port= \ --robot.cameras="{ : {type: opencv, index_or_path: , width: 640, height: 480, fps: 30}, : {type: opencv, index_or_path: , width: 640, height: 480, fps: 30}}" \ --policy.path=lichtphyz/diffusion_v3_desktop_skip_hue_sharpness \ --task="Put the block in the bin." \ --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](https://huggingface.co/docs/lerobot/main/en/inference). ### Train your own policy ```bash lerobot-train \ --dataset.repo_id=${HF_USER}/ \ --policy.type=diffusion \ --output_dir=outputs/train/ \ --job_name=lerobot_training \ --policy.device=cuda \ --policy.repo_id=${HF_USER}/ \ --wandb.enable=true ``` _Writes checkpoints to `outputs/train//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: ```bibtex @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} } ```