UR5-robotti ja ristinolla

Viidennen projektin (sulautettujen järjestelmien ohjelmistokehitysprojekti) aiheena oli UR-5 robotti, joka pelaa ihmistä vastaan ristinollaa, eikä häviä. Robottikäteen yhdistetty kamera otti kuvan pelilaudasta ja sen pohjalta tietokoneella ollut Python-ohjelma päätti seuraavan siirron minimax-algoritmia käyttäen.

Minun vastuullani tässä projektissa oli Python-koodin kirjoittaminen, enkä ollut osannut sitä juuri lainkaan ennen projektia. Alustava koodi suunniteltiinkin C++:lla. Koodin tuli muodostaa TCP-yhteys robotille, päättää liike sille lähetettyjen arvojen perusteella, lähettää seuraava liike ja tarkistaa voittotilanne.

Python-koodin lisäksi tein yksinkertaisen Code Igniter-pohjaisen nettisivun, johon voitot, tasapelit ja häviöt olisivat tallentuneet MySQL-tietokantaan.

Projekti saatiin melko valmiiksi; tekoäly ja kuvantunnistus toimivat, mutta robottipuolen TCP-koodissa oli jonkinlainen häiriö, eikä liikkeiden vastaanotto onnistunut ja tässä vaiheessa aika loppui kesken.

Projektinhallintatyökaluna käytettiin Taigaa ja pidimme viikottain projektipalaverin ohjaavan opettajan kanssa.

Python-koodi GitHubissa:


Robotti ja pelilauta

Takaisin