Categorieën
Bètacanon

Bètacanon (42) Robots

Een robot bestaat uit sensoren die informatie verzamelen, algoritmes die de informatie verwerken, en motoren die daarnaar handelen. Dat geldt voor de volautomatische armen die auto’s in elkaar zetten, voor machines die chips maken, maar ook voor autonome robots zoals onbemande spionagevliegtuigjes, marsrobots, of de veelverkochte stofzuigrobots.

Toch denken wij bij het woord robot niet direct aan deze machines, maar eerder aan de mensachtige Terminator. Logisch, want het woord ‘robot’ komt van de Tsjechische toneelschrijver Karel Capec, die het afleidde van het Tsjechische woord ‘robota’ (slavenwerk). In zijn toneelstuk ‘Rossum’s Universal Robots’ uit 1920 zagen de robots eruit als mensen. Net als de Terminator namen ze de wereld over. Die dreiging wordt vaak met robots verbonden. Mensen zien vaak meer in een robot dan er werkelijk achter zit. Sensoren worden zintuigen, algoritmen worden hersenen, motortjes worden spieren. Neem nou de lichtschuwe ‘Braitenberg Vehicles’, simpele karretjes met twee aangedreven wielen en een zwenkwiel. Aan de voorkant zit een lichtgevoelige sensor naar links gericht, gekoppeld aan de linkermotor, en rechts zit een sensor gekoppeld aan het rechterwiel. Hoe meer licht, hoe harder de motor draait. Als je tien van die karretjes op willekeurige plaatsen in een donkere kamer zet, en plotseling het licht aandoet, ‘vluchten’ ze allemaal voor het licht. Mensen zien de emotie ‘angst’, maar het zijn slechts twee simpele sensor-actuator-verbindingen.

Ook mensachtige robots kunnen we zien als ‘gewoon’ een verzameling van sensoren, algoritmes en motoren. Een mooi voorbeeld zijn de robots die meedoen met de internationale robotvoetbalwedstrijd (RoboCup). Het voetbalspel is voor robots een tussenstap van toepassingen op de gestructureerde fabrieksvloer naar de wanorde van de echte wereld.

Ten eerste moeten deze robots de bal kunnen ‘zien’. Hiervoor volstaat een webcam, die zo’n 25 keer per seconde een beeld geeft van bijvoorbeeld 480 bij 640 pixels, eigenlijk maar een matige resolutie. Maar het kan niet veel scherper, want dan kan de robot de informatie niet meer verwerken. Om de randen van voorwerpen te detecteren, moet de kleur en helderheid van elk pixel vergeleken worden met de omringende pixels. Een groot verschil levert een waarde 1, anders 0.

In dit zwart-wit plaatje moet de robot vervolgens lijnen en cirkels herkennen. Hiervoor wordt een speciaal algoritme gebruikt (de ‘Hough Transform’) die op elke plek in het beeld kijkt of er een cirkel te vinden is. Deze bewerking moet voor elke pixel gedaan worden, en ook nog eens voor verschillende cirkelmaten die hij wil detecteren want de baldiameter hangt af van de afstand. Deze bewerkingen kosten vreselijk veel rekentijd, en zijn op dit moment de beperkende factor voor robot vision. Onderzoekers werken hard aan elektronica die enigszins te vergelijken is met het menselijk oog, om dit te verbeteren.

De voetbalrobot moet uit de bewerkte beelden zowel achterhalen waar hij zelf staat als waar alle andere objecten (bal, tegenstanders, doel) staan. Als dat gelukt is, moet de robot de kortste route om de tegenstanders heen naar de bal bepalen. Dit kan bijvoorbeeld met een ‘breath-first search’ algoritme: in een plattegrond van het speelveld worden korte lijntjes vanuit de robot in alle richtingen getrokken. Vervolgens weer nieuwe lijntjes vanuit ieder eindpunt van die vorige lijntjes, enzovoort. Dat wordt net zo vaak herhaald totdat een van de lijntjes door de bal heen gaat, en niet door een tegenstander. De computer in de robot heeft verschillende van algoritmes die dit soort bewerkingen uitvoeren. Samen vormen zij de kunstmatige intelligentie van de robot.

Dan komt het volgende probleem: naar de bal lopen zonder te vallen. Hier wordt veel onderzoek naar gedaan, ook om meer van de menselijke loopbeweging te begrijpen. De simpelste manier (voor een robot) is door het zwaartepunt constant boven de voet te houden. Een snellere en efficiëntere manier is het dynamische lopen zoals de mens dat doet: je laat je voorover vallen maar je zorgt intussen dat je zwaaibeen op precies de juiste plek terechtkomt voor de volgende stap.

De robot moet deze bewegingen voor ieder gewricht zo goed mogelijk uitvoeren. Daarvoor zijn weer de bekende drie elementen nodig. Een sensor meet de hoek van het gewricht. Een regeling (algoritme) berekent het verschil met de gewenste hoek, en bepaalt de motorspanning. Bij een eenvoudige regeling geldt: hoe groter het verschil, hoe groter de spanning. De motorkracht zorgt daardoor dat de gewenste hoek wordt bereikt.

Tot zover is het robotgedrag dus volkomen voorspelbaar. Maar er verschijnen steeds vaker wetenschappelijke berichten over zelflerende robots met tot de verbeelding sprekende termen als ‘genetisch algoritme’ of ‘neuraal netwerk’. Beangstigend? Ook dat valt mee, onze voetbalrobot zou bijvoorbeeld zelf kunnen leren welke loopsnelheid het minste energie kost: hij meet het energieverbruik en de afgelegde weg, verandert zijn snelheid een beetje, kijkt of het resultaat beter is, en zo maar door. ‘Leren’ is dus eigenlijk optimaliseren. Dat komt enigszins in de buurt van het aanleren van een Pavlovreactie (zie bètacanon aflevering Pavlov), maar heeft niets te maken met intelligent menselijk gedrag. Zet je stofzuigrobot dus gerust aan het werk: hij zal zich niet tegen zijn meester keren.

Meer informatie over de voetbalrobots is te vinden op http://www.dutchrobotics.net

Tekst: Martijn Wisse (1976)

Relevante boeken
Worden in de loop van 2020-2021 toegevoegd (3 september 2020)

Homepage Bètacanon
(zondag 21 oktober 2007)

Door Hans van Duijnhoven

Bibliothecaris sinds september 1979. Werkzaam in de regio Noord Oost Brabant.

Geef een reactie

Ontdek meer van Lezer van Stavast

Abonneer je nu om meer te lezen en toegang te krijgen tot het volledige archief.

Lees verder