Inspiration

The Ukrainian conflict and the idea of making a missile defense system.

What it does

Tracks a falling balloon through the air using opencv. Masking out all other objects that are not the same color as the balloon and drawing a moment around the balloon and using that to determine its center. A linear regression was ran to predict the path of the balloon which is then popped by a modified nerf bullet shot out of a flywheel based turret.

How we built it

Most of the hardware for the turret was 3D printed. We used Python's OpenCV module for the object detection. Through HSV filtering we were able to obtain an accurate outline of each target, from there we calculated the X and Y moments to find the approximate center of the target. We then created an algorithm built around a moving linear regression with filtered kinematic values to predict the position and time of the target. C++ and PySerial was then used with an Arduino to control the servos and motors on the turret.

Challenges we ran into

One of the biggest challenges we ran into was finding the depth of the balloon. To solve this we were able to measure the pixels/in of the plane for which we dropped the ball and used this value to get a depth approximation of the balloon. Additionally, we ran into massive problems with the consistency of the bullet's that we shot. First, we tried 3D printed bullets however these were not top heavy enough despite varying the infill percentage which meant that they wouldn't stay straight as they flew and therefore could not pop a balloon consistently. We then moved to using cheap Nerf bullets. However, these were incredibly inconsistent from bullet to bullet so we had to go through extensive testing on a stationary target to pick out around 10 bullets that work well with our sentry turret.

Accomplishments that we're proud of

We are proud of our ball detection algorithm as we're able to filter out essentially all noise to get an accurate reading of where the ball is. Additionally, our regression model to predict the trajectory of the balloon was fairly accurate.

What we learned

We learned several different techniques for finding the distance of an object from our system, like using two different cameras to triangulate the objects position and measuring the pixels per inch of our backdrop so we could estimate the position of our object relative to that, which we could use to convert our digital coordinates into real world measurements.

What's next for BALLOONS

We will look into improving the accuracy of our turret and regression model so we can start hitting the balloons more consistently. Once that is finished, we will need to improve our magazine so it can effectively store and shoot multiple bullets in rapid succession.

Built With

Share this project:

Updates