Robockey: Autonomous Hockey Playing Robots

Overview & Design

This was the final project for MEAM 410/510, Introduction to Mechatronic Design, and I worked with Eli Gottlieb, Adnan Jafferjee, and Julia Lin. The goal of the project was to design, code, and create three autonomous, hockey-playing robots from scratch in 5 weeks. The robots had to find their own position given relative positions of four (usually fewer) overhead infared lights, as well as track an infared puck along the surface of the rink. Given this information, the robots must be able to determine a strategy to bring the puck to the opposing team's goal. Mechanically, the robots also have to be able to withstand aggressive 2-minute matches.

Our goal was to create a robust and heavy bot that was easy to fix. We chose a modular design: 4 stacked tiers with motors and wheels mounted on the bottom and the electronics mounted on the top. We purchased right-angle motors to fit within the 13" diameter maximum while preventing the alignment and friction problems caused by using a geared drive-train without spending money on encoders. The extra space in each tier was filled with led shot for additional mass, bringing the weight of each robot to approximately 7 pounds. For extra protection, the robots were enclosed within an ABS shell.

To sense the puck, the robot used 8 IR phototransistors - 7 around the robot's perimeter and one pointing down within the front crevice to determine whether or not the robot was in possession of the puck. The readings from the phototransistors enabled the robot to determine the approximate direction of the puck and to position itself to get to it. Once the puck was possessed, the robot was instructed to drive to the goal.

My primary goal on the team was to handle the code required for the robot. In addition to determining and implementing an FSM to drive general strategy, this included solving the localization problem, determining the relative location of the puck based on the phototransistor inputs, and appropriately tuning PWM outputs for the drive-train. The code is in a Github repository here.

Competition Video

From our match against Team 22. We are Team 6, going for the left goal.

Interactive CAD