Vision automates the game of darts
According to James Masters of The Online Guide to Traditional Games (www.tradgames.org.uk), the game of darts started to grow in popularity in the 19th century.
Andrew Wilson, Editor, firstname.lastname@example.org
According to James Masters of The Online Guide to Traditional Games (www.tradgames.org.uk), the game of darts started to grow in popularity in the 19th century. However, it was not until the 20th century that the game became popular in bars and pubs. Played on a board of numbered colored circles on which there are multiple “doubles” and “trebles,” the highest score is made by striking a dart into the center of the board to obtain a “bull’s-eye.” Anyone who has visited an English pub will realize the difficulty of the game.
In March 2005, a group of engineering students at the Technical University of Munich (Munich, Germany; www.tu-muenchen.de) set out to build a vision-guided dart game in which, no matter how inept the player, the result would always be a bull’s-eye. The system design developed by the students is relatively simple. When a player throws a dart toward the dartboard, the trajectory of the arrow is computed and, as it approaches its destination, the dartboard is moved-ensuring the player hits a perfect bull’s-eye.
The hardware setup was designed by six mechanical-engineering students, while the vision components were programmed and developed by Martin Platter, a computer-science student. The interdisciplinary team was aided by numerous university assistants and the German consulting company itq (Munich, Germany; www.itq.de).
“To compute the trajectory of the dart,” says Platter, “two MV-D1024-160-CL8 cameras from Photonfocus (Lachen, Switzerland; www.photonfocus.com) are used to capture the line of flight of the dart both lengthwise (in the y, z direction) and vertically downward (in the x, z direction). Captured image data are then transferred to the system’s host PC using a microEnable III frame grabber with FPGA coprocessor from Silicon Software (Mannheim, Germany; www.silicon-software.com).
“As images are captured in both directions (x, z and y, z),” says Platter, “the trajectory of the dart in both planes is determined by subtracting sequential images.” Because of the speed of the projectile, a region of interest (ROI) of the image is computed from this initial image subtraction.” Thus, although the camera is specified at 50 frames/s with 1024 × 1024-pixel resolution, image rates of up to 100,000 images/s can be achieved by using ROI imaging. This results in a reduction in the quantity of data to be transferred for each image.
“With traditional CCD cameras there are only limited possibilities for the choice of an ROI,” says Platter. “With CMOS sensors the readout of the image sensor can be programmed to alter the ROI from image to image. Using the Camera Link standard, it is possible to transfer image data rapidly from the camera to the frame grabber and use the RS-232 serial interface with low bandwidth for camera control.”
Using this camera/frame-grabber combination, the frame grabber controls the parameter settings and the coordinates of the individual ROIs. In this way, it is possible to capture images of the dart in two planes at very high speeds. After images are captured, the center point of the ROI is computed for each frame and the 3-D parabolic path of the dart computed using a triangulation method.
The vision components used in the system were provided by Stemmer Imaging (Puchheim, Germany, www.stemmer.de). The company’s specialists also gave technical support to the students to help them develop the dartboard system’s software in C++.
Once the parabolic path of the dart has been computed, the x, y position at which the dart will cross the image plane of the dartboard can be computed. Approximately 180 ms before the dart reaches its final destination, the x, y coordinates are transferred from the host PC over a CANbus interface to an SEC-AC-305 linear axis system from Festo (Hauppauge, NY, USA; www.festo.com). This controller is used to power two MTR-AC-100 motors in both the x and y directions.
“Approximately 180 ms before the dart will reach the target,” says Andreas Schmidt, the student project leader, “the motor controller starts to move the dartboard in the x, y plane. About 120 ms before impact, a second set of final coordinates is sent to the motor controller to ensure the dartboard is placed more accurately. Thus, as the dart reaches its final destination, the dartboard is positioned so that the player always scores a bull’s-eye.