SmolVLA — RAISE 2026 greenhouse ripeness-sorting (reference model)
Fine-tuned SmolVLA-450M for the RAISE 2026 Summer School (ENET'Com Sfax, July 2026) Day-2 lab: a UR5e + Robotiq 2F-85 on a Husky base, parked at a tomato plant row in Gazebo Harmonic, executing "pick the red tomato" among green distractors from a single wrist camera.
The policy learned an active-perception scan: look above the left grasp spot — if the tomato there is red, descend and pick; if green, pan right and pick there.
Results (Lab-2.2 evaluator, live sim rollouts)
| Metric | Score |
|---|---|
| Correct-color picks (red L/R alternating, 8 trials) | 8/8 |
| Wrong-object grabs | 0 |
| Max decision latency (RTX 4090 laptop) | 167 ms |
| Rubric total | 100/100 |
Training
- Data: 49 auto-demonstrated scan episodes (4228 frames @ 10 Hz, 224×224 wrist RGB + 7-float state/action), recorded under a deterministic base-parking protocol. Dataset + full pipeline: aniskoubaa/raise2026-student
- Recipe:
lerobot-train, 6000 steps, batch 64, ~1.5 h on a 16 GB RTX 4090 laptop, wrist camera mapped toobservation.images.camera1via--rename_map
Use
from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("scalexi/smolvla-raise2026-ripeness-ref")
Inputs: observation.images.camera1 (224×224 RGB), observation.state
(6 UR5e joint angles + gripper 0..0.5), a language instruction. Output: 7-float
action (6 joint targets + gripper). Use the bundled pre/post processors
(make_pre_post_processors(policy.config, pretrained_path=...)) — they hold
the tokenizer and the dataset normalization stats.
Author: Prof. Anis Koubaa anis.koubaa@gmail.com