Driven by the desire to get that perfect bullseye after each shot, even with a moving target, is what led YouTuber Shane Wighton (who goes by Stuff Made Here) to create one of the world's first archery aimbots. In a video game, an aimbot is a tool that lets players have a computer automatically adjust their aim to hit a target and therefore lessen the amount of skill required. By using this robotic device, Wighton wanted a way to more effectively compete against his archer wife without needing to practice for hours on end.
At first, the auto-aiming bow was created with a recurve bow at its heart. For the mount, Wighton built a custom-designed/fabricated sleeve that fits around the user's arm and provides a stable attachment point. Just beyond the sleeve is a stepper motor that moves the bow vertically to tilt it up or down, along with an additional stepper motor that allows for horizontal aiming on its rack and pinion system. Both of these motors are controlled by an Adafruit board running CircuitPython and a driver board that provides the current.
The whole point of an auto-aiming bow is to point it at something, which means the computer controlling everything needs to know exactly where the target is in relation to the bow. To accomplish this task, Wighton set up a series of eight OptiTrack cameras that visually see where these tiny tracking balls are and run a type of triangulation algorithm to pinpoint their position within 3D space. New information about the target and bow is sent to the host computer every 3ms, thus letting the bow have the most up-to-date data possible.
Some initial tests were run with the first iteration of the system, and although each component worked well enough on its own, the combination of everything together failed dramatically. Arrows would veer way off course and were never able to hit the target with any meaningful level of accuracy.
In response to these troubles, Wighton was forced to essentially start working on the code from scratch in hopes of catching whatever elusive bug(s) might be causing the problems. Additionally, Wighton was able to view the arrow being fired in slow motion and discovered it has a large wobble due to the recurve bow's nature, so he swapped it out for a compound bow instead. With the arrow flying in the correct direction now, he moved onto aiming at moving targets.
A target that is flying through the air is much harder to hit than a stationary one, which made this task extra challenging. The code that was created for this purpose essentially creates a virtual path on which the target is moving and extrapolates it on a parabolic curve. Combing this information along with how fast the target and arrow are moving yields the exact point where and when the arrow should be fired. Wighton had to add another piece of equipment in the form of an automatic target launcher to prevent his wife from getting tired of throwing paper discs all the time.
For testing, Wighton began with a simple challenge of tossing a regular target in the air and having the auto-aiming bow intercept it mid-air, which it did successfully several times. Next, he tasked the device with an accuracy measurement, as every arrow fired must hit the bullseye and form a tight grouping. Once this trial was done, the final hurdle to overcome was hitting a Lego "apple" off of a Minifigure's head that measured around 3mm wide. After a couple of failed attempts, the auto-aim was able to hit the tiny area.