Robotic Foosball Table

The Automated Foosball Table was created by a group of senior engineering students at Georgia Tech.  This project was mentioned briefly on Hack a Day last week, but we think it deserves a closer look, so here it is.  This is both a really fun project (Seriously, who doesn’t love a good game of foosball?) and an interesting experiment in human/machine interaction.  It doesn’t look like it could beat a human foosball master (so we won’t have a scene like when Garry Kasparov wept openly and cursed out Deep Blue after it beat him at chess), but the potential is there.

Four human-controlled rows, four robotic ones. At the right, you can see the custom PIC-based servo controller board.  Let’s take a closer look at the drive mechanisms:

Recognize that actuator?  That’s a Robotis AX-12 Dynamixel.  It’s the cornerstone of the wildly popular Bioloid system, and it’s one of our favorite robot servos on the market.  These actuators can be set to servo mode or continuous rotation mode.  In CR mode, you can get accurate positional feedback.  What you end up with is functionally the same as a highly accurate, powerful, serially controlled stepping motor; at a fraction of the cost.

Here’s the whole rig.  As you can see you have the table, a camera watching the table, a computer processing the video feed and sending commands to the actuator controller board, and actuators pulling and twisting the handles.

The team wrote their tracking software, which tracks the ball and maneuvers the players accordingly, in Java.  Matlab was considered, but the plan was scrapped because Matlab is too resource-hungry.

The custom actuator control board is pretty cool.  Two different types of outputs for the two styles of servos.  The kicking motion is handled by standard PWM hobby servos, while the lateral motion is handled by AX-12 Dynamixels.

Project home page
Found via Hack a Day

All images belong to the design team.  They were clipped from the project’s final report document or captured from the video.

Leave a Reply