Magneto – Week 1


Who are we?

Our group consists of 2 mechanical engineers and 3 computer engineers. We have not worked together before, so this is a new and fun experience that we all are looking forward to participate in. 

The 2 mechanical engineers will focus mainly on the design and production of the physical chessboard with a computer-controlled mechanism that can make the AI-opponents moves.

The 3 computer engineers task is to develop and code a functional AI-system that can recognize moves and make counter moves accordingly. This demands a sophisticated and dynamic software that can make decisions on-the-fly.

What are we creating?

We are creating Magneto the chess robot with the idea for the robot to play vs a human. The robot will start with a move, and then wait for the opponent to make theirs. 

We have some ideas around how to track moves on the chessboard, either using a camera or using sensors to check where the pieces are on the board at given points. 

For moving the chess pieces we are thinking about either an arm or a claw, while also thinking about how we should have it move around. 

Our requirements for the robot

We will be using ABC requirments to figure out what is the most important requirments.

A

  • The robot mechanical part must be able to move in both x, z and y axies.
  • It must must be able to locate every square on the chess board. 
  • It must be able to pick up a piece and place it in another square.

B

  • It must be able to remove a piece from a square and then place it on the side.
  • It must be to detect what move the human makes.

C

  • It must be able to see when the human is done with its move and tell the human when it’s done with its own move.
  • It must to be able to use a chess bot to choose its moves it is going to make

With all of these requirements successfully implemented we would have a functional chess “robot” that a human can play against in real life. We want it to be the real life chess.com so you never need to look at a computer screen again to play chess against a good bot.

How we plan to make the robot

Our plan is to make a robot that can play chess on its own. To elaborate on this even further, the robot has to “think” and make all the moves without human intervention. It will be the equivalent of playing vs an AI on the web, except the AI is playing on a physical chess board instead. We are still discussing using a camera or sensors to read the human chess moves, but this must be researched further. 

Our plan is to create the program ourselves except the chess move that the AI seems fit. We want to implement an already working chess AI into our program, meaning that we need to make sure the AI’s moves are done on the physical chess board. Chess engines are made primarily in C languages which will make it easier for us to implement an existing chess library if we code in a variation of C. We have experience with C++ and therefore it is wise to use C++. There are several compatible text editors for C++ and we will use visual studio and/or arduino IDE. Visual studio is compatible with arduino boards and offers among other things better debugging and more advanced features. Making it a better choice for a more complex program.

This is our planing going forward

We have a lesson every monday from 10-12 so we would like to meet at least every monday from 09:00 -> 10:00 and 12 -> to later on the day. The first hour of the day we can use to plan the rest of the day to figure out if we need to work together or if we can work on our own. 

Going forward we would like to write our own work in the blog post, so there are going to be sections with each name and what they have done for that week. The reason the meetings are like this is because 2 of our group members have lectures at the same time as we have lectures in smart systems. So this was the time best fit for us.

We are also planning to go through with sprints, we haven’t landed on exactly what to use and how to set it up yet, this will come in next week’s blog post.

When it comes to workflow we plan to share our task between the computer engineers and the mechanical engineers from week to week. We start by discussing what we need to complete by the end of that week and then work on what we need to be able to complete our assignments. 


Leave a Reply