Počítače a šachy byly silné kombinace od té doby se vzhled první šachové počítače v roce 1970. Ty by mohly být dokonce schopen hrát šachy na zařízení, které používáte ke čtení tohoto blogu! Pro digitální tvůrce však může být přidání Raspberry Pi do mixu prvním krokem k vybudování něčeho trochu vzrušujícího. Dovolte nám, abychom Vám představili šachového robota Joeyho Meyera, Raspberry Turka.
Image credit: Joey Meyer
Je jak zkušený softwarový inženýr se zájmem o strojové učení a zkušený šachista, to není překvapující, že Joey byl zájem hrát s šachovými programy. Co je opravdu ohromující, ačkoli, je rozsah a složitost stavby, se kterou přišel. Fascinován slavným historickým podvodem, Joey využil své dovednosti v programování a robotice k vybudování rekreace slavného mechanického Turkova automatu s otevřeným zdrojovým kódem Raspberry Pi.
můžete vidět Raspberry Turk v akci na Joeyho YouTube kanálu:
historický hoax
Joey vysvětluje, že se poprvé setkal s mechanickým Turkem prostřednictvím knihy Toma Standage. Slavný příklad mechanického podvodu, původní Turk byl inzerován jako šachový automat, schopný porazit lidské soupeře a řešit složité hádanky.
moderní rekonstrukce Mechanického Turka.
Obrázek z Wikimedia Commons,
Jeho vnitřní fungování tajný, Turek turné po Evropě za nejlepší část století, matoucích každý, kdo se setkal. Bohužel se nakonec ukázalo, že to není báječný příklad raného robotického inženýrství. Místo toho to byla jen propracovaná iluze. Úžasné šachové pohyby nebyly vypracovány hodinovým mozkem automatu, ale spíše lidským šachovým mistrem, který byl mazaně ukryt uvnitř pouzdra.
stavba moderního Turka
moderní verze mechanického Turka byla postavena v roce 1980. stavba však stála $ 120,000 . Za tuto cenu by bylo pro většinu tvůrců nemožné vytvořit vlastní verzi. Dosud nemožné: Joey používá Raspberry Pi 3 k řízení Raspberry Turk, zatímco modul kamery Raspberry Pi zpracovává počítačové vidění.
Malina Turka v polovině hry
Image credit: Joey Meyer
Joey Malina Turek je postavena do elegantní dřevěný stůl. Veškerá elektronika je umístěna v krabici na jedné straně. Šachovnice je natřena přímo na povrch stolu. Aby robot hrát, Modul Kamery umístěné v 3D-tištěný bydlení nad tabulkou bere obraz šachovnice. Obraz je poté analyzován, aby se určilo, které kusy jsou v tom okamžiku v jakých pozicích. Sledováním změn v pozicích kusů může Raspberry Turk určit, které pohyby byly provedeny a který kus by se měl pohybovat dále. Chcete-li trénovat systém, Joey musel vytvořit velkou datovou sadu pro ověření modelu počítačového vidění. To zahrnovalo pečlivě pohybující se kusy ručně a shromažďování více obrazů každé možné polohy.
podívejte se, žádné ruce!
klíčovým rysem mechanického Turku bylo, že se zdálo, že automat pohybuje šachovými figurkami zcela sám. Samozřejmě, že jeho pohyby byly ve skutečnosti řízeny osobou skrytou uvnitř stroje. Malinový Turek naproti tomu hýbe šachovými figurkami sám. K dosažení tohoto cíle Joey použil robotické rameno připojené ke stolu. Rameno je vyrobeno především ze složek Actobotics. Joey vysvětluje:
pohyb je řízen otáčení dvěma servy, která jsou připojena k zařízení na základně každého odkazu na ruku. Na konci ramene je další servo, které pohybuje paprskem nahoru a dolů. Ve spodní části paprsku je elektromagnet, který lze dynamicky aktivovat pro zvedání šachových figurek.
Joey individuálně zařízená šachové figurky s malými úseky kovové hmoždinky tak, aby magnet na ruku je mohla zvednout.
Programování Raspberry Turek
Malina Turek je řízen démon proces, který běží vnímání/akční sekvence, a stav aktualizace automaticky, jakmile kusy jsou přesunuty. Kód je napsán téměř výhradně v Pythonu. To vše je k dispozici na Joey ‚ s GitHub repo pro projekt, spolu s jeho notebooky na projektu.
Image credit: Joey Meyer
AI backend, který dává robot své šachové schopnosti v současné době je Treska, silný open-source šachový motor. Joey říká, že by rád postavil svůj vlastní motor, až bude mít čas. V tuto chvíli je však přesvědčen, že tato AI se ukáže jako hodný soupeř.