“LEGO Mindstorms robots met een ZCS controller in een gesimuleerde wereld”

Dat is de titel van mijn afstudeerscriptie. Ik zal hier wat proberen uit te leggen wat ik heb gedaan voor mijn afstuderen.

Mijn aftudeerrichting is Organisational Dynamics and Self Organisation, een master Artificial Intelligence aan de VU die zich richt op de simpele bouwstenen van systemen. Dit kan op verschillende manieren: biologisch (denk aan de mieren die samen een mierenhoopvormen ), in organisaties (alle werknemers samen zijn het bedrijf), economisch (alle transacties van beurshandelaren bepalen de beurskoers), etc.

Mijn afstudeerproject was intern (mijn supervisor was Martijn Schut) en richtte zich op een bepaalde evolutionaire techniek: ‘Zeroth level Classifier System’ (ZCS). Deze techniek werd gebruikt om (LEGO) robots te besturen: de robots moesten in een ruimte surveilleren (een zogenaamde surveillance task). De robots, die ofwel een ZCS controller hadden ofwel een conventionele controller, namen het in drie verschillende werelden tegen elkaar op.

ZCS

Een ZCS (onafhankelijk van mijn onderzoek) bestaat uit een set met (random geïnitialiseerde) regels. Deze regels koppelen een bepaalde input aan een actie. Bijvoorbeeld: “Als bumpersensor aan is en camera registreert lijn, ga dan naar links”. Elke regel heeft een waardering; hoe hoger de waardering, hoe groter de kans is dat de regel wordt uitgevoerd (als de voorwaarde van de regel gelijk is aan de input). Na het uitvoeren van een regel wordt de waardering aangepast: was het effect van een regel positief, dan gaat het omhoog en andersom. Op deze manier hoop je, dat de goed presterende regels de minder presterende regels verdringen.

De bestaande regels dekken niet alle mogelijkheden, en dus vervangt de ZCS constant oude regels voor nieuwe regels. Deze nieuwe regels zijn gebaseerd op best presterende regels, en hopelijk leidt dit tot nog betere gedrag.

In mijn project betekende het dus, dat de ZCS regels voor het gedrag van de robot moest verzinnen: op het moment dat de voelbumper aan de voorkant een signaal gaf (je staat dan dus tegen een muur), worden alle regels geactiveerd die dat in hun voorwaarde hebben staan. De ZCS moest zo goed mogelijk gedrag verzinnen. Maar wat voor gedrag?

Surveilleren

De robots moesten surveilleren: de hele ruimte moest in de gaten worden gehouden. Dit betekent dus: bewegen! Niet stil blijven staan en proberen niet te komen waar eerder al een andere robot was. De robots lieten allemaal een spoor achter, zogenaamde feromonen. Dit spoor verdween met de tijd. Kwam een robot dus feromonen tegen, dan wist hij: hier is al een robot eerder geweest. Aan de hand van verschillende factoren (sta ik tegen een muur aan, sta ik op feromonen, heb ik bewogen sinds de vorige tijdstap) werden de regels gewaardeerd. Dit moest dus leiden tot een goed presterende regelset.

Evaluatie

De ZCS controllers werden vergeleken met conventionele controllers. Deze hadden simpele regels, zoals: “als je tegen een muur aanstaat, maak dan een draai” en “als je niet op feromonen staat, ga dan rechtdoor”. Bij de experimenten werden foto’s gemaakt van de situatie en automatisch geëvalueerd: hoe goed werd er gesurveilleerd? Uit deze testen bleek, dat de conventionele controllers het beter deden dan de ZCS controllers: de goede regels kwamen niet bovendrijven.

Onderstaand filmpje laat van één wereld (er waren er drie) één experiment zien (elk setup werd 50 keer herhaald), met de ZCS controllers geactiveerd.

httpvh://www.youtube.com/watch?v=PlRWOBAYoMQ

Voor de geïnteresseerden: Mijn thesis en de afsluitende presentatie.

LEGO Mindstorms robots with a ZCS controller in a simulated physical world (Engels)
Afsluitende presentatie (Engels)

Tags: , , , ,

Leave a Reply