Robotic Crokinole Opponent

Key Terms: Computer vision, CAD, Product design, Game Theory

Awarded “Best Prototype Award: at the Fall 2024 Tech Spark Engineering Expo

This was my team’s submission for our Electromechanical System Design Class during my first semester in grad school.

The game’s objective is to score points by landing your discs towards the center while knocking the opponent’s discs farther away or off the board. You need an opponent to keep regular game play exciting, but a 2 ft. diameter board isn’t practical to bring along to most events. We decided to create a robotic Crokinole opponent to provide a more engaging solo play experience and spark interest in a wider community.

My primary responsibility was the computer vision system. I also contributed to the CAD Design and strategy algorithm.

This project is how I learned computer vision. A lot of my time was self-studying through public lecture slides and OpenCV documentation to understand the math behind the functions and how they can be applied. I’m really glad to have the opportunity to expand my skill set.


Here’s how a turn works

  • Player shoots disc
  • Player signals robot’s turn with IR remote
  • Robot mounted camera captures board state
  • Disc locations relative to center are computed
  • Game algorithm finds target disc and optimal spot to shoot from ~ game play changes depending on the presence of opponents discs
  • Robot moves to position on shooting line (DC motor on a custom circular rack and pinion track)
  • Robot angles toward target and loads disc (2 servo motors)
  • Robot shoots disc using a solenoid kicker

Computer Vision

Photo of board with Pi Cam Wide 3 mounted on robot
Rectify image with Perspective Transform
Edge Detection
Identify center points and find quadrant lines
Color thresholding to create a red disk mask. Repeat for green
Find center point location of each contour. Convert image coordinates to board positions based on relative distance from center point

Physical Prototypes

I created the camera mast and made some adjustments to the CAD but the models were primarily created by my teammates. Having detailed models in Solidworks helped to optimize the electronics layout and handle system integration. The body was 3D printed and rests on a custom circular rack and pinion track.

Board Coordinate Plane

After the positions of the discs are identified, the robotic crokinole opponent runs an algorithm to determine an optimal target disc. Potential collisions and distance from center are considered during the calculations. An optimal starting position at the scoring line is identified along with the angle and power needed to make the shot. The robot runs along the circular track, aims the shooting mechanism, and launches a disc. An entire round ( 8 turns) can be played without external interference. The robot was able to consistently beat newer players and had some close matches with those more experienced. Overall, this semester project was a lot of fun!

Track Rider Demo
Disc Loader Mechanism
Internal Body View