top of page

CONCLUSIONS

OUR RESULT

Thanks to all the teammates, our final gomoku robot fully fulfilled our initial goal and it is quite robust. It could play a whole gomoku game with human while dectecting cheating actions and then correct it. Great to mention that our gomoku robot could draw a circle and erase it as good as human!

DIFFICULTIES

IMG_7762.jpg

COMPUTER VISON

  • The most difficult part is to correctly detect the intersections. Any error with intersections will easily fail the entire CV part. The solution I used is to corp the chessboard first and transform it into a perfect square, which will significantly increase the accuracy.


  • Another remarkable one is detecting if there is a green/red piece in the grid. The quality of webcam and ambient light affect the accuracy dramatically since the detection is dependent on RGB value completely. One solution is to pick a webcam working appropriately and control the ambient light as consistent as possible.

GOMOKU AI

Latest valid matrix recording:

  • It is irrational to record latest valid matrix inside of function that computes the “Erasing List” and “Drawing List”.

Solution:

  • Add a global variable of latest valid matrix in the integrated codes.

  • Renew latest valid matrix after computing erasing and drawing and record the simulated matrix after these operations.

Screen Shot 2018-12-14 at 5.42.11 PM.png
IMG_20181206_223750.jpg

MOTION

Gripper shaking:

  • The arm is not that stable and shakes up and down when drawing.

Solution:

  • Add a buffer to the marker to counteract the random shaking of gripper.

  • Similar solution to the eraser.

FUTURE IMPROVEMENTS

CV part:

  • Improve the robustness in the bad light conditions.​

AI part:

  • Output “Reminding List”: Since robot is unable to recover the invalid operations of removing player’s chess, robot should give a remind list to remind player to fill his/her own chess pieces in order to recover to the latest valid chessboard. ​​

Motion part:

  • Reduce robot’s reaction time.

  • Add tf_echo listener to code to ease the process of setting up.

bottom of page