Shakkirobotin kehittäminen yhteistyörobotilla
Korpinen, Juuso (2026)
Korpinen, Juuso
2026
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2026052717512
https://urn.fi/URN:NBN:fi:amk-2026052717512
Tiivistelmä
Opinnäytetyön tavoitteena oli kehittää shakkia pelaava robotti hyödyntämällä
Universal Robots UR16e-yhteistyörobottia sekä konenäköteknologiaa. Projektin
päämääränä oli luoda kokonaisuus, joka kykenee pelaamaan shakkipelin alusta
loppuun saakka tunnistamalla ihmisvastustajan tekemät siirrot fyysisellä shakkilaudalla, analysoimalla pelitilanteen ja suorittamalla robotin vastasiirrot.
Ohjelmisto toteutettiin Python-ohjelmointikielellä. Shakkipelin sääntöjen valvonnasta vastasi python-chess-kirjasto ja pelisiirtojen laskemiseen hyödynnetään
Stockfish-shakkimoottoria. Kommunikaatio robotin ja tietokoneen välillä toteutettiin reaaliaikaisen RTDE-rajapinnan kautta ur_rtde-kirjastoa käyttämällä.
Ihmisen tekemien siirtojen havaitsemiseen käytettiin aluksi OpenCV-kuvankäsittelykirjastoa (Bradski 2000), jonka avulla siirrot tunnistettiin vertaamalla kahden
kuvan välisiä eroja. Tämä menetelmä osoittautui liian herkäksi ympäristön valais-
tuksen aiheuttamille varjoille. Ongelman ratkaisemiseksi päätettiin kouluttaa oma
YOLO-konenäkömalli, joka opetettiin tunnistamaan shakkinappulat ja niiden sijainnit kuvan avulla. Konenäkömallilla havaittaessa valaistuksen ja varjojen vaikutus pieneni huomattavasti.
Projektin lopputuloksena oli toimiva shakkirobotti, joka pystyy pelaamaan kokonaisen shakkipelin ihmistä vastaan. Lopputulosta on mahdollista jatkokehittää
uusilla ominaisuuksilla, kuten eri shakkivarianttien tukemisella.
Universal Robots UR16e-yhteistyörobottia sekä konenäköteknologiaa. Projektin
päämääränä oli luoda kokonaisuus, joka kykenee pelaamaan shakkipelin alusta
loppuun saakka tunnistamalla ihmisvastustajan tekemät siirrot fyysisellä shakkilaudalla, analysoimalla pelitilanteen ja suorittamalla robotin vastasiirrot.
Ohjelmisto toteutettiin Python-ohjelmointikielellä. Shakkipelin sääntöjen valvonnasta vastasi python-chess-kirjasto ja pelisiirtojen laskemiseen hyödynnetään
Stockfish-shakkimoottoria. Kommunikaatio robotin ja tietokoneen välillä toteutettiin reaaliaikaisen RTDE-rajapinnan kautta ur_rtde-kirjastoa käyttämällä.
Ihmisen tekemien siirtojen havaitsemiseen käytettiin aluksi OpenCV-kuvankäsittelykirjastoa (Bradski 2000), jonka avulla siirrot tunnistettiin vertaamalla kahden
kuvan välisiä eroja. Tämä menetelmä osoittautui liian herkäksi ympäristön valais-
tuksen aiheuttamille varjoille. Ongelman ratkaisemiseksi päätettiin kouluttaa oma
YOLO-konenäkömalli, joka opetettiin tunnistamaan shakkinappulat ja niiden sijainnit kuvan avulla. Konenäkömallilla havaittaessa valaistuksen ja varjojen vaikutus pieneni huomattavasti.
Projektin lopputuloksena oli toimiva shakkirobotti, joka pystyy pelaamaan kokonaisen shakkipelin ihmistä vastaan. Lopputulosta on mahdollista jatkokehittää
uusilla ominaisuuksilla, kuten eri shakkivarianttien tukemisella.
