Software Description:
- * Python Idle: Dit is het coderingsplatform dat in dit project wordt gebruikt. Hele Robot is gecodeerd in Python taal op Python Idle.
- * open Cv: Dit is een Beeldverwerkingsbibliotheek die gebruikt wordt om de Robot het zicht van het schaakbord te geven.
- * Pyfirmata: dit wordt gebruikt om Arduino in Python te coderen. In principe verbindt dit Arduino met Python Idle in plaats van Arduino Ide.
Concepts for Autonomous Chess playing Robotic Arm: Working of robotic Arm involves series of concepts and mechanisms:
1. Forward Kinematics : Gezien de hoeken van servomotor voorwaartse kinematica behandelt het vinden van gewenste positie van Eindeffector.(dat wil zeggen gezien de servohoeken zoals theta_1, theta_2 en theta_3 voorwaartse kinematica helpt om X, Y en Z coördinaten of positie van de eindeffector te vinden).Dit wordt ook gebruikt om te controleren of hoeken verkregen door inverse kinematica correct zijn of niet. De video wordt geleverd in de map “Video ‘ s” van dit zip-bestand.
2. Inverse kinematica: gegeven de X -, Y-en Z-coördinaten van de eindeffector houdt de inverse kinematica zich bezig met het vinden van de gewenste hoeken van de Servos om de gewenste locatie te bereiken. (bijvoorbeeld: voor het kiezen van een object dat op positie (X, Y, Z) wordt geplaatst, kan Inverse kinematica worden gebruikt om dat specifieke object te bereiken en te grijpen. De video wordt geleverd in de map “Video ‘ s” van dit zip-bestand.
3. Kinematische diagrammen: dit zijn de diagrammen die worden gebruikt om de vergelijkingen van voorwaartse en inverse kinematica af te leiden en op te lossen. Ik heb kinematisch diagram opgelost voor een 3DOF gelede Manipulator.
4. Denavit–Hartenberg parameters : Dit is een methode om vooruit kinematica gemakkelijk op te lossen door het maken van een Parametertabel.
5. Rotatiematrices en Verplaatsingsvectoren : Deze worden gebruikt bij het vinden van homogene transformatiematrix en ook voor het omzetten van camera coördinaten in Robots basisframe coördinaten.
6. Beeldverwerking: dit wordt gebruikt om Robot visie te geven van wat er gebeurt op het schaakbord, zoals of beweging wordt gespeeld of niet of als beweging wordt gespeeld door wit of zwart.
stap voor stap werking van de robotarm:
* Stap 1: De eerste invoer van de speler wordt gegeven of hij zwart of wit wil. Als de speler wit kiest dan krijgt de robotarm zwarte kleur en wordt zwarte kleur gegeven als invoer en omgekeerd als de speler Zwart kiest stel dat de speler wit kiest hier
* Stap 2: het spel begint. Zodra het spel begint, begint de beeldverwerking te controleren of wit De zet heeft gespeeld. De opsporing van beweging wordt ontdekt door eenvoudige aftrekking van twee beelden eerste is origineel beeld en tweede is het nieuwe beeld gevormd om veranderingen van de positie van de stukken aan boord. Als Aftrekken resulteert in niets dat betekent dat er geen zet wordt gespeeld. Als Aftrekken resulteert in een niet nul matrix dan wordt beweging gespeeld door wit. Dit laat Robot begrijpen of zet wordt afgespeeld of niet.
* Stap 3: Stel dat wit hier E4 speelt. Beweging wordt gedetecteerd door beeldverwerking. Vervolgens haalt robot de beweging uit zijn schaakopening woordenboek dat ik heb gemaakt en speelt de beweging dienovereenkomstig. Het woordenboek is als {“e5”: coordinates }. Hieruit krijgt de Robot de gewenste coördinaten en neemt vervolgens door Inverse kinematica de pion van het E7-vierkant op en plaatst deze op het E5-vierkant. Zo werkt het plukken en plaatsen van stukken.
· Stap 4: Dit hele proces blijft zich herhalen, tenzij het spel tot een goed einde komt. De gehele Robot wordt gecontroleerd door Arduino pro mini die controleert en noodzakelijke PWM aan motoren verstrekt.
conclusie: de robot detecteert met succes de gespeelde zetten en pakt ook met succes de schaakstukken nauwkeurig en precies op het schaakbord met behulp van beeldverwerking.
Werkvideo: voel je vrij om de werkvideo van dit project hieronder te bekijken:)