![]() |
RobotsDe Robots die door mij gemaakt zijn voor dit project vallen onder de categorie Braitenberg vehicles. Braitenberg vehicles zijn conceptueele simpele robots die voldoen aan het princiepe van de moderne AI. De robots hebben geen interne representatie van de wereld en kunnen alleen direct reageren op de activiteit van de sensoren (in principe is een beperkte vorm van representatie in de vorm van variabelen wel toegestaan). Voor dit project zijn de eerste drie Vehicles van Braitenberg uitgewerkt. De concepten voor deze vehicles zijn: Vehicle1: Getting around. Dit voertuig heeft maar een sensor en een motor. In het hoofdstuk van Braitenberg is de sensor gevoelig voor warmte en is hij op een exitatiore manier verbonden met de motor. Dit heeft als gevolg dat als het warmer wordt bij de sensor, de motor meer vaart zal maken. De robot zal op in een rechte lijn op zoek gaan naar een koudere plek.
Mijn practische uitvoering van dit hypothetische voertuig was een Lego Mindstorms robotje met een motor en een lichtgevoelige sensor die op de grond gericht was. Als de sensor een wit gebied tegenkwam dan verhoogde hij de output van de motor en zou dus versnellen zolang er iets wits onder de sensor zat. Als dit witte dan weer donkerder werdt dan zou de robot weer vertragen. Bij deze robot horen dezelfde input-output relaties die je ook terug vindt in de grafiekjes bij Vehicles 2a en b. Het enige verschil is dat er bij deze robot maar een sensor en een motor is. Vehicles2 a en b: Fear and Aggression. Deze voertuigen zijn gemaakt om te reageren op licht. Vehicles a en b bestaan beiden uit twee sensoren en twee motoren die een excitatiore verbinding met elkaar hebben. Het enige verschil tussen a en b is dat bij voertuig a de rechter sensor verbonden is met de rechter motor (voor links natuurlijk vice versa) en dat bij voertuig b die verbinding gekruist is.
Het resultaat van deze verbindingen is dat voertuig a weg gaat van het licht en dat voertuig b het licht juist opzoekt en als het ware "aanvalt". Voertuig b zal blijven rijden ook al heeft hij het licht bereikt. Als je de relatie tussen de input van de sensor en de output van de motor van zowel voertuig 1 als voertuig 2 in een grafiekje zou uitzetten dan zou dat er als volgt uit zien:
De realiteit bij uitvoering van deze theoretische robots was een ander geval. Om er voor te zorgen dat de code simpel bleef en er toch complex gedrag op kon treden heb ik de aanwijzingen van de NQC gids van Marc Overmars gevolgd en een threshold in gesteld. Dit betekend dat als er voldoende verzadiging licht op de sensor valt om over het threshold heen te gaan, de motor output in een sprong veranderd. Het resultaat kun je zien in dit grafiekje van de praktijk.
Uitvoering: De robots zijn wederom na gebouwd met lego. Ditmaal zijn er natuurlijk twee motoren en twee sensoren gebruikt. De sensoren zijn voorwaards gericht om een echte lichtbron te kunnen volgen. Hier kun je de broncode voor Vehicle 2a vinden in NQC Hier kun je de broncode voor Vehicle 2b vinden in NQC Vehicles3a en b: Love
Deze voertuigen zijn het zelfde als vehicles 2a en b op een kleine verandering na. Deze voertuigen hebben inhibitiore verbindingen tussen hun sensoren en motoren. Dit houd in dat ze in eerste instantie op maximale snelheid rijden als ze geen licht detecteren en dat ze langzaam afremmen naar mate er meer licht op hun sensoren valt. In dit gerafiekje is de relatie tussen de sensoren en motoren te zien.
Wederom ziet het grafiekje van het gedrag in de praktijk er weer net iets anders uit dan in theorie. Er is ook zoals je kunt zien weer een threshold ingesteld.
Uitvoering: In feite konden in dit geval fysiek dezelfde robots als bij vehicle 2 gebruikt worden. Het enige wat veranderd moest worden was de software zodat de motoren niet geëxciteerd maar geinhibeerd werden. Hier kun je de broncode voor Vehicle 3a vinden in NQC Hier kun je de broncode voor Vehicle 3b vinden in NQC Cyclops sunbather: Deze robot is een test van mijn eigen theorie dat
het zoeken van een lichtbron ook met maar een lichtsensor moet kunnen. En een idee om een robot op de tast te laten rond zoeken.
Hier kun je de broncode voor de Cyclops sunbather vinden in NQC |