Ever wanted to play a nice peaceful game of bowling in the comfort of your own home using your intelligent vacuum cleaner and a couple of water bottles? - yep, us too! Introducing ROOMBAlling, the best way to bring the joys of the bowling lane to your living room.

What it does

Our program transforms a typical Microsoft Kinect, some average water bottles, and a Roomba vacuum into a bowling alley. Gather your friends and family to destroy them in your homemade game of bowling, it's time to ROOMBAll!

How we built it

The project had primarily three elements: the collision detection with the pins, the control of the Roomba, and the translation of real time movement into animation.

The collision detection was done using Processing (a visual language for Java) and the Kinect. We Jerry-Rigged the top of some typical Kirkland water bottles in order for them to be easily detected by our hoisted Kinect camera; the software program then runs optical image/object recognition to determine where the Roomba is and how many water bottles fall down on any given turn. The way the data is transferred will be discussed later.

The Roomba itself is controlled by utilizing the pycreate2 library. The collision sensors built into the Roomba allow the user to kick/interact with it; this detection allows the user to lock in the location and angle at which the Roomba will be shot into the pins.

The translation of realtime into animation was completely created using CSS and javascript. With some sick editing skills, we are able to show amazing strike, spare, and pin knockdown animation.

All three of these elements were connected / talk to each other using simple websockets and JSON objects. Three separate computers send/receive data to and from a central raspberry pi located on top of the Roomba. This Pi allows for the vehicle to function without being tethered to a physical laptop!

Challenges we ran into

Not too many. Once we figured out the exact technologies we want, all of us split up to do the three distinct elements and came together at the end to tie it all back together!

Accomplishments that we're proud of

The ability to take something like a Roomba and turn it into a controller for a game is simply incredible. The simple gratification from creating something and seeing it work in front of your eyes for the first time makes the entire grueling process worth it!

What we learned

Everything from websockets and CSS animations, to Kinect image recognition and Roomba control was relatively novel to us. We can gladly say that all of us came out of the hackathon a little bit more proficient in a plethora of new libraries that we were eager to tinker with!

What's next for ROOMBAlling

Multiplayer is something we really wanted to implement but didn't have time to. It would've been crazy fun to play your other friends in a full game of bowling in your own house or apartment! Imagine Wii bowling but in real life!

Built With

Share this project: