Aiming High

Niklas Bommersbach built a dart-throwing robot to level the playing field and spare him the embarrassment of being beaten by his friends.

Nick Bild
2 years agoRobotics
Humans are no match for this dart playing robot (📷: N. Bommersbach)

After a long week, there are few better ways to blow off some steam and have a good time than to get together with friends at the local pub for a game of darts. But if your friends happen to be far better at the game than you are, it can be a bit embarrassing. As the defeats, and the taunts, continue to pile up, the game can start to lose its charm and leave you wanting to hide under the table to make the pain stop.

This is something that was experienced by YouTuber Niklas Bommersbach from time to time. But while Bommersbach may not be a world-class dart thrower, he is pretty amazing when it comes to designing robots. Taking inspiration from Mark Rober’s dart playing robot, Bommersbach decided to build his own version to take on his friends. But Rober’s dartboard moved to meet the thrown dart and guarantee a bullseye, which Bommersbach saw as cheating.

Bommersbach did not see a robot that throws the dart for you as cheating, you know, for reasons, so he set out to build such a system. Having previously designed a beer pong playing robot, which is already equipped to make precision throws, Bommersbach decided to modify it for this new role.

The robot consists of a spinning arm that is attached to a pair of legs. As it had been designed, there was an alignment issue — the attachment points of the arm’s axis of rotation did not align perfectly on each leg. This resulted in a bit of wobbling that would make the accuracy of a dart throwing robot unacceptable. So first, a fix called the Misaligned Axes Wobbling Alignment Device (MAWAD) was developed. It consisted of a pair of magnetic plates fastened together with steel ball bearings. Using the MAWAD to make the axis attachment on one side allowed for proper alignment without wobbling. A linear rail and motor were also added to allow for horizontal movement of the device.

After making these, and a few other, enhancements, the dart thrower was tested, but found to have issues with repeatability. Bommersbach found that these problems had two primary causes — timing and release speed. An Arduino Uno was responsible for calculating the arm position and speed, acceleration ramps for the stepper motors, stepping the main motor, and driving the release servo. Since all of these tasks were performed sequentially, some variable amount of time passed between when the arm was at the correct angle and when the dart was actually released. The release speed of the dart was also much too slow, owing to the servo that was used. This resulted in a lengthy period of uncertainty where the dart was not quite being held or released, and could be thrown at an unpredictable time.

These problems were addressed by adding a second Arduino with a magnetic sensor that was triggered when it was in close proximity to a magnet that signaled that the arm was at the proper angle. This Aduino then triggered the release motor. The slow servo was also replaced with a very fast stepper and belt arrangement that made the release too fast to be seen by the naked eye.

To wrap things up, Bommersbach built a computer vision-based system that used an object detection algorithm to detect where darts hit the dartboard for scoring. This system was also leveraged to determine the optimal arm rotation speed for the most accurate throws. Finally, the linear axis was incorporated into the system to allow the robot to target any position on the dartboard.

The completed device was tested out in a game against Bommersbach’s friends. It had no trouble beating human opponents, sparing Bommersbach the shame of being badly beaten — if he can take solace in knowing that it was a robot that actually earned the victory, that is.

It was noted that the robot was extremely sensitive to environmental factors, which could be a challenge if the robot were to make a road trip. Even a change in the room’s temperature could throw off the system’s accuracy. But in any case, this build is a very fun solution to Bommersbach’s problem, and the video is well worth a watch.

Nick Bild
R&D, creativity, and building the next big thing you never knew you wanted are my specialties.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles