Team Status Report for 05/08/2021

This week we made great progress on the fine tuning of different subsystems. We also worked on the integration, as of now the Pi and the Arduino are able to correctly communicate moves which need to be completed.

The web server is being finished up this weekend, and then integrated with the pi. All that’s left is finalizing the website, and then testing the fully integrated system. After that we plan on working on the video, the poster, and the final paper.

 

Luis’ Status Update for 05/08/2021

This week I’ve mostly finished up the OpenCV. It is now fully capable of transmitting moves to the Arduino, waiting for a signal showing that the move has been completed, and then continuing on.

I’ve helped refine the gantry controls, it is now capable of fully completing the xy movement for a move. However, there is still a couple parameters that need to be manually determined  for the claw motion,  as the smaller pieces require a lower drop.

I’ve partially helped with setting up the webserver. I don’t have much web development knowledge, so my contribution here has been much less. I’ve helped debug a few issues that arose, and have been helping to test the webserver on the RaspberryPi.

These next couple days I plan on helping to finish up those components, and finish integrating everything together. Then complete the video, poster, and paper.

Luis’ Status Report for 05/01/2021

This week began with more work refining the OpenCV algorithm. The progress has been very promising. Some small additions were added such as not doing calculations while there is movement within the image, and the calculation of board coordinates involved in a move. We also did some preliminary testing on communication between the RaspberryPi and the Arduino to ensure that portion will work smoothly, the connection seems to work.

Currently there are a few cases where the algorithm calculates more than two coordinates as being involved in a move. My current plan to fix this is mostly some hyperparameter tuning, though if this does not suffice I will add an extra layer of processing to get crisper results. By the end of the week I hope to have moved our current processing and program into a more refined codebase that also communicates with the webserver and arduino.

Luis’ Status Report for 04/24/2021

This week I continued refining the OpenCV. I was able to work out the math in order to get all points in the board. I’ve also worked on refining the method for movement detection. I’ve changed the image used in comparison to be a grayscale version modified to remove shadows. Overall this has shown to be promising, as the clusters we see after movements are more closely grouped together into the correct squares.

My next plans involve continuing to modify this algorithm such that the clusters become grouped together so that we can have precise points associated with movement. I also plan to modify it such that movement is calculated not only after a set amount of time, but also after the image stabilizes. This will help counteract some issues that arise while testing, where a hand obscures the cameras vision of the board.

Luis’ Status Report for 04/10/2021

This week I worked with my team to do some initial system integration. We found a few kinks that we were able to work through. The OpenCV algorithm requires some adjustments, which I’ve been working on.

Firstly there needs to be some refining of the line detection. Running it realtime led to unstable lines, so the current plan is to initialize those locations with a clear board prior to starting the game. Doing this and getting all the lines to be clear has been a little more difficult to prove. My current solution has involved some adaptive thresholding, working on isolating the boards as solid colors, unfortunately the camera is able to pick up the slight variations in wood grain and those carry through, so this has been a work in progress.

Additionally I began work on my move detection. The current work seems very promising, which involves image subtraction, finding contours, and finding the centers. The issue with this is that shadows seem to break the contours apart, so some refining has to be done still.

Unfortunately I forgot to save screenshots while testing the code, so I will have to show them during the demo on Monday.

This upcoming week I plan on continuing to refine these two parts of the OpenCV. I also plan to begin transitioning the code from its current testing form consisting of a large loop, to a more usable code base. Previously I mentioned that I wanted to figure out what to send the Arduino in order to control the gantry, however this is being pushed back and I will work with Juan to make sure they interface well.

Luis’ Status Report for 04/03/2021

This week I continued my work on piece detection. Currently we are using HoughCircles and HoughLines to determine board and piece location. I’ve also been working with Lillie on the website, I’ve created a basic design for the website, which Lillie will then implement.

My main goal this upcoming week is to work with image subtraction to be able to detect movement. I anticipate that this will require some changes to the Hough algorithms, and will work on changing them to work best with motion detection. Another plan is to possibly change the way board line detection is performed, such that we only detect the outermost edges, and divide their lengths to find the inner squares, this should use less memory, and video processing power. After this, which may have to be the following week, I hope to start interfacing this with the arduino and cnc controller. I anticipate that connecting these two may require the RaspberryPi to output different information about the locations, and will have to change this accordingly.

Team Status Report 03/27/2021

This week our team worked in techspark to combine different 3d printed components of our design. We’ve modified our Z-Axis gripper system yet again as we believe our previous four-bar linkage to be insufficient.

This upcoming week we plan to begin incorporating different systems from our design such as the raspberryPi, and the webserver, and ideally our gantry, so we can begin testing how our systems interact together, and hone in on proper parameters and settings for a functional overall device

Luis’ Status Report for 03/27/2021

This week I focused on working on the OpenCV design. I’ve added a HoughCircles algorithm to add tracking to the pieces. I’ve begun testing the OpenCV algorithm, and testing with the board and a few pieces. Over the next week I plan to hone in on the ideal parameters for these functions, and begin coordinating the output into something which our webserver and arduino can use for piece movement and board status updates.

After figuring out the ideal way to run our OpenCV I plan to work on incorporating this with our webserver, before combining it with our gantry.

Luis’ Status Report for 03/13/2021

Due to delays in 3D printing I have not been able to work on any testing with the printed components. Instead I’ve worked on the Design Review Report. I’ve also begun setting up our RaspberryPi environment.

This upcoming week I hope to have printed components to test with, and help setting up the gantry system. I’ll finish up my work on the Design Review Report. I also anticipate that the camera for the RaspberryPi might not fit well within the case that it currently has, and so might have to work on designing a new case that takes that into account.

Luis ‘ Status Report for 03/06/2021

This week I continued some work testing OpenCV, and getting comfortable with the library. I spent time with the team to finish developing our Bill of Materials, and worked on the Design Review Slides and Report. Additionally, I spent time in the beginning of the week setting up OpenCV on one of the RaspberryPis for future testing.

This upcoming week, I plan on taking our word doc version of our Design Review Report, and translating it to Latex. I also plan on testing our OpenCV implementation for edge detection with the printed chess pieces when they are available. I also want to begin working on setting up the RaspberryPi and testing its connections with our web interface.