--- license: apache-2.0 pipeline_tag: robotics tags: - robotics - vision-language-action - vla - imle - openpi - pi0.5 - droid - franka --- # IMLE-VLA checkpoints (IROS 2026) Checkpoints for **IMLE-VLA: Fast Single-Step Action Generation for Vision-Language-Action Policies** ([paper](https://arxiv.org/abs/2609.10915), [project page](https://kianhk6.github.io/IMLE-VLA/), [code](https://github.com/kianhk6/IMLE-VLA)). *Five-minute teaser: the setting, why regression collapses, why flow matching is slow and jerky, IMLE-VLA on the real robot, and how conditional IMLE works.* IMLE-VLA replaces the 10-step flow-matching action head of π₀.₅ with a single-step generator trained with conditional IMLE. Same frozen VLM backbone, one forward pass per action chunk, 55 Hz instead of 15 Hz on an NVIDIA L40S. ## Contents | path | what | size | |---|---|---| | `droid/jax/57000/` | JAX (orbax) checkpoint of the real-robot DROID model: `params/` + `assets/droid/norm_stats.json`. Training config `16_horrizon_05_lr_2_factor_96_batch`, step 57000. Serve with `scripts/serve_policy.py policy:checkpoint`. | 6.6 GB | | `droid/triton/` | The same weights converted for the single-step Triton engine (`pi05_imle_droid_57000.pkl`) plus `assets/droid/norm_stats.json`, the PaliGemma tokenizer and a provenance copy of the engine. This is the 55 Hz path used on the robot. | 6.3 GB | The DROID model: π₀.₅ fine-tuned on DROID with the cIMLE objective (sample factor m = 2), frozen VLM, trained action expert only, joint-position action space, 16-step action chunks, two camera views (one exterior + wrist). It is the policy behind the real-robot experiments in the paper (Franka Emika Panda, four tabletop tasks, 55 Hz at execution horizon 12). ## Real-robot videos Franka Emika Panda, both policies trained on DROID: π₀.₅ at 15 Hz versus IMLE-VLA at 55 Hz (the `droid/` checkpoint). **Reactive task: pineapple on a moving plate.** A remote-controlled car moves the plate, so the target is in continuous motion. | IMLE-VLA | π₀.₅ | |---|---| | | | **Static tasks** (side by side: π₀.₅ left, IMLE-VLA right) Swap pineapple and cube Pineapple in bowl Pineapple in cabinet ## Use ```bash git clone --recurse-submodules https://github.com/kianhk6/IMLE-VLA.git && cd IMLE-VLA/openpi # install per openpi/README.md pip install -U huggingface_hub # JAX checkpoint huggingface-cli download kinster/IMLE-VLA --include "droid/jax/*" --local-dir ./ckpt python scripts/serve_policy.py --env=DROID --port=8000 policy:checkpoint \ --policy.config=16_horrizon_05_lr_2_factor_96_batch \ --policy.dir=./ckpt/droid/jax/57000 \ --policy.sample-kwargs='{"num_steps": 1}' # Triton package (55 Hz) huggingface-cli download kinster/IMLE-VLA --include "droid/triton/*" --local-dir ./ckpt scripts/serve_triton.sh ./ckpt/droid/triton 16_horrizon_05_lr_2_factor_96_batch 0 8000 DROID ``` Then run the DROID robot client (`examples/droid/main.py --open_loop_horizon 12`) or score the served policy against ground-truth DROID actions with `scripts/validate_triton_droid.py`. Both are documented in `openpi/README.md` and `openpi/docs/triton.md`. ## LIBERO `libero/imle_vla_libero_h10_{spatial,object,goal,long,overall}` and `libero/imle_vla_libero_h30_{...}` hold LeRobot checkpoints (`pretrained_model/`), per suite and overall, for execution horizon 10 and 30. Train and evaluate them with the LeRobot code in the repository's [`lerobot/`](https://github.com/kianhk6/IMLE-VLA/tree/main/lerobot) folder. ## Citation ```bibtex @inproceedings{Hosseinkhani2026IMLEVLAFS, title = {{IMLE-VLA}: Fast Single-Step Action Generation for Vision-Language-Action Policies}, author = {Hosseinkhani, Kian and Peng, Qinhe and Shramko, George and Aghabozorgi, Mehran and Qian, Jianing and Engst, Tristan and Moazeni, Alireza and Jayaraman, Dinesh and Li, Ke}, booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, year = {2026}, eprint = {2609.10915}, archivePrefix = {arXiv}, url = {https://arxiv.org/abs/2609.10915} } ``` ## License Apache 2.0, like the [openpi](https://github.com/Physical-Intelligence/openpi) code and π₀.₅ checkpoints these weights are fine-tuned from. The PaliGemma backbone is subject to the [Gemma Terms of Use](https://ai.google.dev/gemma/terms).