Software Description:
- · Python Idle : This is the coding platform used in this project. Todo o robô é codificado na linguagem Python em Python Idle.
- · Open Cv : esta é uma biblioteca de processamento de imagens usada para dar ao Robot a visão do tabuleiro de xadrez.
- · Pyfirmata: este é usado para codificar Arduino na linguagem Python. Basicamente isso conecta Arduino a Python Idle em vez de Arduino Ide.
Concepts for Autonomous Chess playing Robotic Arm: Working of robotic Arm involves series of concepts and mechanisms:
1. Forward Kinematics : Dado os ângulos de servo motor para a frente cinemática lida com encontrar a posição desejada do efetor final.(IE dado os ângulos servo, tais como theta_1, theta_2 e theta_3 cinemática avançada ajuda a encontrar coordenadas X, Y E Z ou posição do efetor final).Isto também é usado para verificar se os ângulos obtidos pela cinemática inversa são corretos ou não. O vídeo é fornecido na pasta “Vídeos” deste arquivo zip.2. Cinemática inversa: dadas as coordenadas X, Y E Z do effector final, a cinemática inversa trata de encontrar os ângulos desejados dos Servos para alcançar a localização desejada. (por exemplo: para escolher um objeto que é colocado na posição (X, Y, Z) cinemática inversa pode ser usado para alcançar esse objeto em particular e agarrá-lo. O vídeo é fornecido na pasta “Vídeos” deste arquivo zip.3. Diagramas cinemáticos: estes são os diagramas usados para derivar e resolver as equações de cinemática para a frente e inversa. Resolvi um diagrama cinemático para um 3dof manipulador articulado.4. Parâmetros de Denavit–Hartenberg: este é um método para resolver cinemática avançada facilmente, fazendo uma tabela de Parâmetros.5. Matrizes de rotação e Vectores de deslocação : Estes são usados para encontrar a matriz de transformação homogênea e também para converter coordenadas de câmera em coordenadas de quadro base dos robôs.6. Processamento de imagem: isto é usado para dar uma visão robô do que está acontecendo no tabuleiro de xadrez, como se o movimento é jogado ou não ou se o movimento é jogado por branco ou preto.
trabalho passo a passo do braço robótico:
· Passo 1: A primeira entrada do jogador é dada se ele quer preto ou branco. Se o jogador escolher branco, então o braço robótico toma a cor preta e a cor preta é dada como entrada e vice-versa, se os jogadores escolherem preto suponha que o jogador escolhe branco aqui
· Step2: o jogo começa. Assim que o jogo começa, o processamento de imagem começa a verificar se o branco jogou a jogada. A detecção do movimento é detectada pela simples subtração de duas imagens. a primeira é a imagem original e a segunda é a nova imagem formada para mudanças de posição das peças a bordo. Se a subtracção não resultar em nada, isso significa que não é jogada nenhuma. Se a subtração resultar em uma matriz não zero, então o movimento é jogado pelo branco. Isto permite ao Robot compreender se o movimento é jogado ou não.
· Passo 3: suponha que as peças brancas movem E4 para aqui. O movimento é detectado pelo processamento de imagens. Em seguida, robô pega o movimento de seu dicionário de abertura de xadrez que eu criei e, em seguida, joga o movimento em conformidade. O dicionário é como { “E5”:coordenadas }. A partir disso, o robô recebe as coordenadas desejadas e, em seguida, por cinemática inversa pega o peão do quadrado e7 e coloca-o no quadrado e5. É assim que a escolha e colocação da peça funciona.Passo 4: Todo este processo continua se repetindo a menos que o jogo chegue à conclusão. Todo o robô é controlado pela Arduino pro mini que controla e fornece PWM necessário para os motores.
conclusão: o robô detecta com sucesso os movimentos jogados e também recolhe e coloca as peças de xadrez com precisão e precisão no tabuleiro de xadrez usando o processamento de imagem.
WorkingVideo :Sinta-se livre para verificar o vídeo trabalhando neste projeto abaixo 🙂