Behind the Headlines

MATLAB and Simulink behind today’s news and trends

Maker hits a bullseye with a cool robotic dartboard

Posted by Lisa Harvey,

What do you get when a former NASA engineer combines motion tracking infrared (IR) cameras, 6 stepper motors, fishing line and a dartboard? That’s easy! An awesome maker project: A dartboard that moves to intercept the dart and gives you a bullseye every time.

According to The Verge, Mark Rober built a custom dartboard “…that can track a dart through the air and perfectly position itself to let the dart hit a bull’s-eye no matter where it’s thrown…”

Well, it wasn’t that easy. It took YouTube personality Rober over three years to create the Automatic Bullseye Moving dartboard. But it is really creative.

Image credit: YouTUBE/MarkRober

Rober, in describing the project, says there two main parts to the system: Calculations to predict where the dart is going to land once it is thrown and then moving the dartboard to this calculated position. These steps must be completed in under four-tenths of a second since that’s about how long it takes for a dart to travel from your hand to the dartboard if you are standing at the regulation distance.

Calculating the desired location

The automated dartboard system relies on motion tracking to determine the trajectory of the dart. For this, Rober used 6 VICON IR cameras. To simplify the images, the darts are fitted with IR retroreflectors. This means the images capture the dart, and not all the “visual noise” from the surroundings.  It turns out, this was helpful when the system was set-up in a less-than-perfectly-lit bar, as well.

Since each camera has 4k resolution and captures an image 260 times per second, the image capture system captures 6.24 million pixels per second. This data is streamed to a computer which then calculates the trajectory of the dart and the predicted location when it reaches the plane of the dartboard.

“Now that we have the XYZ position of the dart as it travels through the air, we use some MATLAB code to then predict where it will land,” states Rober. He estimates that it takes 200 ms to calculate the end location of the dart.

The vertical location calculation considers the parabolic path the dart will travel. The horizontal location is based on a simple line equation. While this is straightforward sounding, the system requires sub-millimeter precision.

Moving the dartboard to the calculated location

Once you know where the dart is headed, you must get the dartboard there in less than 200 ms. The MATLAB code translates the final XYZ location into commands for the motor system that moves the dartboard.

The board is mounted on two linear sliders, enabling it to move both vertically and horizontally. There are 6 stepper motors used to “pull” the dartboard to the desired location, and that’s where the fishing line comes in. The motors pull the dartboard along the sliders with fishing line attached to the back of the board. When one motor pulls the board, the motor on the other side lets out the fishing line at the same rate.

Image credit: Mark Rober.

The computer signals the location to an Arduino-compatible board, which in turn, signals each motor whether to wind up the fishing line or unwind the spool it is controlling. To achieve this accuracy, regression analysis in MATLAB helps the system refine the positioning of the dartboard up to 100 times during its 0.4-second flight.

Check out the full video:

Yes, the system does require a specialized dart. There’s also an “evil twin dart” which moves the dartboard in the opposite direction of the calculated trajectory. That dart is perfect for your opponent when you really want to beat them at darts. It’s also the perfect dart to hand over to Jimmy Kimmel on live TV, which is exactly what Mark Rober did!

If you’d like to see other MATLAB/Arduino-based projects, check out MAKERZONE.

Add A Comment

What is 3 + 5?

Preview: hide