számítógépek és a sakk már egy erős kombinációja, amióta a megjelenése az első sakk-játék számítógépek az 1970-es években. lehet, hogy még képes játszani a sakkot a készülék segítségével olvassa el ezt a blogbejegyzést! A digitális döntéshozók számára azonban a Raspberry Pi hozzáadása a keverékhez lehet az első lépés egy kicsit izgalmasabb építéshez. Engedje meg, hogy bemutassuk Joey Meyer sakkozó robotját, a málna törököt.
kép jóváírás: Joey Meyer
mivel mind tapasztalt szoftvermérnök, aki érdeklődik a gépi tanulás iránt, mind képzett sakkozó, nem meglepő, hogy Joey érdekelt a sakkprogramok bütykölésében. Ami azonban igazán lenyűgöző, az a felépítés mértéke és összetettsége, amellyel előállt. A híres történelmi átverés lenyűgözte Joey programozási és robotikai képességeit, hogy felépítsen egy nyílt forráskódú Raspberry Pi-meghajtású kikapcsolódást az ünnepelt mechanikus Turk automata számára.
láthatjuk a málna Turk akcióban Joey YouTube csatorna:
A történelmi átverés
Joey elmagyarázza, hogy először találkozott a mechanikus Turk keresztül egy könyvet Tom Standage. A mechanikus trükkök híres példája, az eredeti török sakkjáték automataként reklámozták, amely képes legyőzni az emberi ellenfeleket és összetett rejtvényeket megoldani.
a mechanikus Török modern rekonstrukciója
kép a Wikimedia Commons-ból
belső működése titok, a török az évszázad legjobb részében bejárta Európát, megzavarva mindenkit, aki találkozott vele. Sajnos kiderült, hogy nem egy mesés példa a korai robottechnikára. Ehelyett csak egy bonyolult illúzió volt. A félelmetes sakkmozdulatokat nem az automata óramű agya dolgozta ki, hanem egy emberi sakkmester, akit ravaszul elrejtettek a burkolat belsejében.
modern török építése
a mechanikus Török modern változatát az 1980-as években építették. az építkezés azonban 120 000 dollárba került. Ezen az áron a legtöbb gyártó számára lehetetlen lett volna saját verziót készíteni. Lehetetlen, vagyis eddig: Joey egy Raspberry Pi 3-at használ a Raspberry Turk meghajtására, míg a Raspberry Pi kameramodul kezeli a számítógépes látást.
a Raspberry Turk a játék közepén
kép jóváírás: Joey Meyer
Joey Raspberry Turk van építve egy szép fából készült asztal. Az összes elektronika az egyik oldalon egy dobozban van elhelyezve. A sakktábla közvetlenül az asztal felületére van festve. Annak érdekében, hogy a robot játszhasson, az asztal feletti 3D-s nyomtatott házban található kameramodul képet készít a sakktábláról. A képet ezután elemzik, hogy meghatározzák, mely darabok vannak abban a helyzetben. A darabok helyzetének változásainak nyomon követésével a málna Török meghatározhatja, hogy mely mozdulatok történtek, és melyik darabnak kell következnie. A rendszer kiképzéséhez Joey-nak nagy adatkészletet kellett felépítenie a számítógépes látásmodell érvényesítéséhez. Ez magában foglalta a darabok gondos mozgatását kézzel, és több kép összegyűjtését minden lehetséges pozícióról.
nézd, nincs keze!
a mechanikus Török egyik legfontosabb jellemzője az volt, hogy az automata úgy tűnt, hogy teljesen önmagában mozgatja a sakkfigurákat. Természetesen a mozgását valójában a gép belsejében rejtett személy irányította. A málna Török ezzel szemben maga mozgatja a sakkfigurákat. Ennek elérése érdekében Joey egy robotkart használt az asztalhoz. A kar elsősorban Actobotics alkatrészekből készül. Joey elmagyarázza:
a mozgást két szervó forgása vezérli, amelyek a kar minden egyes láncszemének alján lévő fogaskerekekhez vannak rögzítve. A kar végén van egy másik szervo, amely fel-le mozgatja a gerendát. A gerenda alján egy elektromágnes található, amely dinamikusan aktiválható a sakkfigurák felemelésére.
Joey külön-külön felszerelte a sakkfigurákat apró fémdugóval, hogy a karon lévő mágnes fel tudja venni őket.
programozás a Raspberry Turk
a Raspberry Turk vezérli egy démon folyamat, amely fut egy észlelés/akció szekvencia, és az állapot automatikusan frissül, mint a darab mozog. A kódot szinte teljes egészében Pythonban írják. Mindez elérhető Joey GitHub repóján a projekthez, a projekt jegyzetfüzeteivel együtt.
kép jóváírás: Joey Meyer
az AI háttér, amely a robotnak sakkjátékot ad, jelenleg a Stockfish, egy erős nyílt forráskódú sakkmotor. Joey azt mondja, hogy saját motort szeretne építeni, ha van ideje. Egyelőre azonban biztos abban, hogy ez az AI méltó ellenfélnek bizonyul.