Raspberry Pi-blogi

tietokoneet ja Shakki ovat olleet tehokas yhdistelmä ensimmäisten shakkia pelaavien tietokoneiden ilmestymisestä lähtien 1970-luvulla. Digitaalisille tekijöille Vadelma Pi: n lisääminen joukkoon voi kuitenkin olla ensimmäinen askel rakentaa jotain hieman jännittävämpää. Sallikaa meidän esitellä teille Joey Meyerin shakkia pelaava robotti, Raspberry Turk.

Raspberry Turk-shakkia pelaava robotti

Image credit: Joey Meyer

koska hän oli sekä kokenut ohjelmistoinsinööri, joka oli kiinnostunut koneoppimisesta, että taitava shakinpelaaja, ei ole yllättävää, että Joey oli kiinnostunut shakkiohjelmien puuhastelusta. Todella hämmästyttävää on kuitenkin hänen keksimänsä rakennuksen laajuus ja monimutkaisuus. Kiehtoi kuuluisa historiallinen huijaus, Joey käytti taitojaan ohjelmointi ja robotiikka rakentaa avoimen lähdekoodin Vadelma Pi-käyttöinen virkistys kuuluisa mekaaninen Turkkilainen Automaatti.

voit nähdä Vadelmaturkin toiminnassa Joeyn YouTube-kanavalla:

Historiallinen huijaus

Joey kertoo kohdanneensa mekaanisen turkkilaisen ensimmäisen kerran Tom Standagen kirjan kautta. Kuuluisa esimerkki mekaanisesta temppuilusta, alkuperäistä turkkilaista mainostettiin shakkia pelaavana automaattina, joka kykenee kukistamaan ihmisvastustajia ja ratkaisemaan monimutkaisia pulmia.

Image of the Mechanical Turk Automaton

a modern reconstruction of the Mechanical Turk
Image from Wikimedia Commons

sen sisäisen toiminnan salaisuus, Turkkilainen kiersi Eurooppaa parhaan osan vuosisadasta hämmentäen kaikkia, jotka kohtasivat sen. Valitettavasti, se osoittautui ei ole upea esimerkki varhaisen robotic engineering, kun kaikki. Sen sijaan se oli vain taidokas illuusio. Mahtavat shakkiliikkeet eivät olleet automaattien kellokoneiston suorittamia, vaan ihmisshakkimestari, joka oli ovelasti kätketty koteloon.

modernin turkkilaisen rakentaminen

1980-luvulla rakennettiin moderni versio mekaanisesta turkkilaisesta, jonka rakentaminen maksoi kuitenkin 120 000 markkaa. Sillä hinnalla useimpien tekijöiden olisi ollut mahdotonta luoda omaa versiotaan. Mahdotonta, eli tähän asti: Joey käyttää Raspberry Pi 3 ajaa Vadelma Turk, kun taas Raspberry Pi kameramoduuli käsittelee tietokoneen visio.

Kuva shakkilaudasta ja Vadelmaturkkirobotista

Vadelmaturkkilainen kesken pelin
kuvanluotto: Joey Meyer

Joeyn Vadelmaturkkilainen on rakennettu siistiksi puupöydäksi. Kaikki elektroniikka on sijoitettu laatikkoon toisella puolella. Shakkilauta maalataan suoraan pöydän pintaan. Jotta robotti voisi pelata, 3D-tulostettuun koteloon pöydän yläpuolelle sijoitettu kameramoduuli ottaa kuvan shakkilaudasta. Tämän jälkeen kuva analysoidaan, jotta saadaan selville, mitkä kappaleet ovat missäkin asennossa. Seuraamalla kappaleiden asentojen muutoksia Vadelmaturkki voi määrittää, mitkä siirrot on tehty ja minkä kappaleen pitäisi siirtyä seuraavaksi. Järjestelmän kouluttamiseksi Joeyn piti rakentaa suuri datasetti, jolla hän saattoi vahvistaa tietokonenäkömallin. Tähän kuului työläästi kappaleiden liikuttaminen käsin ja useiden kuvien kerääminen jokaisesta mahdollisesta asennosta.

katsokaa, ei käsiä!

mekaanisen turkkilaisen keskeinen piirre oli se, että automaatti näytti siirtävän shakkinappulat kokonaan itsestään. Sen liikkeitä ohjasi koneen sisälle piilotettu henkilö. Vadelmaturkki sen sijaan liikuttaa shakkinappuloita itse. Tämän saavuttamiseksi Joey käytti pöytään kiinnitettyä robottikättä. Varsi on valmistettu pääasiassa Aktobotiikan komponenteista. Joey selittää:

liikettä ohjataan pyörittämällä kahta servoa, jotka on kiinnitetty hammaspyöriin varren jokaisen lenkin tyveen. Varren päässä on toinen servo, joka liikuttaa palkkia ylös ja alas. Säteen alareunassa on sähkömagneetti, joka voidaan dynaamisesti aktivoida nostamaan shakkinappuloita.

Joey asensi shakkinappuloihin yksitellen pieniä metallinappuloita, jotta käsivarren magneetti pystyi poimimaan ne.

Raspberry Turkin ohjelmointi

Raspberry Turk-ohjelmaa ohjaa Daemon-prosessi, joka ajaa perception / action-sekvenssin, ja tila päivittyy automaattisesti nappuloiden siirtyessä. Koodi on kirjoitettu lähes kokonaan Pythonilla. Kaikki löytyy Joeyn GitHub reposta projektia varten sekä hänen muistikirjoistaan projektista.

Image of Raspberry Turk chessboard with Python script with

Image credit: Joey Meyer

tekoälyn taustaosa, joka antaa robotille sen shakkinpelauskyvyn, on tällä hetkellä Stockfish, vahva avoimen lähdekoodin shakkimoottori. Joey sanoo haluavansa rakentaa oman moottorinsa, kun hänellä on aikaa. Toistaiseksi hän on kuitenkin varma, että tekoäly osoittautuu varteenotettavaksi vastustajaksi.

Vastaa

Sähköpostiosoitettasi ei julkaista.