FMTC-robot bindt strijd aan met menselijke badmintonner
Het FMTC heeft de eerste badmintonrobot ter wereld gemaakt. Net als hightech productiemachines combineert hij snelheid, nauwkeurigheid en intelligentie. De Leuvenaren gaan de robot gebruiken om nieuwe technologieën, zoals energieopslag in supercondensatoren, draadloze controle en zelfdiagnose te demonstreren.
Badminton is de meest dynamische racketsport ter wereld: het pluimpje is al eens gemeten met een snelheid van 421 km per uur; de reactietijd is gemiddeld één seconde in een match op recreatief tempo, maar veel kleiner bij smashes van professionals. Alle actie (in het enkelspel) speelt zich af op een veld van 5,18 bij 13,4 meter. Om hierin mee te kunnen, moet een badmintonrobot binnen een seconde tot vier meter afleggen, van stilstand tot stilstand. Dit vereist een minimale versnelling van 16 m/s2.
Een mobiele robot met een versnelling van 16 m/s2 realiseren, is een echte uitdaging. Onder normale omstandigheden halen robots op wielen niet eens de helft daarvan. De beperkende factor voor de versnelling is de wrijvingscoëfficiënt tussen het wiel en de ondergrond. Alternatief is een stappende robot die, net zoals mensen, snel kan accelereren door zich tegen de grond af te zetten. De praktische realisatie en de controle daarvan is echter niet vanzelfsprekend.
Uiteindelijk hebben we gekozen voor een niet-mobiele robot met een vaste aandrijving. Deze hebben we gebouwd met standaard technologie, zoals lineaire motoren, waardoor we de inspanning en doorlooptijd binnen de perken hebben gehouden. Om dezelfde reden hebben we het aantal vrijheidsgraden van de robot op drie gehouden. Zijn bereik blijft hierdoor wel beperkt tot een vlak van 1,5 meter hoog en 6 meter breed, dat een hoek maakt van 45 graden met het veld. In de hoogste positie bereikt de top van het racket 1,6 meter, ongeveer even hoog als een badmintonnet. Gevolg hiervan is wel dat de robot altijd naar boven terugslaat en dat bijvoorbeeld smashes niet mogelijk zijn.

Slagmechanisme
Grofweg bestaat de badmintonrobot uit drie functionele blokken: lokalisatie, interceptie en aandrijving. De lokalisatie heeft als doel om de ruimtelijke positie van het pluimpje op een specifiek tijdstip te bepalen. Deze functionaliteit hebben we geïmplementeerd met twee digitale grijswaardecamera‘s van Photonfocus, elk met een resolutie 1,4 megapixels en een snelheid van 100 Hz. Door de combinatie van een 1 inch CMos-sensor en een lens met een focale afstand van 8 mm heeft het optische systeem een brede kijkhoek.
Het lokalisatiealgoritme zoekt in elk van de twee beelden naar kleine witte bewegende objecten. De gevonden objecten combineert het met elkaar, waaruit dan een lijst met de 3D-positiecoördinaten van de kandidaat-pluimpjes rolt. De berekening van deze coördinaten vereist een voorafgaande kalibratie van het camerasysteem. De residuele fout is in de ordegrootte van een centimeter. Elke 10 ms wordt de coördinatenlijst doorgestuurd naar het interceptieblok.
Robot | Mens | |
---|---|---|
Topsnelheid racket (rad/s) | 15 | 80 |
Topversnelling racket (rad/s2) | 209 | 3000 |
Topsnelheid pluimpje (m/s) | 17 | 117 |
De beeldverwerking is in handen van een quadcore computer, de VisiePC, waarop het Labview RT-besturingsysteem draait. De verwerkende software hebben we volledig geschreven in Labview. De benodigde rekenkracht is afhankelijk van het aantal bewegende objecten in het beeld. Onder normale omstandigheden is de VisiePC voor 50 procent bezet met een gelijke belasting van de vier kernen.
Het interceptiealgoritme probeert de objecten die het lokalisatiealgoritme vindt op een geldige baan te plaatsen. Een geldige baan is de oplossing van de aerodynamische vergelijkingen die de vlucht van het pluimpje beschrijven. Het algoritme gebuikt Kalman-filters om het echte pluimpje te onderscheiden van andere (vals gedetecteerde) objecten. In de meeste gevallen vinden we met vijf posities al een geldige baan. Wanneer we het traject kennen, kiest het algoritme het punt waar de robot het pluimpje zal onderscheppen. Het bepaalt ook het moment van de slag.
Het interceptiealgoritme hebben we ontwikkeld in Embedded Matlab. De C++-code hebben we hier automatisch uit gegenereerd. Deze draait met een frequentie van 100 Hz op een Pentium 4-computer, de VastePC, met Linux-Xenomai als besturingssysteem en Orocos als middleware.

De aandrijving van de drie assen sturen we aan vanuit het controlealgoritme. Dit leidt de robot naar het interceptiepunt en oriënteert het racket. Hierbij gebruiken we het proximate time-optimal servo control-principe, dat de robot met maximale versnelling in de juiste richting stuurt wanneer de afstand tot het interceptiepunt groot is. Als dat punt nadert, schakelt de controller over naar een lineaire modus. Zodra de robot het interceptiepunt heeft bereikt, stopt hij en wacht hij tot het berekende tijdstip van onderschepping. Op dat moment activeert hij het slagmechanisme.
De code voor het controlealgoritme hebben we automatisch gegenereerd uit een Simulink-model. Het resultaat draait met een frequentie van 1 kHz op de VastePC. Voor de positionering van de robot gebruiken we een lineaire motor van Hiwin, met een vermogen van 5 kW. Twee Maxon-motoren van 250 W elk draaien het racket en verzorgen de slag.
Junior
Hoewel het bouwen van de badmintonrobot voor een golf van enthousiasme heeft gezorgd bij de FMTC-medewerkers, kun je je afvragen wat het nut is van een dergelijke oefening. Vooreerst is de robot een demonstratie van de technieken en competenties die we de voorbije jaren hebben opgebouwd. Voorbeelden zijn de Orocos-middleware, de Ethercat-veldbus, realtime visie en de tijdsoptimale controle. Ook op het gebied van het multidisciplinaire ontwerpproces hebben we een aantal van onze ervaringen toegepast, zoals integratie van Simulink-modellen in code en documentatie van conceptueel ontwerp in SysML.
Belangrijker nog is dat we de badmintonrobot gaan gebruiken als testomgeving voor nieuwe ontwikkelingen. Concreet werken we momenteel aan het uittesten van energieopslag in supercondensatoren, het vervangen van de bedrading tussen het visiesysteem en de controller door een draadloze verbinding en het toevoegen van een zelfdiagnosesysteem aan de lokalisatie. We merken nu al dat onze robot voor hightechmachinebouwers een belangrijke inspiratiebron is om ook aan de slag te gaan met deze technieken.
De robot kan wel nog beter. Bij recreatief spel slaat hij ongeveer negentig procent van de pluimpjes binnen zijn vangbereik terug. Voor niet-geoefende spelers is mikken binnen dat bereik niet vanzelfsprekend. Vele zijn ook niet opgewassen tegen de snelle reactie en het snedige terugspelen van de robot. Ook geoefende badmintonners hebben enthousiast gereageerd op de prestaties, hoewel deze nog tekortschieten om hen te verslaan. De robot zit ongeveer op het niveau van een junior speler. Puur op het gebied van snelheid en versnelling is er nog een hele weg af te leggen om de wereldtop te evenaren (zie Tabel 1).
De belangrijkste beperking is het kleine vangbereik van de robot. We hebben daarom beslist om een volgende generatie badmintonrobot te maken die het volledige terrein kan afdekken. Daarbij denken we aan een volledig mobiele robot. Voor het ontwerp hiervan zal het multidisciplinaire ontwerpproces niet volstaan en zullen we moeten overstappen naar een echte interdisciplinaire benadering. Een mooie uitdaging waarvan het resultaat binnen een jaar te bewonderen zal zijn. Ondertussen oefenen we nog verder tegen onze junior.