Raspberry Pi Blog

computere og skak har været en potent kombination lige siden udseendet af de første skak-spiller computere i 1970 ‘ erne. Du kan endda være i stand til at spille et spil skak på den enhed, du bruger til at læse dette blogindlæg! For digitale producenter kan det dog være det første skridt til at opbygge noget lidt mere spændende at tilføje en Raspberry Pi i blandingen. Tillad os at introducere dig til Joey Meyers skakspilrobot, Raspberry Turk.

the Raspberry Turk chess-playing robot

Image credit: Joey Meyer

at være både en erfaren programmelingeniør med interesse for maskinlæring og en dygtig skakspiller, er det ikke overraskende, at Joey var interesseret i at tinker med skakprogrammer. Hvad er virkelig fantastisk, selvom, er omfanget og kompleksiteten af den bygning, han kom op med. Fascineret af et berømt historisk fupnummer, Joey brugte sine færdigheder inden for programmering og robotik til at opbygge en open source Raspberry Pi-drevet rekreation af den berømte Mekaniske Turk-automat.

Du kan se Raspberry Turk i aktion på Joeys YouTube-kanal:

et historisk fupnummer

Joey forklarer, at han først stødte på Den Mekaniske Turk gennem en bog af Tom Standage. Et berømt eksempel på mekanisk trickery, den oprindelige Turk blev annonceret som en skakspilautomat, der var i stand til at besejre menneskelige modstandere og løse komplekse gåder.

billede af Den Mekaniske Turk-automat

en moderne rekonstruktion af Den Mekaniske Turk
Billede fra Commons

dens indre arbejde en hemmelighed, Turken turnerede Europa i den bedste del af et århundrede og forvirrede alle, der stødte på det. Desværre viste det sig ikke at være et fantastisk eksempel på tidlig robotteknik. I stedet var det bare en udførlig illusion. De fantastiske skakbevægelser blev ikke udarbejdet af automatens urværkshjerne, men snarere af en menneskelig skakmester, der var listigt skjult inde i huset.

opbygning af en moderne Turk

en moderne version af Den Mekaniske Turk blev bygget i 1980 ‘ erne. bygningen kostede dog $120.000. Til den pris ville det have været umuligt for de fleste producenter at oprette deres egen version. Umuligt, det vil sige indtil nu: Joey bruger en Raspberry Pi 3 til at køre Raspberry Turk, mens et Raspberry Pi-kameramodul håndterer computersyn.

billede af skakbræt og Raspberry Turk robot

Raspberry Turk midt i et spil
Billedkredit: Joey Meyer

Joey ‘ s Raspberry Turk er indbygget i et pænt træbord. Al elektronik er anbragt i en kasse på den ene side. Skakbrættet er malet direkte på bordets overflade. For at roboten kan spille, tager et kameramodul placeret i et 3D-trykt hus over bordet et billede af skakbrættet. Billedet analyseres derefter for at bestemme, hvilke stykker der er i hvilke positioner på det tidspunkt. Ved at spore ændringer i stykkernes positioner kan Raspberry Turk bestemme, hvilke bevægelser der er foretaget, og hvilket stykke der skal bevæge sig næste gang. For at træne systemet måtte Joey bygge et stort datasæt for at validere en computervisionsmodel. Dette involverede omhyggeligt at flytte stykker i hånden og indsamle flere billeder af hver mulig position.

Se, ingen hænder!

et centralt element i Den Mekaniske Turk var, at automaten syntes at flytte skakbrikkerne helt af sig selv. Selvfølgelig blev dens bevægelser faktisk kontrolleret af en person skjult inde i maskinen. Raspberry Turk, derimod, flytter skakbrikkerne selv. For at opnå dette brugte Joey en robotarm fastgjort til bordet. Armen er primært lavet af Actobotics komponenter. Joey forklarer:

bevægelsen styres af rotationen af to servoer, der er fastgjort til gear i bunden af hvert led i armen. I slutningen af armen er en anden servo, der bevæger en stråle op og ned. I bunden af strålen er en elektromagnet, der kan aktiveres dynamisk for at løfte skakbrikkerne.

Joey monterede skakbrikkerne individuelt med små sektioner af metal dyvel, så magneten på armen kunne samle dem op.

Programmering af Raspberry Turk

Raspberry Turk styres af en dæmon-proces, der kører en perception / action-sekvens, og status opdateres automatisk, når stykkerne flyttes. Koden er skrevet næsten udelukkende i Python. Det hele er tilgængeligt på Joey ‘ s GitHub repo til projektet sammen med hans notesbøger om projektet.

billede af Raspberry Turk skakbræt med Python script sammen med

Billedkredit: Joey Meyer

AI backend, der giver robotten sin skakspilningsevne, er i øjeblikket Stockfish, en stærk open source skakmotor. Joey siger, at han gerne vil bygge sin egen motor, når han har tid. For øjeblikket er han dog overbevist om, at denne AI vil vise sig at være en værdig modstander.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.