article

The Foosbot is an automated robotic system capable of playing foosball against human opponents. The Foosbot is not a software simulation of a game of foosball; instead it plays according to foosball rules and has pre-programmed moves that mimic human players. In addition to playing against human players, the Foosbot can also play cooperatively with humans via haptic control of the Foosbot's men. Currently, the Foosbot has defeated all its human opponents, although it has not yet competed against expert human foosball players.

History


The Foosbot was originally conceived as a capstone design project for computer science, electrical engineering, and mechanical engineering students at Rice University in Houston, TX. These students wanted to combine classroom knowledge into actual application; the practicality of such a device was never viewed as a high priority.

Most capstone engineering projects at Rice University have limited practicality and are intended to be a laboratory wherein students use their creativity and analytical skills to develop ideas into reality. Projects over the years have included: an automated Zamboni machine, battle robots, scaled R/C cargo planes, robotic window washer, and a robotic walking chair.

In the first year of the project (fall 2003 - spring 2004), the design and fabrication of the mechanical portion of the table was completed and interfaced with the electric motors and position sensors. The Foosbot was interfaced to an industrial PC, NI PXI-1042, running the Windows OS. Analog-to-digital conversion, digital-to-analog conversion, and digital communication was accomplished via an FPGA, NI PXI-7831R, connected to the PXI bus on the PXI-1042. At that time, it was possible to control the Foosbot's men via a computer, but the ball position feedback system, although designed, was not available at that time and required additional tuning and modification.

In the second year of the project (fall 2004-spring 2005), the electrical systems of the Foosbot underwent significant modification and redesign, and the control software was completely redesigned. Specifically, the Foosbot was interfaced to an ordinary PC, Pentium 4 processor, running the Windows OS. Communication between Foosbot's hardware was facilitated via the NI PC DIO-96 digital interface over the PCI bus. New hardware was designed and fabricated to accomplish analog-to-digital conversion, digital-to-analog conversion, and resolving of the encoders. The ball position feedback system was modified and tuned to see the ball with better than 0.025 cm^2 resolution at 125 Hz. Finally, the control software was written to handle all the new hardware and gameplay.

As of December 2005, feasibility investigations to commercialize the Foosbot as an amusement system for home or arcade use are underway. In addition, other commercialization avenues are being investigated including: marketing, biological automation, and manufacturing.

How Foosbot Works


The Foosbot is basically a simple positioning robot that uses real-time information about an object it will control. Humans perform these actions routinely, but they are most prominently displayed in professional sports where players perform dramatic feats of athleticism to catch, kick, pass, throw, or otherwise control a ball using their eyes as a means of feedback. The Foosbot mimics what these human players do naturally.

Ball Position

Ball sensing is accomplished through the use of a light grid composed of ordinary infrared LEDs and phototransistors similar to those used in remote controls for home electronics including TVs, DVD players, and stereos.

The walls of the Foosbot are elevated above the playing surface to allow infrared light to pass from the LEDs to the phototransistors on the other side of the table. The LED and phototransistor arrays are aligned in pairs wherein one wall has an array of LEDs and the opposite wall has an array of phototransistors. The LED/phototranistor pairs detect a ball's position when it blocks the light path between them. By "stepping" through each pair 125 times a second, the computer algorithm can detect the probable location of the ball.

Because the Foosbot does not distinguish between different objects that block the light path, the Foosbot will react to foreign objects that are on the playing field. This can be viewed as an anti-"TILT" feature.

Player Position

The Foosbot does not visually see the position of the players. Instead, the Foosbot senses the linear position via a potentiometer or rotary encoder attached to the pinion gear of the rack and pinion system attached to each rod. The potentiometers are used for sensing the position of the human players' men, and are interfaced to the PC via an ADC. The rotary encoders are used for sensing the position of the Foosbots' men and interfaced to the PC via an LS7266R1 encoder resolver IC.

Player Movement

The Foosbot's men are actuated via DC motors attached to the pinion gear of the rack and pinion for linear movement and a belt drive for the rotational movement. The motors are powered by power op-amps which are interfaced to the PC via DACs. The Foosbot's men move and react according to control laws based on a PD controller where the ball sensing system provides state feedback information to the controller.

The human player's men are moved and rotated by the human just as normal foosball table. When the human player is playing cooperatively with the Foosbot, the Foosbot's men are controlled using a haptic control law that attempts to simulate the feel of the unpowered human rod.

Algorithm and Gameplay

The Foosbot's basic algorithm for gameplay consists of a defensive and an offensive strategy. The defensive strategy attempts to block and catch balls directed towards its goal. The basic idea is to estimate the ball's trajectory and move its men to intersect with that trajectory which is similar to the way soccer players defend against attacks on the goal by the opposing team. The offensive strategy is to maintain control of the ball and wait for an open trajectory to the goal which is also similar to play seen on a soccer field.

During gameplay, the Foosbot resembles the play of an actual human. This is because the Foosbot's individual movements are based upon human moves including pull and tic-tac shots. The realistic play of the Foosbot, coupled with its uncanny ability to block shots, often frustrates opponents. For this reason, the Foosbot has varying levels of play to accommodate novice and expert players. A movie of the Foosbot can be seen at foosbot movie.

System Architecture


The Foosbot is not an example of an embedded system; instead, it is a PC-based system that runs the Windows OS. The PC architecture with the Windows OS provides flexibility for testing, making changes, and performance monitoring. Other OSs, such as Linux and Mac OS X, offer similar capability, but hardware drivers are not always available and/or user friendly. However, the open-source software community works to make and improve these drivers as the need arises.

Most video games are developed in a similar way, where the embedded system emulator running on a PC allows a developer to monitor resources, debug errors, and maximize performance before porting the software to the embedded system target. Pinball machines are very similar to the Foosbot in terms of interfacing computer, electrical, and mechanical systems but use embedded systems instead. This allows the machine to be robust to hardware failures as embedded systems are designed to work for many years without incident.

Arcade game systems used embedded systems almost exclusively from the 1970's to the late 1980's, but the desire to create flexibility in game choice resulted in JAMMA developing standards that enabled PCBs, wire harnesses, joysticks, and other parts to be interchangeable. This development and the increasingly lower cost of buying and maintaining PCs has led to arcade games that dispense with using an embedded system in favor of emulation on a PC usually running Windows, Linux, or a specialized OS. Today, most new arcade games use a PC to run gaming software.

Similar Systems


The Foosbot is not the only robotic system that plays foosball. Undergraduates at University of Illinois at Urbana-Champaign, Milwaukee School of Engineering (MSOE), and researchers at the University of Freiburg have also developed similar systems. The system at the University of Freiburg is known as the KiRo and uses a digital camera system to track the ball. The KiRo claims to have defeated 85% of its opponents including expert foosball players; the Foosbot has not been matched against expert players. The KiRo does not allow players to play cooperatively or side-by-side with the machine because of its mechanical design. The Automated Foosball Table at MSOE is similar to the Foosbot and the Kiro but uses lasers instead of LEDs or a digital camera. However, it is apparent that performance is comparable for all machines.

Robots | Automation

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Foosbot".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld