Raspberry Pi Blog

Computers en schaken zijn een krachtige combinatie sinds het verschijnen van de eerste schaakcomputers in de jaren zeventig. je zou zelfs een schaakspel kunnen spelen op het apparaat dat je gebruikt om deze blogpost te lezen! Voor digitale makers, hoewel, het toevoegen van een Raspberry Pi in de mix kan de eerste stap naar het bouwen van iets een beetje spannender. Laat ons je voorstellen aan Joey Meyer ‘ s schaakspelende robot, de Raspberry Turk.

the Raspberry Turk chess-playing robot

beeld: Joey Meyer

omdat hij zowel een ervaren Software engineer is met een interesse in machine learning, als een ervaren schaker, is het niet verwonderlijk dat Joey geïnteresseerd was in het knutselen met schaakprogramma ‘ s. Wat echt verbluffend is, is de schaal en complexiteit van de bouw die hij bedacht. Gefascineerd door een beroemde historische hoax, Joey gebruikt zijn vaardigheden in programmeren en robotica om een open-source Raspberry Pi-aangedreven recreatie van de beroemde Mechanische Turk automaat te bouwen.

U kunt de Raspberry Turk in actie zien op Joey ‘ s YouTube kanaal:

een historische hoax

Joey legt uit dat hij de Mechanische Turk voor het eerst tegenkwam via een boek van Tom Standage. Een beroemd voorbeeld van mechanische trucs, de oorspronkelijke Turk werd geadverteerd als een Schaken-spelende automaat, in staat om menselijke tegenstanders te verslaan en complexe puzzels op te lossen.

Image of the Mechanical Turk Automaton

een moderne reconstructie van de Mechanische Turk
Image from Wikimedia Commons

its inner Works een geheim, de Turk toerde door Europa voor het beste deel van een eeuw, het verwarren van iedereen die het tegenkwam. Helaas bleek het toch geen geweldig voorbeeld van vroege robottechnologie te zijn. In plaats daarvan was het gewoon een uitgebreide illusie. De ontzagwekkende schaakbewegingen werden niet uitgewerkt door het klokwerk brein van de automaat, maar door een menselijke schaakmeester die sluw verborgen was in de behuizing.

bouwen van een moderne Turk

een moderne versie van de Mechanische Turk werd gebouwd in de jaren 1980. Tegen die prijs zou het voor de meeste makers onmogelijk zijn geweest om hun eigen versie te maken. Onmogelijk, dat wil zeggen, tot nu toe: Joey gebruikt een Raspberry Pi 3 om de Raspberry Turk te rijden, terwijl een Raspberry Pi cameramodule computer vision behandelt.

beeld van schaakbord en Raspberry Turk robot

De Raspberry Turk in het midden van een spel
beeld door: Joey Meyer

Joey ‘ s Raspberry Turk is ingebouwd in een nette houten tafel. Alle elektronica zit aan één kant in een doos. Het schaakbord is direct op het tafeloppervlak geschilderd. Om de robot te laten spelen, neemt een cameramodule in een 3D-geprinte behuizing boven de tafel een afbeelding van het schaakbord. Het beeld wordt vervolgens geanalyseerd om te bepalen welke stukken zich op dat punt in welke posities bevinden. Door het volgen van veranderingen in de posities van de stukken, kan de Raspberry Turk bepalen welke bewegingen zijn gemaakt, en welk stuk moet volgende bewegen. Om het systeem te trainen, moest Joey een grote dataset bouwen om een computervisiemodel te valideren. Dit hield in dat stukken met de hand moesten worden verplaatst en meerdere afbeeldingen van elke mogelijke positie moesten worden verzameld.

Kijk, geen handen!

een belangrijk kenmerk van de Mechanische Turk was dat de automaat de schaakstukken volledig uit zichzelf leek te verplaatsen. Natuurlijk werden de bewegingen gecontroleerd door een persoon verborgen in de machine. De Raspberry Turk daarentegen beweegt de schaakstukken zelf. Om dit te bereiken gebruikte Joey een robotarm die aan de tafel was bevestigd. De arm bestaat voornamelijk uit Actobotics componenten. Joey legt uit:

de beweging wordt geregeld door de rotatie van twee servo ‘ s die zijn bevestigd aan tandwielen aan de basis van elke schakel van de arm. Aan het einde van de arm bevindt zich nog een servo die een balk op en neer beweegt. Onderaan de balk bevindt zich een elektromagneet die dynamisch kan worden geactiveerd om de schaakstukken op te tillen.

Joey paste de schaakstukken individueel aan met kleine stukjes metalen plug, zodat de magneet aan de arm ze kon oppakken.

programmeren van de Raspberry Turk

De Raspberry Turk wordt bestuurd door een daemon proces dat een waarneming/actie sequentie draait, en de status wordt automatisch bijgewerkt als de stukken worden verplaatst. De code is bijna volledig geschreven in Python. Het is allemaal beschikbaar op Joey ‘ s GitHub repo voor het project, samen met zijn notebooks over het project.

afbeelding van het schaakbord van Raspberry Turk met Python-script naast

beeld: Joey Meyer

De AI-backend die de robot zijn schaakspelvermogen geeft is momenteel Stockfish, een sterke open-source schaakmachine. Joey zegt dat hij zijn eigen motor wil bouwen als hij tijd heeft. Op dit moment is hij er echter van overtuigd dat deze AI een waardige tegenstander zal zijn.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.