Engineering a Better (Snake) Vacuum
March 14th, 2025

The Problem with Roombas
Much like a fat man’s hand trying to reach the bottom of a Pringles can, a robot vacuum cleaner’s mobility is limited by its large volume. Most robot vacuums have difficulty cleaning tight gaps between furniture and are often unable to move under furniture with low clearance. These are problems that our professor was facing with his home Roomba. He tasked the class with designing a robot vacuum that could overcome these obstacles.

Snakes, Why Did it Have to Be Snakes?
Our professor proposed the idea to design a flexible robot vacuum which features a vacuum tube similar to what is found on Shop-Vac’s. Essentially, he wanted to combine the automatic driving and sweeping capabilities of traditional robot vacuum cleaners with the flexibility of a Shop-Vac. This is what gave rise to the idea of a snake-robot vacuum. Our team was assigned the snake module of the vacuum, while other teams were tasked with designing either the vacuum or drive modules.
The big advantage that snake robots provide is that they (1) can wrap themselves into tight spaces and (2) are low profile enough to reach under low clearance furniture. It turns out that snake robots already exsist and fall under the much broader scope of continuum robots. Continuum robots are robots characterized by their flexible structure, effectively giving the robot an infinite number of joints. The joints aren’t discrete but rather continuous, thus giving these types of robots the name “continuum” robots.
Ideation
When one arrives at the common hurdle in life that is designing a robot snake-vacuum, the first most obvious question that crosses their mind is “How do I control this thing?”. At least, that’s the question that my team and I asked ourselves in the ideation phase of this project. We brainstormed different control methods like strings, pneumatics, motors, actuators, and so on. Our team eventually decided to pursue a primarily string-controlled mechanism.

Specifically, we would have a flexible compression string anchored to multiple points on the vacuum hose. The base of the string would be wound around a pulley driven by a motor. This would be mirrored with another string-pulley-motor system on the other side of the vacuum hose. Turning one of these pulleys would add tension to the string, forcing the vacuum hose to bend in that direction. The flexible compression spring would wrap the vacuum hose to return the hose straight when tension from the string is released.

Prototyping
Our professor repeated throughout the course that “If you aren’t iterating, you’re doing something wrong”. I always found this phrase odd, since our iteration was forced due to what kept going wrong. Jokes aside, our team went through many iterations before we had a prototype that met all of our design criteria. Rather than covering every single iteration made, I’m going to cover three iterations that highlight our design process.
#1 - Keep it Simple, Stupid
This first design is our idea at its most basic. The goal for this design was to keep the robot as simple as possible and avoid unnecessary complexity that could lead to failure. A base houses the motors, gears (1:3 ratio), and pulleys. It also anchors the base of the vacuum hose and spring. A nozzle at the end of the hose applies the vacuuming force parallel to the ground.

#2 - MORE POWER!
The changes in the second major iteration we're based off of the testing we did with our first hardware prototype. We found through testing that the previous gear ratio didn’t provide enough torque to the motors to bend the spring more than ~20 degrees in either direction. This new design increases the gear ratio to 1:5. We also removed material from the base to decrease its profile and reduce on manufacturing time. Because the gears are 3D printed plastic, the tolerances of the gear teeth are not great. This caused the gears to slip often.

#3 - Springs Are So Out, Linkages Are So In
Even after increasing the gear ratio to the point of tooth slippage, the motors still didn’t carry enough torque to bend the spring a significant amount. Our team decided to ditch the spring and utilize a linkage system to guide the vacuum hose. Removing the spring would remove most of the resistance against the motors and cut the required torque to bend the snake to a negligible amount. Because high torque was no longer needed, we returned the gear train to its original 1:3 ratio, thereby removing the tooth slippage that our second prototype experienced. The GIF below shows this design working with 180 degrees of motion.



Electronics
The electronics are really simple. An Arduino Uno controls two stepper motor driver boards, which drive each motor. Not pictured in the image is the 12V power supply which sends power to the Arduino and stepper motors.

Concluding Thoughts
Our final hardware design successfully met our team’s design requirements. The flexible hose effectively extended the robot’s reach and allowed the vacuum to sweep in crowded places or under low furniture. Although this snake-vacuum was a good proof of concept, it still needs work. Firstly, our team used 3D printing to manufacture all of our custom parts with PLA. Components like the gears may benefit from being machined out of metal to help with tolerancing and strength. Components like the base or linkages may benefit from being injection molded to increase part longevity. The base of the snake-vacuum would also need to be adapted to fit with the vacuum and drive modules. Our team was unable to make these changes due to time constraints. I’d like to see this idea taken further in the future.
Footnotes
- Often these robots don’t have an infinite backbone joint, but instead have a number of joints packed closely enough together that they effectively control like they have infinite joints.
Table of Contents