Les ordinateurs et les échecs sont une combinaison puissante depuis l’apparition des premiers ordinateurs qui jouent aux échecs dans les années 1970.Vous pourrez même jouer à une partie d’échecs sur l’appareil que vous utilisez pour lire ce billet de blog! Pour les créateurs numériques, cependant, l’ajout d’un Raspberry Pi dans le mélange peut être la première étape pour créer quelque chose d’un peu plus excitant. Permettez-nous de vous présenter le robot d’échecs de Joey Meyer, le Raspberry Turk.
Crédit d’image: Joey Meyer
Étant à la fois un ingénieur logiciel expérimenté avec un intérêt pour l’apprentissage automatique, et un joueur d’échecs qualifié, il n’est pas surprenant que Joey ait été intéressé à bricoler des programmes d’échecs. Ce qui est vraiment étonnant, cependant, c’est l’ampleur et la complexité de la construction qu’il a imaginée. Fasciné par un canular historique célèbre, Joey a utilisé ses compétences en programmation et en robotique pour construire une reconstitution open-source alimentée par Raspberry Pi du célèbre automate mécanique Turk.
Vous pouvez voir le Turc Framboise en action sur la chaîne YouTube de Joey:
Un canular historique
Joey explique qu’il a rencontré le Turc mécanique pour la première fois à travers un livre de Tom Standage. Un exemple célèbre de supercherie mécanique, le Turc d’origine était présenté comme un automate de jeu d’échecs, capable de vaincre des adversaires humains et de résoudre des énigmes complexes.
Une reconstruction moderne du Turc Mécanique
Image de Wikimedia Commons
Son fonctionnement interne est un secret, le Turc a fait le tour de l’Europe pendant la plus grande partie d’un siècle, confondant tous ceux qui l’ont rencontré. Malheureusement, il s’est avéré que ce n’était pas un exemple fabuleux d’ingénierie robotique précoce après tout. Au lieu de cela, ce n’était qu’une illusion élaborée. Les mouvements d’échecs impressionnants n’étaient pas élaborés par le cerveau mécanique de l’automate, mais plutôt par un maître d’échecs humain qui était astucieusement caché à l’intérieur du boîtier.
Construire un Turc moderne
Une version moderne du Turc mécanique a été construite dans les années 1980. Cependant, la construction a coûté 120 000 $. À ce prix, il aurait été impossible pour la plupart des fabricants de créer leur propre version. Impossible, c’est-à-dire jusqu’à présent: Joey utilise un Raspberry Pi 3 pour piloter le Raspberry Turk, tandis qu’un module de caméra Raspberry Pi gère la vision par ordinateur.
Le Raspberry Turk au milieu d’une partie
Crédit image: Joey Meyer
Le Raspberry Turk de Joey est intégré dans une table en bois soignée. Tous les composants électroniques sont logés dans un boîtier d’un côté. L’échiquier est peint directement sur la surface de la table. Pour que le robot puisse jouer, un module de caméra situé dans un boîtier imprimé en 3D au-dessus de la table prend une image de l’échiquier. L’image est ensuite analysée pour déterminer quelles pièces se trouvent dans quelles positions à ce point. En suivant les changements de position des pièces, le Turc Framboise peut déterminer quels mouvements ont été effectués et quelle pièce doit se déplacer ensuite. Pour entraîner le système, Joey a dû construire un grand ensemble de données pour valider un modèle de vision par ordinateur. Cela impliquait de déplacer minutieusement des pièces à la main et de collecter plusieurs images de chaque position possible.
Regardez, pas de mains!
Une caractéristique clé du turc mécanique était que l’automate semblait déplacer les pièces d’échecs entièrement par lui-même. Bien sûr, ses mouvements étaient en fait contrôlés par une personne cachée à l’intérieur de la machine. Le Turc Framboise, en revanche, déplace les pièces d’échecs lui-même. Pour ce faire, Joey a utilisé un bras robotisé attaché à la table. Le bras est fabriqué principalement à partir de composants Actobotics. Joey explique :
Le mouvement est contrôlé par la rotation de deux servos qui sont fixés à des engrenages à la base de chaque maillon du bras. À l’extrémité du bras se trouve un autre servo qui déplace une poutre de haut en bas. Au bas du faisceau se trouve un électroaimant qui peut être activé dynamiquement pour soulever les pièces d’échecs.
Joey a monté individuellement les pièces d’échecs avec de minuscules sections de cheville métallique afin que l’aimant sur le bras puisse les ramasser.
Programmation du Raspberry Turk
Le Raspberry Turk est contrôlé par un processus démon qui exécute une séquence de perception/action, et le statut se met à jour automatiquement au fur et à mesure que les morceaux sont déplacés. Le code est écrit presque entièrement en Python. Tout est disponible sur le dépôt GitHub de Joey pour le projet, ainsi que ses cahiers sur le projet.
Crédit d’image: Joey Meyer
Le backend d’IA qui donne au robot sa capacité à jouer aux échecs est actuellement Stockfish, un puissant moteur d’échecs open-source. Joey dit qu’il aimerait construire son propre moteur quand il aura le temps. Pour le moment, cependant, il est convaincu que cette IA se révélera un adversaire digne.