Instructions to use OpenRAL/rskill-diffusion-pusht with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use OpenRAL/rskill-diffusion-pusht with LeRobot:
- Notebooks
- Google Colab
- Kaggle
| tags: | |
| - OpenRAL | |
| - rskill | |
| - diffusion-policy | |
| - lerobot | |
| - pusht | |
| - manipulation | |
| license: apache-2.0 | |
| language: | |
| - en | |
| # rskill-diffusion-pusht | |
| > **OpenRAL rSkill** β Diffusion Policy (Chi et al., 2023) trained on | |
| > the PushT 2-D pushing benchmark, packaged for `OpenRAL`. | |
| This package wraps [`lerobot/diffusion_pusht`](https://huggingface.co/lerobot/diffusion_pusht) | |
| with a `rskill.yaml` manifest. It does **not** copy model weights. | |
| ## Upstream model | |
| | Field | Value | | |
| | --- | --- | | |
| | Source repo | [`lerobot/diffusion_pusht`](https://huggingface.co/lerobot/diffusion_pusht) | | |
| | Paper | [arxiv:2303.04137](https://arxiv.org/abs/2303.04137) β *Diffusion Policy: Visuomotor Policy Learning via Action Diffusion* (Chi et al., 2023) | | |
| | License | Apache-2.0 | | |
| | Parameters | ~263 M (1-D U-Net) | | |
| | Action chunk | 8 (within horizon 16) | | |
| | Denoising | 100 DDPM steps per chunk | | |
| | Benchmark | PushT (`gym_pusht`, `pymunk` 2-D rigid-body) | | |
| Per-chunk inference is dominated by the 100-step denoising loop; cached | |
| pops are essentially free, so this is the extreme test of the | |
| queue-drain contract in `ChunkedExecutor`. | |
| ## Supported robots | |
| | Robot | Embodiment tag | Status | Notes | | |
| | --- | --- | --- | --- | | |
| | PushT 2-D pseudo-robot (`gym_pusht/PushT-v0`) | `pusht`, `lerobot` | β sim | 2-D end-effector pushing a T block on a 512 Γ 512 px canvas | | |
| ## Sensors required | |
| | Key | Type | Resolution | Format | | |
| | --- | --- | --- | --- | | |
| | `observation.image` | RGB camera | 96 Γ 96 | `float32` | | |
| PushT predates the multi-cam `observation.images.cameraN` convention and | |
| exposes the raw key `observation.image`. | |
| ## Manifest summary | |
| | Field | Value | | |
| | --- | --- | | |
| | `name` | `OpenRAL/rskill-diffusion-pusht` | | |
| | `version` | `0.1.0` | | |
| | `license` | `apache-2.0` | | |
| | `role` | `s1` | | |
| | `embodiment_tags` | `pusht`, `lerobot` | | |
| | `runtime` / `quantization.dtype` | `pytorch` / `fp32` | | |
| | `weights_uri` | `hf://lerobot/diffusion_pusht` | | |
| | `latency_budget.per_chunk_ms` | 1 250 ms (warm full-chunk β 1 756 ms on RTX 4070 Laptop, dominated by DDPM) | | |
| | `latency_budget.warmup_ms` | 10 000 ms | | |
| | `latency_budget.load_ms` | 30 000 ms | | |
| | `commercial_use_allowed` | `true` | | |
| Full schema: `openral_core.RSkillManifest` β | |
| `python/core/src/openral_core/schemas.py`. | |
| ## Reproduction | |
| ```bash | |
| git clone https://github.com/OpenRAL/openral && cd OpenRAL | |
| just bootstrap && uv sync --all-packages --group sim | |
| # End-to-end via the canonical SimEnvironment config (CPU is enough): | |
| just sim-diffusion-pusht | |
| # which runs: | |
| # openral sim run --config scenes/benchmarks/diffusion_pusht.yaml --save-video | |
| # Sim test (gym_pusht + pymunk): | |
| uv run pytest tests/sim/test_pusht_2d_diffusion_pusht.py -v -m sim | |
| ``` | |
| ## License | |
| This rSkill package (`rskill.yaml`, `README.md`) is **Apache-2.0** to | |
| match the upstream weights. Commercial use is allowed | |
| (`commercial_use_allowed: true`). | |
| ## See also | |
| - [`robots/pusht_2d/README.md`](../../robots/pusht_2d/README.md) β RobotDescription manifest. | |
| - [`scenes/benchmarks/diffusion_pusht.yaml`](../../scenes/benchmarks/diffusion_pusht.yaml) β paired SimEnvironment config. | |
| - [`docs/reference/vla_compatibility.md`](../../docs/reference/vla_compatibility.md) β VLA Γ Robot Γ Sim matrix. | |