Szoftverleírás:
- · Python Idle: ez a projektben használt kódolási platform. Egész Robot van kódolva Python nyelven Python Idle.
- · Open Cv : ez egy képfeldolgozó könyvtár, amely a robotnak a sakktábla látását adja.
- · Pyfirmata: ezt használják a kódot Arduino Python nyelven. Alapvetően ez összeköti Arduino Python Idle helyett Arduino Ide.
Concepts for Autonomous Chess playing Robotic Arm: Working of robotic Arm involves series of concepts and mechanisms:
1. Forward Kinematics : Tekintettel a szögek szervomotor előre kinematika foglalkozik megállapítás kívánt helyzetben End effektor.(azaz, mivel a szervo szögek, mint a theta_1, theta_2 és Theta_3 előre kinematika segít megtalálni X, Y és Z koordinátáit vagy helyzetét a End effektor).Ezt arra is használják, hogy ellenőrizzék, hogy az inverz kinematika által kapott szögek helyesek-e vagy sem. A videó a zip fájl “Videók” mappájában található.
2. Inverz kinematika: a végeffektor X, Y és Z koordinátáit figyelembe véve az inverz kinematika a szervók kívánt szögeinek megkeresésével foglalkozik a kívánt hely eléréséhez. (például : az (X, Y, Z) pozícióba helyezett objektum kiválasztásához inverz kinematika használható az adott objektum elérésére és megragadására. A videó a zip fájl “Videók” mappájában található.
3. Kinematikai diagramok: ezek a diagramok az előre és az inverz kinematika egyenleteinek levezetésére és megoldására szolgálnak. Megoldottam egy 3dof csuklós manipulátor kinematikai diagramját.
4. Denavit-Hartenberg paraméterek: ez egy módszer az előremutató kinematika egyszerű megoldására Paramétertábla készítésével.
5. Forgási mátrixok és elmozdulási Vektorok : Ezeket a homogén transzformációs mátrix megtalálására, valamint a kamera koordinátáinak Robot alapkeret koordinátákká történő átalakítására használják.
6. Képfeldolgozás: ezt arra használják, hogy a Robot látást adjon arról, hogy mi történik a sakktáblán, például ha a mozgást játsszák vagy sem, vagy ha a mozgást fehér vagy fekete játssza.
a robotkar lépésről lépésre történő működése:
* 1. lépés: a játékos első bemenete megkapja, hogy fekete vagy fehér akar-e. Ha a játékos a fehéret választja, akkor a robotkar fekete színt vesz fel, és a fekete színt adja meg bemenetként, és fordítva, ha a játékos a feketét választja, tegyük fel, hogy a játékos itt a fehéret választja
· 2.lépés: a játék elindul. Amint a játék elkezdődik, a képfeldolgozás elkezdi ellenőrizni, hogy white játszotta-e a lépést. A mozgás észlelését két kép egyszerű kivonásával lehet észlelni, az első az eredeti kép, a második pedig az új kép, amely a darabok helyzetének megváltoztatásához alakult ki a fedélzeten. Ha kivonás eredményez semmit, ami azt jelenti, nem mozog játszott. Ha a kivonás nem nulla mátrixot eredményez, akkor a move-ot white játssza. Ez lehetővé teszi a Robot számára, hogy megértse, mozog-e vagy sem.
* 3. lépés: tegyük fel, hogy a fehér játszik mozog E4 itt. A mozgást a képfeldolgozás észleli. Ezután a robot letölti a lépést az általam létrehozott sakknyitó szótárból, majd ennek megfelelően játssza le a lépést. A szótár olyan, mint {“e5”: koordináták }. Ebből a Robot megkapja a kívánt koordinátákat, majd inverz Kinematikával felveszi a gyalogot az e7 négyzetről, és az e5 négyzetre helyezi. Így működik a darab kiválasztása és elhelyezése.
* 4. lépés: Ez az egész folyamat folyamatosan megismétli önmagát, hacsak a játék nem zárul le. Az egész robotot az Arduino pro mini vezérli, amely vezérli és biztosítja a szükséges PWM-et a motorokhoz.
következtetés: a robot sikeresen felismeri a lejátszott mozdulatokat, és a képfeldolgozás segítségével sikeresen felveszi és pontosan elhelyezi a sakkfigurákat a sakktáblán.
WorkingVideo: nyugodtan ellenőrizze a munka videó a projekt alábbi 🙂