Informatica Project · 2025–2026

Charlie
& Blast

Het verhaal van twee robots, twee geverfde bekertjes, en het langzame besef dat niet elk plan uitkomt zoals je hoopt.

Charlie
01
02
01 Het Begin

We wilden een robot die cocktails maakte.

Niet echt iets kleins. Wij gingen direct voor het grote idee: een robot die zelfstandig drankjes kan mixen. Als een echte barman.

We pakten de LEGO mindstorms 51515 en bouwden Charlie, mooi, schattig en veelbelovend.

Leuk plan LEGO 51515
Schets
03
Charlie zonder grijparm
02 Het Probleem

Charlie had geen grijparm.

"Kan hij een beker vasthouden?" Nee. Iets optillen? Ook nee.

Ten eerste was zijn rechter arm ook niet compleet, we hebben aan mevrouw Verscharen gevraagd of zij een lego stukje kon 3d printen. Het was een prima rijdende robot, maar voor cocktails had hij gewoon niet de goede onderdelen. Geen claw, geen arm, geen manier om iets echt vast te pakken.

De beslissing was pijnlijk: Charlie moest eraan. We haalden hem helemaal uit elkaar.

Probleem gevonden Charlie gesloopt
04
03 De Herbouw

Uit de resten van Charlie bouwden we Blast.

Blast had wat Charlie miste: een echte claw. Een grijpsysteem. We bouwden hem opnieuw, blok voor blok, met de claw als main goal.

Voor het eerst had onze robot handen. In theorie tenminste. Nu moesten we hem leren hoe hij die kon gebruiken.

Blast gebouwd Claw aanwezig
Blast compleet met claw
Close-up van de claw
05
04 De Code

De eerste grab & move code.

We schreven onze eerste code om de claw te laten grijpen en bewegen. In theorie zou dezelfde code altijd hetzelfde resultaat moeten geven, maar...

Toen werkte het Soms. Op sommige momenten pakte Blast de beker netjes op. We keken elkaar aan blij, maar toen liet hij ze vallen of deed hij dat de volgende keer niet.

Was dit het?
Werkte! (soms) Maar inconsistent
Code links
Code rechts
Blast houdt beker vast
06
De blauwe beker De roze beker
05 De Bekers

Blauw en roze.

We hadden de bekers een kleur gegeven zodat hij deze uiteindelijk later zou herkennen. Maar eerst moesten we de grab and move wel laten werken voordat dat kon gebeuren.

Dat gebeurde niet. Maar er was nog hoop voor later.

Misschien was dit onze kans.
Blauw Roze Mooi plan
07
06 De Frustratie

Dezelfde code. Steeds andere uitkomst.

testresultaten
Poging 1:  ✅ Beker opgepakt. Motor A: 90°
Poging 2:  ❌ Claw te vroeg dicht. Motor A: 67°
Poging 3:  ✅ Werkt. Motor A: 90°
Poging 4:  ❌ Arm te ver. Motor B: 78° (verwacht: 60°)
Poging 5:  ❌ Beker valt. Grip mislukt.
Poging 6:  ✅ Werkt. Motor A: 90°
Poging 7:  ❌ ??? Motor A: 45°. Reden onbekend.

We controleerden alles. Kabels, motoren, code, niets was anders. Op een gegeven moment gaven we het op. (dit zijn geen echte testresultaten, maar wel gebasseerd op onze testen)

08
07 Plan B

Oke eenvoudiger. Gewoon 1 beker.

We gooiden het cocktail idee weg. Het nieuwe doel: pak 1 beker en breng hem hier.

Stoppen met het grote idee voelde als opgeven, maar eigenlijk was het gewoon slim. Een realistisch doel stellen is beter dan een onmogelijk doel nastreven.

"Soms is de beste oplossing niet de mooiste, maar de werkende."
Plan bijgesteld
plan_b.py
def haal_beker():
  Eigenlijk de originele grab and move code
09
ML interface Mindstorms
Training met de bekers
08 Machine Learning

We ontdekten de ML-optie. En daarna de dissapointment.

In Mindstorms zit een machine learning functie, de robot kon kleuren herkennen. Precies wat we nodig hadden! We trainden het model. Blauw en Roze. Tientallen keren denkend dat het gaat werken.

Maar het ML-model werkt alleen via de camera van de tablet/laptop, niet via een sensor op de robot zelf. De robot ziet zelf niets. Dit is echt kansloos.

Doodlopende weg. Niets dat wij fout deden, gewoon een beperking van de robot.
Doodlopende weg
10
09 Het Einde

We gaven het op. En dat was oke.

De deadline naderde. De grab-and-move code deed nog steeds random dingen. De ML-optie werkte niet. Tijd: op.

Dus we stopten. Niet uit luiheid, want we hadden echt ons best gedaan.

"Stoppen op het juiste moment is ook een vaardigheid."
Reflectie · Hoofdstuk 10

Wat we echt hebben geleerd.

Begin klein

Cocktails waren te ambitieus als startpunt. 1 ding goed doen is beter dan tien dingen half.

Ken je tools

De ML-beperking had ons veel tijd bespaard als we die eerder hadden uitgezocht.

Soms zijn er dingen uit je macht

Inconsistente motoren zonder positie-feedback, dat is een hardware-grens, geen codefout.

Eerlijk zijn loont

Zeggen "het werkte niet, en dit is waarom" is moediger dan een slecht resultaat inleveren.

We probeerden het  ·  We faalden  ·  We leerden