Over lockdown, we played a board games together. One of our surprise favorites was Robo Rally, a game where players "program" robots to navigate to check points and avoid each other. We wanted to see if there was a way to bring that same level of fun into a safe, real-world environment, and allow for huddling around the table with friends from the comfort and safety of one's own home.

What it does

Our project allows a player to use our website to play a game about robots with real robots! Watch your robot navigate the gameboard on the screen and then watch your robot follow those same commands in real life as they drive about our ultra-sized playing area, competing against each other. Control your robot via a handy web application for remote play possibilities.

How I built it

We broke our project into three key components. The website, the host micro-controller, and the mini-bots playing the game. For both our host and the bots we used an ESP-32 as the microcontroller since it has inbuilt WiFi and connectivity capabilities. For the connectivity side of things, the ESP-32s have a mesh networking feature built-in that allow them to pass data between themselves, which we used for a master/slave set-up to act as an interface between the robots and the Internet.

Challenges I ran into

Building several bots this small was a first for us, so we had several failed 3D prints before finally getting something that worked. Also, this was our first project tackling communication between JavaScript and microcontrollers, our first project regarding web development, our first project that involved a proper journey into graph theory, and our first hardware hackathon during these crazy times. Having all these new things, plus a tendency to bite off a little more than we can chew, made this project exceptionally difficult. A stretch goal of ours was to utilize the RGB sensors we successfully installed, implemented, and calibrated to determine the relative location of each of the robots on the field, which is just about done but not tested.

Accomplishments that I'm proud of

Creating two miniature, self-contained robots ready for anything is pretty cool. Being able to control them from the web is even cooler. Plus, this project contained a little bit of everything. Product development, app development, web development, manufacturing, iterative design, circuit design, all these things were learned and/or honed over this hackathon, which we find pretty impressive.

What I learned

Setting up mesh networks for data transfer is pretty easy once you know what you're doing. Never underestimate the awesome power of cable management and a thoroughly though-out design. Always stop and ask yourself if what you're working on is crucial to the development of the project.

What's next for Robot Rumble

Ideally, Robot Rumble was designed as a framework for games with robots instead of people. We got most of the way there during GrizzHacks, but there is still a ways to go. Developing more robust robots, strengthening the communication protocol, and enriching the web app experience are all things on our to-do lists.

Share this project: