--- license: apache-2.0 base_model: lerobot/smolvla_robotwin tags: - robotics - vla - smolvla - lerobot - robotwin - imitation-learning pipeline_tag: robotics library_name: lerobot --- # SmolVLA RoboTwin `place_bread_skillet` (50 ep, single instruction) SmolVLA policy fine-tuned on 50 demonstration episodes of the **`place_bread_skillet`** task from **RoboTwin 2.0** (`demo_clean` config), starting from the [`lerobot/smolvla_robotwin`](https://huggingface.co/lerobot/smolvla_robotwin) base checkpoint. ## Task Dual-arm pick-and-place: pick up the bread and place it inside the skillet. - **Robot**: Agilex dual-arm, end-effector control (16D state, 16D action) - **Cameras**: 3 RGB streams — `dual_cam_global`, `cam_wrist_65`, `cam_wrist_75` - **Control rate**: 10 Hz - **Single fixed instruction**: `"place the bread in the skillet"` (Strategy A, not random per-episode) ## Training | Config | Value | |---|---| | Base checkpoint | `lerobot/smolvla_robotwin` | | Training data | 50 RoboTwin demonstrations (subset of `place_bread_skillet_300ep`), strategy A single instruction | | Frames | 8,298 (~165 frames/ep) | | Batch size | 32 | | Steps | 6000 (~23 epochs) | | Optimizer | AdamW, lr=1e-4 | | Scheduler | Cosine, warmup=300, decay=6000 | | Chunk size | 50 | | Final train loss | 0.008 | | Walltime | ~2h 15min (A100) | ## Evaluation Evaluated in RoboTwin 2.0 simulator (`demo_clean` config), 10 episodes, `max_steps=400`, `action_chunk_exec=50`. | Model | Data | Base | Success | |---|---|---|---| | SmolVLA (`smolvla_base`) | 300 ep | smolvla_base | **0/10 (0%)** | | **SmolVLA (this model)** | **50 ep** | **smolvla_robotwin** | **6/10 (60%)** | | X-VLA (`xvla-base`) | 300 ep | xvla-base | 8/10 (80%) | Training with the `smolvla_robotwin` base checkpoint enables strong data efficiency: with 6× less data and 3× fewer training steps, this model jumps from 0% to 60% success rate on this task. Successful episodes complete in 132–201 environment steps (13–20s); failed episodes time out at 400 steps. ## Usage ```python from lerobot.policies.smolvla import SmolVLAPolicy policy = SmolVLAPolicy.from_pretrained("arrow-hf/smolvla-robotwin-place-bread-skillet-50ep") ``` See [LeRobot documentation](https://huggingface.co/docs/lerobot) for inference setup. ## Citation Built on [SmolVLA](https://huggingface.co/lerobot/smolvla_base) and [SmolVLA-RoboTwin](https://huggingface.co/lerobot/smolvla_robotwin), fine-tuned on data collected from [RoboTwin 2.0](https://github.com/TianxingChen/RoboTwin).