Team Status Report for 03/06/2021

As the professor and the TA recommended, we decided to use Raspberry Pi and FPGA instead of using a computer. We believe the computer vision part of our project and the user interface can be run through RPI and FPGA can take care of every move generation and chess AI. It makes sense that RPI can handle image processing, so it is unnecessary to use a computer for image processing.

Since we decided to use RPI, we had to do some research on how FPGA and RPI will be communicating. We figured out that we can still use the UART connection from FPGA to RPI for the communication between two hardware and use the ARM core processor for running an AI on FPGA. Once we are finished with board detection on the computer vision side of the project, we are planning to try out the aforementioned communication between RPI and FPGA so that we can confirm this design works well.

Joseph and Jee Woong made some progress on board-detection, and Michael is testing the ARM core processor based on the setup he created last week. It is good that all our team members are following the schedule we planned.

Jee Woong’s Status Report for 03/06/2021

This week I started working on board-detection. Since our team agreed to first work on images of the board, I took a photo of our chessboard and tested the detection algorithm. As you can see from the picture below, it can detect the corners of the board and find the coordinates of the corners. The printed arrays are the x and y coordinates of each corner.

    

However, the issue is when chess pieces are on the board. I have figured out that the computer vision algorithm that I wrote no longer works when there are pieces on the board. So, I need to figure out how I should be finding the square tiles and their corners of the board when pieces are placed.

Furthermore, Joseph and I are working together on this part, and we are planning to test board-detection with photos that I took and move on to real-time detection of the board using a webcam. We already wrote some code on real-time detection, so I hope we can work more on board-detection with images next week and hopefully move on to real-time detection.

Joseph’s Status Report for 03/06/2021

This week I have detected some chessboard corners. I made two ways of doing this; the first way is to use my internal camera to detect chessboard in real-time. The other way is to simply just use frames to detect the corners. I also realized it might be better to first simply work on frames first and then try to do real-time if necessary.  Some issue that I found was that the detection of chessboard works on a black and white chessboard, which is not the one I have currently. When I get back to US, I think I can use the black and white board so that it works much better. I have also worked on the design presentation as well with my group.

As for the schedule, I am on schedule with the initially planned schedule.

Next week, I am going to try to figure out the coordinates of the chessboard tiles to make a grid structure. After discussing with my teammates, this seems like the easy way to go about detecting moves since the board is almost not recognizable by the chessboard when it has pieces on it.