De Messi van het robotvoetbal is een driewieler met een visoog
De voetbalrobots van de TU Eindhoven wisten op het mondiale RoboCup-toernooi al vier keer de wereldtitel te pakken. De rappe zwarte apparaten spelen zo vanzelfsprekend het welbekende spel met de bal, dat je bijna zou vergeten dat je naar een team van machines zit te kijken. Toch is het niet zo vanzelfsprekend dat deze machines uit eigen beweging een 1-2-tje doen, de plaats van een geblesseerde keeper innemen, of elke penalty scoren. Onder de motorkap zit een enorme bulk kennis en technologie die continu wordt verbeterd: de hardware, de software, en het teamwerk.
Introductie
Aan de TU Eindhoven werkt een team van onderzoekers en studenten aan de ontwikkeling van voetbalrobots. Elk jaar spelen ze op het wereldkampioenschap robotvoetbal, de RoboCup, waaraan teams deelnemen van verschillende universiteiten, onderzoeksinstituten en bedrijven. De RoboCup is hèt wereldwijde toernooi voor autonome (zelfsturende) robots. Daar wordt bepaald wie het beste team van voetbalrobots heeft.
Omdat de robots nog niet zo goed zijn als de Messi’s en Ronaldo’s van deze wereld, worden er aangepaste FIFA-regels gebruikt: een kleiner veld, een kleiner doel, en minder spelers per team. In 2050 moeten deze robots de wereldkampioen mensenvoetbal verslaan in hun eigen spelletje. Er is wel een cruciaal verschil met mensenvoetbal: in het mensenvoetbal houden de coaches hun strategie geheim. Daarentegen na de RoboCup worden alle robotontwerpen, alle computercode, en alle strategieën vrij gedeeld en besproken. Zo kunnen de teams van elkaar leren en worden ze samen sneller beter, en gaat de technologie dus sneller vooruit. De robots moeten een bal kunnen herkennen, dribbelen, spelregels doorgronden, samenwerken en uiteindelijk zelf op 2 benen leren staan.
Wat een nutteloos idee, voetballende robots
Wat heeft de mensheid nu aan voetballende robots? Eigenlijk is dat niet de juiste vraag. Een betere vraag is: wat hebben wetenschappers aan voetballende robots? Door heel goed te worden in voetbal — een spel dat mensen heel goed beheersen, maar dieren en machines helemaal niet — hebben de wetenschappers een praktisch doel. Natuurlijk maken de teams het elkaar elk jaar ook steeds moeilijker, want iedereen wil die begeerde RoboCup winnen. Ook worden elk jaar de regels een klein beetje bijgesteld, zodat er nieuwe uitdagingen voor de robots ontstaan: het doel wordt wat groter, of er mag niet meer zo lang achteruit gedribbeld worden. Allemaal maatregelen die de lat omhoog leggen, en ervoor zorgen dat de ontwikkeling van robotica wordt aangemoedigd.
De RoboCup is als het ware de Formule 1 van de autonome Robotica. Net zoals de innovaties uit de Formule 1 leiden tot verbeteringen aan personenauto's, zo worden innovaties van de voetbalrobots gebruikt om robots voor zorg en reddingswerkzaamheden te verbeteren.
Hoe ziet zo'n voetbalrobot er nu uit? Uit welke onderdelen bestaat zo'n robot en waarom? Hoe weet hij waar zijn teammaatjes mee bezig zijn? Hebben voetbalrobots nachtmerries vanwege penalty's? Hier bespreken we de meest interessante eigenschappen van robots van het Eindhovens voetbalrobotteam, Tech United.
Inhoudsopgave
Het robotlichaam
Omdat het gemakkelijk is om een robot zo groot te maken, dat geen enkele bal meer in het doel kan, zijn er regels opgesteld. De onderkant van een robot moet bijvoorbeeld maximaal 52x52 cm zijn en minimaal 30x30 cm, en de robot mag maximaal hij 80 cm hoog zijn. Ook moet hij zwart zijn met een felgekleurde markering, zodat hij goed te herkennen is voor de scheidsrechter en andere robots. Verder zijn er nog wat eisen die met communicatie te maken hebben (robots praten met elkaar en met de scheidsrechter via WiFi), sensoren (alles mag, zo lang het maar op de robot zelf past), en hardware voor balbeheersing (alles mag, zolang ze er maar geen andere robots mee kapot maken). Deze beperkingen aan het ontwerp van een voetbalrobot laten veel ruimte voor ontwerpvrijheid en creativiteit. Dat is precies wat de organisatie van de RoboCup wil: de teams aanmoedigen om zo creatief mogelijk te zijn.
Met één oog kun je geen diepte zien
Mensen hebben twee ogen en daardoor kunnen ze diepte zien. De OmniVision-camera werkt als een enkel oog, dus diepte zien is ontzettend ingewikkeld. Ook kan de OmniVision niet zien wat er boven de 80 cm gebeurt, doordat de spiegel naar beneden is gericht. Om dat probleem op te lossen, heeft de robot een tweede oog dat naar voren is gericht: een Microsoft Kinect 2. Die 2 megapixel camera heeft Microsoft ooit ontwikkeld voor de Xbox spelcomputer voor het herkennen van, bijvoorbeeld, dansende spelers. De Eindhovense robots zien met deze camera diepte, en de bal als die boven de 80 centimeter gaat — denk aan stuiterende ballen of hoge lobs.
Dribbelen met de bal
Als de robot eenmaal de bal heeft, is het niet altijd handig om de bal direct weer weg te schieten. Om te dribbelen, hebben de robots een systeem van draaiende wieltjes waarmee ze de bal kunnen beheersen. Omdat de robot de bal niet teveel mag vastpakken, staat er in het RoboCup-reglement dat de bal voor minimaal tweederde beschikbaar moet blijven voor de tegenstander om de bal af te pakken. Ook mag de robot maar maximaal 1 meter met de bal achteruit dribbelen. Door achteruit te rijden zou het anders immers ondoenlijk worden voor de tegenstander om de bal nog af te pakken. Ook zou de keeper van de tegenstander de bal compleet uit het oog kunnen verliezen, omdat de bal achter de aanvallende robot verstopt zou zitten.
Wielen op je wielen
Om achter de bal aan te ‘rennen’, moeten de robots niet alleen snel kunnen rijden, maar ook snel versnellen. Nu speelt Tech United met robots met 3 wielen, die een maximale versnelling hebben van 1,7 m/s2 hebben. Dat is half zo snel optrekken als Usain Bolt op de 100 meter. Het team experimenteert met robots op 8 wielen, die tot wel 2,5 m/s2 kan. Dat is al 80% van Bolt's versnelling. Beide platformen, zowel de driewieler als de achtwieler, hebben ongeveer een topsnelheid van een Nederlandse fietser. De hoeveelheid power van de oudere robot is een kwart paardenkracht, terwijl de nieuwere ruim 2,5 pk tot zijn beschikking heeft.
Bewegen is niet alleen versnellen, maar ook snel bochten kunnen maken. Omdat de nieuwere robot acht wielen tot zijn beschikking heeft, kan hij elke kant op rijden, maar dan moeten alle wielen wel perfect uitgelijnd staan en moet elke beweging goed gecoördineerd worden. De oudere robot heeft een eenvoudiger maar vernuftig systeem: omni-wheels. Dat zijn wielen met haaks op de rijrichting extra, kleine wieltjes in de band. Als een omni-wheel niet aangedreven wordt (omdat de robot haaks op de rijrichting van het omni-wheel beweegt), kunnen de kleinere wieltjes passief meebewegen en hoeft een omniwheel-wiel dus niet zo precies aangestuurd te worden als bij de nieuwere achtwieler. Als een omni-wheel wel gebruikt wordt, geven de kleinere wieltjes voldoende grip om toch vooruit te komen.
Het robotbrein
De voetbalrobots die meedoen aan de RoboCup worden niet door mensen bestuurd: ze denken en handelen zelfstandig. Dat betekent dat alle onderdelen die hierboven beschreven staan, perfect in harmonie aangestuurd moeten worden. Elke robot heeft dezelfde software aan boord die uit dezelfde componenten bestaan. Toch maakt niet elke robot dezelfde beweging. Hoe beslist een robot hoe en wanneer hij moet bewegen? Waar komt zijn strategie vandaan? Hoe maakt hij een model van de wereld?
Wat te doen met al die beeldinformatie?
De sensoren van de robot verzamelen allerlei informatie over de buitenwereld. Met de OmniVision-camera kan hij 6 meter om zich heen kijken en met de Kinect kan hij voor zich kijken, met diepte. Maar dan? Wat gebeurt er softwarematig met die informatie?
Het vervormde visoog-beeld dat de OmniVision-camera produceert, is vervormd door de gebogen spiegel waardoor de robot kijkt. De spiegel heeft een kromming van een hyperbool, dus om net zoals een mens te zien, zou de robot het plaatje moeten omrekenen. Toch doet hij dat niet: het blijkt gemakkelijker te zijn om zijn kennis van de wereld (het veld bestaat uit rechte witte lijnen) aan te passen aan wat hij ziet (het veld bestaat uit gekromde lijnen). Het gedeelte van de software dat beeldanalyse doet, zoekt dus wel naar witte lijnen op de groene vloer, maar verwacht gewoon dat die lijnen gekromd zijn.
Hoe ziet een robot nou het verschil tussen de veldlijnen en de vloer? Hij kijkt naar overgangen in kleur: van groen, naar wit, naar groen. Voor andere objecten op het veld kijkt hij ook naar kleurovergangen. Dat gedeelte van de software heet de ‘Blob Tracker’. Een blob is volgens de robot vermoedelijk wat belangrijks en elke blob krijgt een plek op een denkbeeldige kaart. Vervolgens gaan er twee nieuwe algoritmes aan de slag: de eerste zoekt de bal, en de tweede bekijkt welke objecten waar op het veld staan. Een object kan een teamgenoot, of een voetbalrobot van de tegenstander zijn, of een mens. Het doel ‘ziet’ hij gek genoeg niet. Doordat de robot weet waar de lijnen liggen, en omdat hij weet hoe hoog het doel moet zijn, kan hij wel bedenken waar de bal precies moet landen om te scoren.
Hoe ziet het wereldmodel van een robot eruit?
Elke voetbalrobot maakt zo een wereldbeeld van hoe zijn omgeving eruit ziet. Dat beeld deelt hij met al zijn teamleden, en de informatie die hij terug krijgt van zijn teamleden gebruikt hij om een World Model te maken. Dat is een kaart van het voetbalveld met daarop de positie van de robot zelf, de positie en nummers van alle robots die aan het spel meedoen en de bal.
Er is nu nog wel een probleem: de robots zien het verschil niet tussen hun eigen helft en dat van de tegenstander. Het veld is immers symmetrisch. Daarvoor heeft de robot een kompas aan boord. Voor het begin van elke wedstrijd wordt het kompas uitgelezen en een mens vertelt welk van de twee doelen het eigen doel is.
Op een computer die niet meedoet aan het voetbalspel draait een programma waarmee de menselijke deelnemers kunnen zien of al die World Models van alle robots nog wel ergens op slaan. Met dat programma kan ook de huidige stand van het spel gevolgd worden. Maar nog veel belangrijker: alle data kan later gebruikt worden om de wedstrijd later nog eens rustig te analyseren vanuit het perspectief van de robots.
Hoe bepaalt een robot zijn strategie?
Als alle robots van elkaar's wereldbeeld op de hoogte zijn, treedt ‘Defcon’ in werking. Dat gedeelte van de robotsoftware neemt alle objectieve waarnemingen in beschouwing en begint ze te interpreteren. Ligt de bal aan onze zijde of die van de vijand? Is de bal in handen van een specifieke robot en is die robot een teamgenoot of niet? Welke robots staan op onze helft en welke op die van de tegenstander? Elke ‘status’ gaat later worden gebruikt om een strategie te kiezen. Anders gezegd: met de informatie uit Defcon wordt besloten of er moet worden aangevallen of verdedigd.
Het daadwerkelijke kiezen van de strategie gebeurt door Role Assigner. Dat deel van de software kiest een rol voor de robot. Zo'n rol wordt democratisch bepaald door het volledige team. Hieronder is meer te lezen over hoe die rollen worden verdeeld. Een rol kan bijvoorbeeld zijn: aanvaller, verdediger of keeper.
Als er eenmaal een rol is vastgesteld, zoekt de robot in een register op, uit welke taken een rol bestaat. Die taken bestaan uit het verdedigen van een vijandige robot, of het passen van een bal naar de voorste helft van het veld. Bij elke taak hoort vervolgens weer een serie acties. Die acties zijn heel eenvoudig: blijf stilstaan, ga naar een bepaalde plek, zoek de bal, mik op een plek.
Al met al moet de robot best wat dingen bedenken voordat hij van A naar B komt. Die gedachtes gaan van heel abstract (‘wat is mijn rol in het spel’) naar heel praktisch (‘schiet bal naar plek X’). Dit zijn zogenaamde ‘high level’ software-stappen, die leiden tot ‘low-level’ software-stappen. Uiteindelijk eindigt zo'n cascade in het aansturen van de hardware, de controllers en actuatoren. Zo wordt bijvoorbeeld de condensator voor de elektromagneet ontladen, die bepaalt exact wanneer en hoe hard de bal een schop krijgt. Zo worden ook de motoren aangestuurd die de robot verplaatsen van A naar B.
Het robotteam
De Amerikanen zeggen: There is no ‘i’ in ‘team’ (er zit geen ‘ik’ in ‘team’). Dat is ook zo voor een team van voetbalrobots: een verzameling van robots die niet samenwerkt, zal nooit winnen, dus moeten ze de krachten bundelen. Maar hoe dan?
This, my friends is The Playbook
Hoe die spelsituatie invloed heeft op de speelstrategie, wordt bepaald door een stuk software dat heet: Skills, Tactics and Plays (STP) architecture. Die maakt het ook mogelijk om 'lange termijn'-tactieken te plannen, zodat de robots niet na elke pass de strategie overhoop hoeven te gooien.
Elke robot heeft een set skills, maar die zijn niet hetzelfde als menselijke eigenschappen. De robot-skills zijn de meest eenvoudige acties die een robot kan uitvoeren, zoals: veilig naar de andere kant van het veld navigeren zonder andere robots te beschadigen, de bal schoppen, en de bal onderscheppen van de tegenstander.
Vervolgens heeft een robot verschillende tactics in huis, die weer bestaan uit skills. Een voorbeeld van een simpele tactic van AttackerMain is bijvoorbeeld: de bal in het doel van de tegenstander krijgen. Deze tactic kan verschillende skills gebruiken: navigeren over het veld, schieten, en passen. Om een tactic uit te voeren, moet de robot van zichzelf weten welke skills hij heeft, want een AttackerMain hoeft niet te zoeken naar een plek op het veld om de bal te ontvangen waar al een tegenstander staat. Tactics zijn dus een lijstje van skills die de robot uitvoert.
Alle speelstrategiën, ook wel plays genoemd, staan in een soort receptenboek dat elke robot in zijn geheugen draagt: het playbook. Een play is een plan waarin alle rollen staan die door de robots vervuld moeten worden en de tactics die daarbij horen. Zo'n play kan bijvoorbeeld zijn: onderschep de bal, rijd in een driehoeksformatie naar de helft van de tegenstander, en speel hem over naar een aanvaller van het eigen team. Bij elke play hoort ook een verzameling voorwaarden waaraan voldaan moet worden voordat die play in overweging genomen kan worden. De play om de bal te onderscheppen bijvoorbeeld hoeft niet overwogen te worden, als de bal al in bezit is. Een play kan ook afgebroken worden omdat er niet meer aan cruciale voorwaarden voldaan wordt, bijvoorbeeld omdat de tegenstander de bal heeft afgepakt terwijl er juist een offensieve play werd uitgevoerd. Zo kunnen de menselijke 'strategie-makers' per tegenstander een ander playbook samenstellen: aanvallende tegenstanders hebben andere plays nodig dan tegenstanders die veel bezig zijn met verdedigen. Het playbook is eigenlijk de set instructies waarmee de menselijke coach de voetbalrobots het veld op stuurt.
Ook robots hebben democratie nodig
Het maken van een plan is voor robots een enorme wiskundesom. De robots kijken welke spelstrategiën in de playbook staan en strepen alle plays weg die niet relevant zijn. Van de overgebleven plays, kiezen de robots een willekeurig spel, zodat de tegenstanders niet teveel kunnen voorspellen wat er gaat gebeuren.
Het kiezen van een play doen alle robots samen. Een robot heeft een bepaald beeld van de wereld: waar is hijzelf, waar is de bal, waar staan zijn maatjes, waar staat de tegenstander. Op basis daarvan kiest hij een optimale play. Al zijn maatjes bepalen op diezelfde manier een play, maar misschien zien zij de wereld net iets anders. Het kan zijn dat verschillende teamleden daardoor een verschillende play kiezen. In dat geval, wordt er gestemd: het meest gekozen play wordt uitgevoerd. Stel: een van de robots is de weg kwijt, ziet het spel verkeerd of is simpelweg kapot, dan spelen de robots dankzij de democratische werkwijze toch een goed spel.
Vervolgens moeten er rollen toegewezen worden: welke robots gaan aanvallen en welke gaan verdedigen? Voor elke robot worden de ‘kosten’ uitgerekend, waarbij de ‘prijs’ die betaald moet worden, de afstand is die de robot moet overbruggen voor de invulling van mogelijke rollen. (Een alternatieve strategie kan ook zijn om de kosten te laten afhangen van de tijd die het duurt voordat een actie uitgevoerd kan worden, maar bij constante snelheid, komen tijd en afstand op hetzelfde neer.) Het team probeert daarbij om de kosten voor alle robots bij elkaar, zo laag mogelijk te houden. Daaruit volgt dat het handig is om een robot die al dichtbij de bal staat, te kiezen als AttackerMain, en een robot die vlakbij eigen doel als Defender.
Als de robots een play gekozen hebben en de rollen verdeeld zijn, gaan ze aan de slag. In de gekozen play staat welke tactics bij hun nieuwe rol horen en de robots stoppen pas met het uitvoeren ervan als ze de taak volbracht hebben, of als aan een van de eisen om een bepaalde play te spelen, niet meer voldaan wordt. Ook controleren de robots continu bij elkaar of ze nog wel allemaal bezig zijn met dezelfde play.
De toekomst is robots
Tech United en de andere RoboCup-teams hebben nog tot 2050 om conform het RoboCup-doel een robotploeg op de been te krijgen die de menselijke wereldkampioen kan verslaan. Of de robots dan echt van mensen winnen, is nog onzeker, maar dat is ook niet belangrijk. Robots worden tenslotte niet gemaakt om van mensen te winnen, maar om ze te helpen. En daar gaan Tech United en RoboCup zeker aan bijdragen. Allerlei slimme en knappe staaltjes sijpelen nu al door naar de robotindustrie, zodat we in 2050 allemaal slimme en betaalbare mechanische hulpen hebben in huis, zorg en bedrijf.
Relevante links
- Foto's van toernooien zijn te vinden op Flickr
- Live verslagen van wedstrijden en challenges zijn te volgen op Twitter en Facebook
- Samenvattingen van de @Home challenges en MSL wedstrijden staan op YouTube maar ook op robocup.live
- Meer informatie over de verschillende leagues is te vinden op de RoboCup website
Ben je op zoek naar meer informatie?
Verder met robots?
Hebben de robots je geïnspireerd en wil je de maatschappij verder helpen door bij te dragen aan het onderzoeksgebied robotics? Kijk dan wat TU Eindhoven je te bieden heeft op het gebied van onderwijs en onderzoek.
Gerelateerd nieuws