SLDPRT and STL files available on Google Drive
Note that the screw holes as dimensioned are too small for the screws used by the Sawyer robot. To use this hardware, you can either remodel it with larger holes or manually widen them with a knife or drill (as we did). Also, for shuffleboard puck gripping strength, it is important to add a ~3mm thick layer of hot glue all around the rounded inside surface of the gripper. The smoothness of this layer is not important.
All the code used in this project can be found on GitHub. The top level file for playing the game is sim/game.py which will run the robot through all the steps needed to scan the board and take shots. Before playing the game, the board must be placed in the correct position. Run src/move_arm/src/to_poses.py and move to "calibration", then place the back right corner of the board underneath Sawyer's modified end-effector. Make sure all red pucks are placed within the designated circles on the board.