Door Willem de Moor

Redacteur

.Build: een robot voor Air Hockey

Spelen tegen een ai

02-01-2020 • 06:00

36

Singlepage-opmaak

Tot slot: modificaties

Je kunt ervoor kiezen een webcam aan de camerastang te hangen en deze met een pc of laptop te verbinden. JJRobots heeft het specifiek over een PS3-camera, maar we hadden ook succes met een gewone Logitech-webcam. Ook in dit geval moet je een directe wifiverbinding met het Brain-shield maken. Via een config-bestandje kun je de gevoeligheid voor kleuren aanpassen, evenals andere parameters zoals puckafmetingen en tafeldimensies.

Air hockey robot - eindresultaatAir hockey robot - eindresultaat

Je kunt ook met de Arduino-code aan de gang. Alle broncode staat op Github, dus je kunt alle benodigde data downloaden en aanpassen voordat je ze naar de Atmega-chip flasht. Zo kun je bijvoorbeeld spelen met de acceleratie of de snelheden, mits je steppers en controllers dat aankunnen. Standaard worden zoals gezegd Pololu A4988-drivers meegeleverd, maar die kun je natuurlijk eenvoudig upgraden naar andere stepper drivers, bijvoorbeeld de in de 3d-printerwereld populaire TMC-stepperdrivers 2208 of 2209.

Boodschappenlijstje

Air Hockey Robot 126 euro
Meerprijs 3d-prints 43 euro
Air Hockey-tafel 70 euro
Totaal 239 euro

Ten slotte kun je, als je je airhockeytafel dan wel robot zat bent, dezelfde hardware hergebruiken voor andere projecten. Vrijwel alle 'robots' van JJRobots maken namelijk gebruik van dezelfde bouwstenen. De Arduino met Brain-shield zorgt voor de aansturing en communicatie met bijvoorbeeld je smartphone, en de steppers worden voor actuatie gebruikt. Zo heeft JJRobots projecten om een cameraslider, tekenrobot of eierschilderrobot te maken. De benodigde software is steeds vrij verkrijgbaar en de bijkomende onderdelen kun je zelf printen op je 3d-printer of bestellen als je geen printer hebt. Zo kun je dezelfde componenten hergebruiken voor verschillende builds.

Lees meer

Reacties (36)

36
36
30
1
0
6
Wijzig sortering
Leuk artikel, jammer dat ik dit terug moest lezen:
Het andere puntje is de tandriem. Die moet je langs alle poelies voeren en dat bleek nogal tegenintuïtief te werken. We gingen er in gedachten namelijk van uit dat de ene stepper voor de beweging langs de x-as zorgt en de andere voor die langs de y-as, net als bij een printer.
Niet alle printers en daarop lijkende machines zijn machines met een Cartesisch kinematisch ontwerp! Het kinematisch ontwerp van deze build is een HBot, familie van de CoreXY die je nu steeds meer in printers terugziet.
Het zou wel fijn zijn als Tweakers toch ook weet waar ze over schrijft.

[Reactie gewijzigd door ocf81 op 23 juli 2024 17:23]

Er staat toch ook niet "zoals bij ALLE printers"?

https://www.fargo3dprinti...tesian-delta-3d-printers/

"The two most common desktop 3D printer styles are Cartesian and Delta."

Nou verrek! Het lijkt wel alsof ze weten waar ze het over hebben!
Ik haal het stuk van tweakers aan waarin impliciet duidelijk wordt gemaakt dat ze een verwachting hebben dat dit ontwerp een cartesisch kinematisch schema volgt en geef aan dat dit toch wel een beetje amateuristisch is. Jij begint lukraak over andere printers te praten waarbij je een verouderd stuk aanhaalt van een onbeduidend bedrijf in 3d printing die dan vooral hun eigen gegevens aanhalen. Ik stel voor dat je eens nadenkt voordat je op "Reageer" drukt, want deze reactie slaat echt nergens op.

CoreXY heeft nu ook de aandacht van partijen zoals Prusa. HBot is voor de serieuzere partijen al een tijd een bekende oplossing. Het delta kinematisch ontwerp is ondertussen alweer uit de belangstelling aan het raken.

[Reactie gewijzigd door ocf81 op 23 juli 2024 17:23]

Ik Google gewoon op meest voorkomende technieken nadat jij het een en ander erbij haalt en dat is een resultaat uit de top 3. Zal ik trouwens zelf even bepalen of ik wel of niet reageer?

"Het zou wel fijn zijn als Tweakers toch ook weet waar ze over schrijft." is niet zeggen dat ze amateuristisch bezig zijn, maar is ze afkraken. Je bent gewoon een beetje interessant aan het lopen doen want jouw eigen reactie gaat het hele punt voorbij van het artikel...

[Reactie gewijzigd door Kusanagi op 23 juli 2024 17:23]

Ik voeg dit linkje even toe aan je verhaal om dat ik het heel interessant vond vanavond om dit te leren en denk dat het er bij hoort voor mede leken zoals ik.

http://corexy.com/theory.html
Anoniem: 120539 2 januari 2020 10:20
De tafel gaan we niet maken, want zo'n tafel, met een luchtkamer eronder en alle kleine gaatjes waar gelijkmatig lucht door wordt gelaten, zit redelijk complex in elkaar.
Huh?
Het is een tafel met veel gaatjes en een flinke blower.
Ik heb er wel eens één mogen slopen, en het enige complexe is de muntmachine.
Maar de tafel zélf is niet het doel van dit project; het doel is het automatiseren van een tegenstander. Tweakers gaat je ook niet vertellen hoe je je kamer moet opruimen om ruimte te maken om zo'n installatie neer te zetten, of hoe je de software op een telefoon zet, of wat voor statief je nodig hebt.
Dat snap ik, en dat is ook een juiste motivatie; die tafel geloof ik zelf ook wel.
Nu wordt er echter gesteld dat het maken van de tafel nogal complex is, en het daarom niet wordt gedaan.
Die tafel ga je niet zelf maken voor 70 euro. Het cnc frezen van die luchtgaatjes en de tijd dat je er mee bezig bent, maken de kosten al veel hoger. Mij lijkt me het bouwen van de air hocky robot al complex genoeg. Leuk om te zien.
Sorry, maar zoiets cnc frezen is natuurlijk ook overkill. Wanneer eea goed uitgetekend is, kun je de gaatjes prima boren.
Hier voor de liefhebber van zelf klussen een filmpje hoe je zo'n tafel maakt: https://www.youtube.com/watch?v=-ctiPMDmpoI
Ik ben wel benieuwd naar "video processing" code, dit is een app maar is hiervan de source ook beschikbaar?
In een korte check kon ik zo niets vinden.

Daarnaast is het interessant dat het WiFi gebruikt, waarschijnlijk directe AP mode/hotspot? Maar klaarblijkelijk is het snel genoeg?

Vermoedelijk kun je het gehele verhaal in een Raspberry Pi ook doen, steeds je telefoon in de houder zetten is best een drempel en je kan de tafel dan niet echt zeg, "in een kantine" neerzetten. Al weet ik niet of het aansturen van de stappenmotoren heel succesvol gaat worden, in het ergste geval kun je dan alsnog een Arduino gebruiken via een seriele of USB verbinding. (Dat zou minder vertraging moeten geven dan WiFi)

Ook interessant dat zelfs de pulleys, glijders en steunen 3D geprint zijn. Ik vraag mij af wat de maximale kracht is die ze aan kunnen en of metaal/aluminium niet beter glijd of langer mee gaat.

Maar het lijkt me een tof project voor zeg, eerstejaars (technische) informatica en daarnaast leuk om in de schoolkantine te zetten. En dan kun je andere groepen de robot laten optimaliseren of hun eigen code of aansturing voor laten schrijven.

Ik denk dat het een goede manier is om mensen richting de robotica/embedded systems te enthousiasmeren is, m.i. een stuk toffer dan een website maken.

[Reactie gewijzigd door Accretion op 23 juli 2024 17:23]

Dit is niet de Android app, maar code voor een PS3 camera.
https://github.com/jjrobo...ource/AHR_EVO/AHR2_34.cpp

In het artikel wordt AI genoemd, maar het is gewoon huis- tuin- en keukencode.
Inderdaad! Toffe toevoeging op het artikel!

Ze maken wel gebruik van "Windows.h" en "WinSock.h", maar ik denk dat het inderdaad relatief makkelijk naar Raspberry Pi gezet kan worden, met Pi Camera.
(Dat zou an sich echt een tof project zijn)

Ze gebruiken ook OpenCV zie ik, ik ben benieuwd hoe snel de detectie tijd is van de disc. M.i. is het sneller om te zoeken naar bepaalde kleuren dan "contouren".

Het is ook interessant hoeveel "game logica" ze d'r in hebben moeten bouwen, waarschijnlijk is dat de bedoeling met de verwijzing naar AI.
Ze hebben een gedeelte "lagg compensatie" om de tijd tussen het beeld van de camera en daadwerkelijke situatie te compenseren.
En een gedeelte dat de beweging van de disc/puck te simuleren/extrapoleren om de verwachtte positie/weerkaatsingen te voorspellen.

Grouping/flocking of pathfinding van NPC's wordt in games vaak ook AI genoemd. Maar het is een discussie of dat daadwerkelijk "intelligentie" inhoud.
Wellicht kan je ook een versie van de software maken welke in een virtuele omgeving getraind is met reinforcement learning en dan vervolgens met deze echte omgeving aan de slag gaat.

Het zou ook leuk zijn om zo’n tafel te hebben waarbij twee getrainde agents tegen elkaar spelen.
Of juist een niet-AI-robot tegen een wel-AI-robot, dan kijken hoe het uitpakt.

In theorie wordt de AI steeds beter en op een gegeven moment beter dan de 'geprogrammeerde' robot. Het is dan interessant om de geprogrammeerde robot weer te verbeteren.

Ik ben benieuwd waar het eindigt dan.
Leuk gedaan,

Er mist wel nog wat power van de robotarm, het kan nu alleen nog maar verdedigen.
In theorie kun je de code aanpassen, zodat de robot naar de puck toe beweegt.

Qua power, zo lang het detecteren van de objecten snel genoeg gaat en scherp is afgesteld (met de code voor het bepalen van de verwachtte locatie), zou je inderdaad snellere motoren kunnen gebruiken.
Cool :)

Alleen het enige dat ik een beetje mis is, hoe speelt hij? Is het werkelijk een beetje een uitdaging of als je eenmaal een trucje gevonden hebt win je iedere keer van de robot?

Het risico van tegen een computer spelen is dat een computer te constant kan spelen. Daardoor is een computer vaak of onverslaanbaar, of als je eenmaal een manier vindt om langs zijn verdediging te komen werkt dat bijna iedere keer. Is dat hier ook zo? Of is het werkelijk leuk en uitdagend om tegen te (blijven) spelen?

Kan natuurlijk prima dat de lol vooral in het bouwen zit en het zien dat je een computer Air hockey kunt laten spelen, maar ik denk dat het wel goed is voor potentiële bouwers om te weten of het alleen om de bouw gaat of ook om de Air hockey die je daarna kunt spelen.
In het korte fragmentje waar je het in actie ziet moet je jezelf inderdaad wat inhouden.

Mocht er een serieuze versie op een grote tafel gemonteerd worden dan acht ik de kans op winnen wat kleiner :P
Of je zult er een gebroken vinger aan over houden ;)
Hoewel dit best leuk is, zet ik wat twijfels bij de kosten-baten. zelfs als Tweaker ding.
Het is niet alsof je het allemaal zelf maakt: de robot kit koop te kant-en-klaar, de modellen staan op thingiverse en software is er al op GitHub. En de air hockey tafel is ook off-the-shelf. Dan blijkt het maar een bouwpakket.
En wat je aan het eind hebt is een apparaat dat reageert op je acties, maar niet echt serieuze tegenstand biedt. Ik vermoed dat je er snel op uitgekeken bent.

Ik vind 240 euro (excl 3D printer) nogal veel voor een gimmick.
Had hetzelfde gevoel. Als je het zelf zou bouwen dan heb je in elk geval nog de lol van het uitzoeken en ontwerpen. Nu is het haast plug and play.

Overigens is dit ook een interessante opmerking:
De tafel gaan we niet maken, want zo'n tafel, met een luchtkamer eronder en alle kleine gaatjes waar gelijkmatig lucht door wordt gelaten, zit redelijk complex in elkaar.
Het internet staat vol met voorbeelden van hoe zo'n tafel zelf te bouwen is. Veel meer dan een bak met gaatjes en iets dat hard kan blazen is het niet.
Gaaf! Air hockey is het enige tafel spel wat ik speel of wil spelen.
OT: in principe is dit dus gewoon een bouwpakket, toch? (En copy-paste voor broncode)
In hoeverre kun je dit zonder veel kennis zelf doen?
Ben wel onder de indruk. Telefoon ziet iets --> berekend baan-->. Geeft door over wifi-->. Tafel aansturen --> om de puck te stoppen. En dat in een split-second. Mooi techniek....
Heel mooi, dat er maar veel betaalbare oplossingen komen voor dergelijke spelen. Ik wacht nog steeds op een betaalbare oplossing voor een kicker tafel :-)
mischien ook een link geven naar de gebruikte hockey tafel {mbt maten}

Op dit item kan niet meer gereageerd worden.