I suck at darts, but I'm good at engineering which means...
I'm actually really good at darts.
Most of the projects I've built for my YouTube channel
take a month or two to pull off,
But I've been working on this beast
with my former NASA co-worker John for over 3 freaking years.
And here she finally is.
So it's fairly self-explanatory, but you throw a dart,
and as long as your initial throw is somewhere within this diameter or so,
the dart board helps out a little bit.
And what's cool, is if you use this dart,
it will make you the worlds best dart player,
because you get a bullseye nearly every time,
and even if you don't it's really close.
But if you use this dart,
it makes you the worlds worst dart player
because it calculates the initial trajectory,
and then moves the board in the exact opposite direction.
So eventually we took this thing to a bar
to see if it would work in the wild
but before we get to that, let's talk about how it actually works.
Fundamentally, there are two main parts to this system.
First, you need to somehow predict where a dart is going to land,
with a typical throw from regulation distance,
and you have about 200 milliseconds to do that.
And then second, you need to somehow move the board
to that predicted location,
and you have about another 200 milliseconds to do that.
So let's start with the first part, about how we predict where the dart is going to land.
So the real secret here is that our dart has these tiny retroreflectors on it,
And then we have a VICON motion capture system.
As humans, we can see in 3D because we have 2 eyes,
And our brain calculates the difference between the two images,
and then tells us how far or close things are.
This is why if you close one eye,
you instantly lose that depth perception.
So that's basically what we're doing here,
Except we have 6 "eyes" all around the room,
And each of these "eyes" or cameras can take a 4K resolution picture,
260 times per second.
But since it's hard to visually separate something so small,
moving so fast in front of a busy background,
they actually use IR.
So they blast out IR from all these IR LEDs
and then it hits the retroreflectors, and then bounces back to the lens.
So when I wave the dart around like this,
this is what you and I see,
but the motion capture system just sees a solitary dart, floating around.
One of the reasons this board took us so long to build
was that for the first 2 years, we were trying to make our own motion capture systems,
so we had our own cameras,
and one of these awesome NVIDIA TX1 boards which is basically like a Raspberry Pi,
on Russian steroids.
But it turns out, it's a super complex problem to solve, and the VICON system was just turn key.
So now that we have the XYZ position of the dart as it travels through the air,
we used some MATLAB code to then predict, where it will land.
And the trick here is that anything you throw into the air (neglecting air resistance),
will travel in a perfect parabola.
Even something you wouldn't think of like a high jumper.
If you track their center of mass, it actually follows a perfect parabola shape.
So we used our understanding of parabolas, and from a side view,
we used that to predict the final up and down position of the board.
And then to predict the final left right position of the board, we know from a bottom view
a dart will follow a linear path.
So we used good old y = mx + b, and the y intercept
or b in this case, tells you how to move it left and right for the final position.
So now that we know where to move, let's talk about how we actually do it.
So the board itself is on two linear sliders which allows it to translate to any specific location.
So that provides the track on where to move, but the engine would be these 6 stepper motors
you can see from the front.
Each motor has a spool and then some fishing line, and they all attach to the center of the back of the board right here.
Once we have the predicted bullseye spot, the computer does the trigonometry,
and then sends the commands over here to the motors.
So to move to the left, it would say like "you need to spin up, but you need to unspin at the same rate".
Now you can see in the back the computer signal comes into this Arduino compatible board here,
and then you got some preamps here that bump up the voltage signal
to the 6 individual stepper motor controllers,
and these stepper motor drivers take the moving instructions,
and combine it with the power from the plug in the wall,
after it goes through this AC/DC power converter
and then finally a bunch of voltage pulses from the motor controller cause the motor to take small steps and either wind up, or wind down.
Now keep in mind, all of this happens in less than half a second,
and allows us to hit our sub millimeter precision in our board positioning.
And we don't just make one guess on the final position of the board,
we update and refine that guess anywhere from 10 to 100 times,
which is why sometimes you sort of see the board jitter into the final position.
So we took it to a bar to see what people thought.
In general we found if you're really drunk, you get so pumped at your new abilities,
if not slightly confused.
*I used to suck at darts!*