top of page

Sawyer Plays Cornhole

Programming the Sawyer robot arm to throw bean bags at a cornhole board and adjust its settings to improve its accuracy, if needed, after each throw. Sawyer has some cheat detection by being able to determine if it has been handed the correct bag or if a player has moved the board mid-play.

​

A general overview of the project and all source code is hosted on Github.

Project Requirements

Timeline: 2.5 weeks

Budget: $50

​

  1. Control the robot using custom ROS nodes written in Python, but can utilize any ROS packages.
     

  2. Incorporate at least one of the robots sensors
     

  3. Have some component of human interaction

Responsibilities

The major systems of the project were split among the four team members.

​

My contributions were:

​

  1. Throwing Trajectory
     

  2. Targeting and Adjustments
     

  3. Glove Design

Throwing

Ultimately the biggest limitation for this project was maximum velocity of Sawyer's joints. In order to maximize the distance thrown, the team opted for an overhand throw trajectory. 

​

Although cornhole is typically played with underhand tosses, using an overhand throw leverages Sawyer's height and it allows three joints to contribute to the overall end effector velocity. 

​

Both trajectories were able to throw past Sawyer's reach, but the underhand toss was a few inches outside versus a few feet for the overhand toss.

Targeting and Adjustments

During the initialization phase, Sawyer determines the throwing direction based on the Apriltag attached to the cornhole board. 

​

Then after each throw, AprilTags are placed where each bean bag landed. Sawyer will then determine if:

​

  1. Has the board moved since the previous toss? If so, it recalculates the throwing angle.
     

  2. How accurate was the throw? This adjustment could be either increasing/decreasing the speed or a small adjustment to the throwing angle.

​

​

Glove Design

During testing, it was observed that as the arm slowed down to aim at a closer target, the bag would not be properly thrown.

​

In order to fix this issue, the team decided to attach a "glove" to Sawyer's grippers that would guarantee the bag would always be thrown forward.

​

The pictures to the right show the prototyping process starting with a tape version to quickly and cheaply iterate on the shape.

​

Then shifting to a simple model to test various materials. The suede was found to be very slick so different fiction pads were tested.

​

The final version was then cut out and engraved using a laser cutter.

20191213_170306899_iOS_edited.jpg
20191213_202324914_iOS_edited.jpg
bottom of page