{"id":755,"date":"2017-03-24T11:17:48","date_gmt":"2017-03-24T11:17:48","guid":{"rendered":"https:\/\/blogs.mathworks.com\/headlines\/?p=755"},"modified":"2018-02-16T12:48:03","modified_gmt":"2018-02-16T12:48:03","slug":"maker-hits-a-bullseye-with-a-cool-robotic-dartboard","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/headlines\/2017\/03\/24\/maker-hits-a-bullseye-with-a-cool-robotic-dartboard\/","title":{"rendered":"Maker hits a bullseye with a cool robotic dartboard"},"content":{"rendered":"<p>What do you get when a former NASA engineer combines motion tracking infrared (IR) cameras, 6 stepper motors, fishing line and a dartboard? That\u2019s easy! An awesome maker project: A dartboard that moves to intercept the dart and gives you a bullseye every time.<\/p>\n<p>According to <em>The Verge<\/em>, Mark Rober built a custom dartboard <a href=\"http:\/\/www.theverge.com\/circuitbreaker\/2017\/3\/21\/15011588\/mark-rober-dartboard-automatic-tracking-bullseye-motor-motion-tracking\" target=\"_blank\">\u201c\u2026that can track a dart through the air and perfectly position itself to let the dart hit a bull\u2019s-eye no matter where it\u2019s thrown\u2026\u201d<\/a><\/p>\n<p>Well, it wasn\u2019t <em>that <\/em>easy. It took YouTube personality <a href=\"https:\/\/www.youtube.com\/user\/onemeeeliondollars\" target=\"_blank\">Rober<\/a> over three years to create the Automatic Bullseye Moving dartboard. But it is <em>really<\/em> creative.<\/p>\n<p><div style=\"width: 504px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--d8Wl44RQ--\/c_scale,fl_progressive,q_80,w_800\/uq9dyyy8gxbkzqjsaz69.gif\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"\" src=\"https:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--d8Wl44RQ--\/c_scale,fl_progressive,q_80,w_800\/uq9dyyy8gxbkzqjsaz69.gif\" width=\"494\" height=\"250\" \/><\/a><p class=\"wp-caption-text\">Image credit: YouTUBE\/MarkRober<\/p><\/div><\/p>\n<p>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\u2019s about how long it takes for a dart to travel from your hand to the dartboard if you are standing at the regulation distance.<\/p>\n<h2>Calculating the desired location<\/h2>\n<p>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 \u201cvisual noise\u201d from the surroundings.\u00a0 It turns out, this was helpful when the system was set-up in a less-than-perfectly-lit bar, as well.<\/p>\n<p>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.<\/p>\n<p>\u201cNow that we have the XYZ position of the dart as it travels through the air, we use some <a href=\"https:\/\/www.mathworks.com\/products\/matlab.html\" target=\"_blank\">MATLAB <\/a>code to then predict where it will land,\u201d states Rober. He estimates that it takes 200 ms to calculate the end location of the dart.<\/p>\n<p>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.<\/p>\n<h2>Moving the dartboard to the calculated location<\/h2>\n<p>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.<\/p>\n<p>The board is mounted on two linear sliders, enabling it to move both vertically and horizontally. There are 6 stepper motors used to \u201cpull\u201d the dartboard to the desired location, and that\u2019s 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.<\/p>\n<p><div style=\"width: 455px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/fsmedia.imgix.net\/7c\/d1\/e2\/90\/ab5e\/41d8\/a3cb\/c383ba3bc7af\/dartboardpng.png\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" class=\"\" src=\"https:\/\/fsmedia.imgix.net\/7c\/d1\/e2\/90\/ab5e\/41d8\/a3cb\/c383ba3bc7af\/dartboardpng.png\" width=\"445\" height=\"250\" \/><\/a><p class=\"wp-caption-text\">Image credit: Mark Rober.<\/p><\/div><\/p>\n<p>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, <a href=\"http:\/\/laughingsquid.com\/engineer-mark-rober-builds-a-moving-dartboard-that-allows-you-to-hit-the-bullseye-every-time\/\" target=\"_blank\">regression analysis<\/a> in MATLAB helps the system refine the positioning of the dartboard up to 100 times during its 0.4-second flight.<\/p>\n<h2>Check out the full video:<\/h2>\n<p>Yes, the system does require a specialized dart. There\u2019s also an \u201cevil twin dart\u201d 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&#8217;s also the perfect dart to hand over to Jimmy Kimmel on live TV, which is exactly what Mark Rober did!<\/p>\n<p><iframe loading=\"lazy\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/MHTizZ_XcUM?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>If you\u2019d like to see other <a href=\"https:\/\/www.mathworks.com\/products\/matlab-home.html\" target=\"_blank\">MATLAB<\/a>\/Arduino-based projects, check out the <a title=\"https:\/\/www.mathworks.com\/matlabcentral\/maker.html (link no longer works)\" target=\"_blank\">MATLAB Maker Community<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/i.kinja-img.com\/gawker-media\/image\/upload\/s--d8Wl44RQ--\/c_scale,fl_progressive,q_80,w_800\/uq9dyyy8gxbkzqjsaz69.gif\" onError=\"this.style.display ='none';\" \/><\/div>\n<p>What do you get when a former NASA engineer combines motion tracking infrared (IR) cameras, 6 stepper motors, fishing line and a dartboard? That\u2019s easy! An awesome maker project: A dartboard that&#8230; <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/headlines\/2017\/03\/24\/maker-hits-a-bullseye-with-a-cool-robotic-dartboard\/\">read more >><\/a><\/p>\n","protected":false},"author":138,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/posts\/755"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/comments?post=755"}],"version-history":[{"count":2,"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/posts\/755\/revisions"}],"predecessor-version":[{"id":1332,"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/posts\/755\/revisions\/1332"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/media?parent=755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/categories?post=755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/headlines\/wp-json\/wp\/v2\/tags?post=755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}