We wanted to the new generation of kids to be active through our game, as well as exploring the field of augmented reality, as none of us have worked with it before.
What it does
By projecting a soccer net onto a surface and providing targets to shoot at, as well as a variety of game modes, this program allows for the user to up their soccer shooting proficiency at all skill levels through this interactive, Augmented Reality project.
How we built it
To create this project, we used Python, the OpenCV library for Python, Libfreenect2 - a software to support the Microsoft Kinect v2, the Kinect v2 itself, as well as a projector. All of our programming was done using the Python language, with most of our code relying on the OpenCV library. This library allows us to draw the targets on the background and track motion using the Kinect, for which we needed the Libfreenect2 drivers to connect to the computer. By using the depth perception functionality of the Kinect, we were able to pinpoint when and where the ball hit the wall in order to draw a circle around it. By comparing the location of this circle to that of the printed target, our program decides whether it was a hit or not. Finally, we outputted our background and any graphical changes using a projector connected to the computer.
Challenges we ran into
One of the biggest obstacles that we ran into was that both Jeff and Matt had minimal experience working with Python, especially the OpenCV libraries that were necessary for this project. So, both of these team members had to learn as they worked on the project, consulting the internet, or their other teammate, Kellen. Another major challenge we faced was getting the Kinect to initially connect with the computer. After numerous tries, the proper drivers for Windows would not work, so we had to make a change to Ubuntu. Then, even though the drivers worked, the code for utilizing the Kinect efficiently was the most difficult part of the coding.
Accomplishments that we're proud of
Getting two team members who had little experience in a language and no experience in any of its major libraries up to speed in a very short amount of time.
Why it matters
We believe that being active is an important part of a healthy life. By creating advanced games that draw kids towards physical activity, we think we can make the world a better place. This game, though created as a soccer game, could easily be adapted for baseball, football, frisbee, tennis, racquetball, badminton, and more! It would be a cheap and fun introduction to K-12 gyms across the nation.
What we learned
Matt and Jeff became proficient in both the Python Language and its OpenCV library, and Kellen learned the optimal way to control and read the data outputted from the Kinect and about perspective warping.
What's next for SoccAR StARs
Expanding our game library to include other sports, like football, basketball and baseball.