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.
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 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.
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.
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.
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.
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.