VCR05 robo pizza hack 2026
AI & ML interests
None defined yet.
Recent Activity
group05-vcr · Robotics Pizza Hack 2026
A robot arm that puts cheese and salami on a pizza, learned from human demonstrations. Team group05 (VCR) · Robotics Pizza Hackathon, 2026.
We teach an ElRobot arm (7 joints + gripper, driven by NormaCore Station) two skills by imitation learning:
put cheese on pizza (scoop cheese from a bowl, sprinkle it over the pizza) and place salami on pizza (pick one slice from a tray, place it on the pizza).
Humans teleoperate a leader arm; we record what the follower arm, two cameras and the joints do, and train policies that reproduce the movement.
Models
Start with
05-vcr-salami-smolvla-v7for salami (our latest, and the most decent on the real robot) and05-vcr-cheese-smolvla-v1for cheese.
| Model | Task sentence | Trained on | Notes |
|---|---|---|---|
05-vcr-salami-smolvla-v7 ⭐ |
place salami on pizza |
33 episodes (SV11–SV14), tails trimmed, pauses cut, image augmentation | SmolVLA, 10k steps. Our latest salami model and the one that works most decently on the real robot of everything we tested. Recommended. |
05-vcr-salami-smolvla-v2 |
place salami on pizza |
same 33 episodes, tails not trimmed, no pause cutting, no augmentation | SmolVLA (NormaCore trainer), 15k steps. Our earlier baseline; the first model that worked decently. |
05-vcr-salami-pi05-v1 |
place salami on pizza |
44 episodes (SV11–SV19), LeRobot format | π0.5 (LeRobot), 15k steps. Runs on a remote GPU; in our test it reached over the tray, closed the gripper next to the slice (missed), moved to the pizza, released and returned home. Built on PaliGemma: Gemma terms of use apply. |
05-vcr-cheese-smolvla-v1 ⭐ |
put cheese on pizza |
35 episodes (CV7, CV8), tails trimmed, augmentation | SmolVLA, 10k steps. Tests on the robot: works okay-ish too |
Every model takes two 224×224 camera pictures (image 0 = table camera, image 1 = arm/gripper camera), the 8 joint positions (normalised 0–1) and the task sentence, and returns a chunk of 50 target joint positions (10 Hz = 5 s).
Datasets
| Dataset | Content |
|---|---|
05-vcr-salami-v2-trim |
44 salami episodes, 10,632 frames, tails trimmed to 1 s (parquet from the NormaCore dataset generator) |
05-vcr-salami-v2-lerobot |
the same 44 episodes in LeRobot format (used for π0.5) |
05-vcr-salami-new33-trim |
the first 33 salami episodes (SV11–SV14) |
05-vcr-salami-new33-nopause |
the same 33 episodes with pauses of 0.4 s or more cut to 0.2 s |
05-vcr-cheese-v1-trim |
35 cheese episodes, 6,547 frames, tails trimmed |
Common format: 10 Hz, two JPEG cameras (224×224, table first, arm second), 8 joints (position_norm = state, goal_norm = action),
one task sentence per episode. All datasets share one calibration (including the gripper range 1327–2769) and the same rest pose,
so a cheese stage and a salami stage can follow each other.
What we learned (honest results)
- Data quality mattered more than model choice. We found and removed mixed calibrations, glitchy frames, long still tails (59% of the frames near the rest pose were "do nothing"), and episodes that wait 10–15 s before moving.
- Starting from the exact rest pose is hard: the picture is identical whether the demo said "wait" or "go", so models flip or freeze. Starting from a ready pose above the tray works far better; our runner moves the arm there first.
- Cutting the pauses out of the demonstrations helped: v7 (same 33 episodes as v2, but with the still tails trimmed, the pauses cut to 0.2 s and image augmentation) is the most decent model we tested on the robot.
- Open problems: grab precision (few salami positions in the data) and hesitation above the food.
- Image augmentation lowered the loss on held-out episodes (0.95 vs 1.12 on 4 held-out episodes). We also tested Cosmos 3 Nano (video generation): it keeps motion with edge control, but generating all episodes was too slow for the time we had.
How we run it
Training: NormaCore SmolVLA trainer (and LeRobot for π0.5) on a Nebius GPU. Inference: a small GPU server (FastAPI) holds the models and answers "picture + joints + sentence → next 50 target positions" in about 0.2 s; a runner next to the robot sends the Station frames to it and plays the targets with safety limits (clamped steps, stop on network errors, hand-over from a scripted ready pose).
Team
- Ricards Liskovskis
- Vincent Kamusella
- Claus Nottbrock