calculatoarele și șahul au fost o combinație puternică încă de la apariția primelor computere care joacă șah în anii 1970. s-ar putea chiar să puteți juca un joc de șah pe dispozitivul pe care îl utilizați pentru a citi această postare pe blog! Totuși, pentru producătorii digitali, adăugarea unui Raspberry Pi în mix poate fi primul pas pentru a construi ceva puțin mai interesant. Permiteți-ne să vă prezentăm robotul de șah al lui Joey Meyer, turcul de zmeură.
credit de imagine: Joey Meyer
fiind atât un inginer software cu experiență, interesat de învățarea mașinilor, cât și un jucător de șah priceput, nu este surprinzător faptul că Joey era interesat de tinkering cu programe de șah. Ceea ce este cu adevărat uimitor, totuși, este amploarea și complexitatea construcției cu care a venit. Fascinat de o farsă istorică celebră, Joey și-a folosit abilitățile în programare și robotică pentru a construi o recreere open-source cu zmeură Pi a celebrului automat Mechanical Turk.
puteți vedea Turk-ul de zmeură în acțiune pe canalul YouTube al lui Joey:
o farsă istorică
Joey explică faptul că l-a întâlnit pentru prima dată pe turcul mecanic printr-o carte de Tom Standage. Un exemplu celebru de șmecherie mecanică, turcul original a fost anunțat ca un automat de joc de șah, capabil să învingă adversarii umani și să rezolve puzzle-uri complexe.
o reconstrucție modernă a Turcului mecanic
Imagine de la Wikimedia Commons
funcționarea sa interioară un secret, turcul a vizitat Europa pentru cea mai bună parte a unui secol, confundând pe toți cei care l-au întâlnit. Din păcate, s-a dovedit a nu fi un exemplu fabulos de inginerie robotică timpurie până la urmă. În schimb, a fost doar o iluzie elaborată. Mișcările minunate de șah nu au fost elaborate de creierul mecanic al automatului, ci mai degrabă de un maestru uman de șah care a fost ascuns cu viclenie în interiorul carcasei.
construirea unui turc modern
o versiune modernă a Turcului mecanic a fost construită în anii 1980. cu toate acestea, construcția a costat 120.000 de dolari. La acest preț, ar fi fost imposibil pentru majoritatea producătorilor să-și creeze propria versiune. Imposibil, adică până acum: Joey folosește un Raspberry Pi 3 pentru a conduce Raspberry Turk, în timp ce un modul de cameră Raspberry Pi se ocupă de viziunea computerului.
zmeura Turk în mijlocul unui joc
credit Imagine: Joey Meyer
zmeura Turk Joey este construit într-o masă de lemn elegant. Toate electronice sunt adăpostite într-o cutie pe o parte. Tabla de șah este vopsită direct pe suprafața mesei. Pentru ca robotul să se joace, un modul de cameră situat într-o carcasă imprimată 3D deasupra mesei face o imagine a tablei de șah. Imaginea este apoi analizată pentru a determina ce piese sunt în ce poziții în acel moment. Urmărind modificările pozițiilor pieselor, Raspberry Turk poate determina ce mișcări au fost făcute și ce piesă ar trebui să se miște în continuare. Pentru a instrui sistemul, Joey a trebuit să construiască un set de date mare pentru a valida un model de viziune computerizată. Aceasta a implicat mutarea minuțioasă a pieselor cu mâna și colectarea mai multor imagini ale fiecărei poziții posibile.
uite, fără mâini!
o caracteristică cheie a Turcului mecanic a fost că automatul părea să miște piesele de șah în întregime de la sine. Desigur, mișcările sale erau de fapt controlate de o persoană ascunsă în interiorul mașinii. Turcul de zmeură, prin contrast, mișcă piesele de șah în sine. Pentru a realiza acest lucru, Joey a folosit un braț robotic atașat la masă. Brațul este realizat în principal din componente Actobotice. Joey explică:
mișcarea este controlată de rotația a două servo-uri care sunt atașate la angrenajele de la baza fiecărei verigi a brațului. La capătul brațului este un alt servo care mișcă un fascicul în sus și în jos. În partea de jos a fasciculului este un electromagnet care poate fi activat dinamic pentru a ridica piesele de șah.
Joey a montat individual piesele de șah cu secțiuni mici de diblu metalic, astfel încât magnetul de pe braț să le poată ridica.
programarea Raspberry Turk
Raspberry Turk este controlat de un proces daemon care rulează o secvență de percepție / acțiune, iar starea se actualizează automat pe măsură ce piesele sunt mutate. Codul este scris aproape în întregime în Python. Totul este disponibil pe Joey GitHub repo pentru proiect, împreună cu notebook-urile sale despre proiect.
credit Imagine: Joey Meyer
backend-ul AI care oferă robotului capacitatea sa de joc de șah este în prezent Stockfish, un puternic motor de șah open-source. Joey spune că ar dori să-și construiască propriul motor când va avea timp. Pentru moment, însă, este încrezător că acest AI se va dovedi un adversar demn.