Most members of the team are part of the fraternity Sigma Phi Epsilon, and they all have an annual Nerf gun war. We thought it would be interesting to add an extra element of challenge - an automated turret to shoot at enemies during battle.

What it does

Our project uses a Kinect sensor to detect the location of humans, and will automatically aim and fire at them when they are detected.

How we built it

There are four main parts to this project. The first, and most visible, is the turret itself. This turret is built with a wooden base and three 80-20 struts, which are also supported by more 80-20 at the top. Two servo motors are used to control both pitch and yaw of our aim.

The second major part of the build is the motion detection and auto aiming via a Microsoft Kinect and a Raspberry Pi. Using OpenCV and Freenect, we analyze the depth map and look for large changes from frame to frame. When we find one that matches a few criteria such as general location, direction of motion, and size, we aim the turret and shoot!

The third section is the shooter itself. It was built with a mixture of wood, screws, epoxy, and old Nerf parts. It is arguably one of the most important parts of this device, as a firing mechanism is fairly integral to any form of gun. Currently it is a single-fire mechanism, though we hope to allow for auto-reloading in the future. This part has 3 sub-components; the barrel, the propulsion system, and the trigger finger. The propulsion system is created from nerf gun parts altered to increase pressure, but involves two concentric parts that are pushed together by a spring to create a sudden air pressure difference to launch the dart. This part is pulled back, compressing the spring, until it is held by the trigger finger, which is a servo converted into a pseudo linear actuator. The dart is then put in the barrel which is then air tight save for a hole connecting it to the propulsion system. Now the trigger finger can be pulled back by running the servo. This releases the spring, suddenly compressing air behind the dart and launching it with the force.

The fourth major portion of this project looks simple on the outside, but took approximately 7 hours to build. We were not allowed to damage or modify the kinect we were using, and we didn't have any Kinect->USB adapter cables. While these cables are commercially available and fairly cheap, we were not able to procure any. So, we had to make one. They were built by disassembling two USB A male cables, removing the metal shrouds, filing down the plastic, forming of a piece of solder, addition of a 9th contact, and final epoxying to hold everything together.

Challenges we ran into

The firing mechanism has gone through a few iterations. Our original plan to use pressurized helium to shoot was thwarted by a lack of pressurized helium. After that, we moved on to a spring powered mechanism, but this couldn't effectively transfer the power to the darts. We finally settled on retrofitting a Nerf plunger into our own holding mechanism.

Another major challenge was that our 3D prints and laser cuts took a long time to be finished, slowing down how quickly we could iterate our design. There were a few times when we couldn't do much because we were waiting for parts to be manufactured.

We attempted to 3D print smooth pulleys in order add tension into the system. The issue, however, is that unlike those with teeth, these iterations of pulleys are more fragile due to the lack of material support contributed by the teeth.

Accomplishments that we're proud of

  • Connecting to the Kinect without a commercial adapter cable, and without damaging the Kinect itself.
  • Building a Nerf dart firing mechanism.
  • Using OpenCV on a Raspberry Pi
  • Quality of frame

What's next for GNAT

  • Make all pulleys sturdier so that we can increase tension, and with that repeat-ability.
  • Full integration of
  • Lots of shooter characterization testing, so that we can hit an arbitrary point in 3D space.

Built With

Share this project: