This is part of TigerBug, a robot design I am working on for use at RIT for research and as a fundraising tool . Take a look at the project hub for more progress on different components of this project.
Swarm robots are tiny. really tiny. They’re intended to be as low-cost as possible, work in large numbers, and are typically used to mimic microscopic (or at least sub-human scale) organisms. This makes designing a complex robot that is also cheap, that is Also able to fit in the palm of your hand a difficult task. However, that was the task that I was presented with, and I think I’ve done a half decent job:

I decided initially on a few design features that would help with cutting costs:
- Basing the mechanical design robot around a PCB removes the need for a second mechanical structure (1/16″ boards are pretty stiff).
- making every other component 3D printed removes the need to order mechanical parts (like wheels, etc.), and makes manufacturing simpler (1 print = 1 robot, nothing else required).
- avoid redundant fasteners whenever possible, make use of snap/friction fit.
And a few considerations to keep the size down:
- leave as much space on the PCB as possible. That allow for a smaller PCB for the components we’ve selected, and thus a smaller overall robot
- think Vertically: stack components to save space.
And finally, considerations to make the robot perform as intended:
- mount motors/wheels such that ground-reflecting sensors are within their distance limits (in short, keep the PCB within 5mm of the ground), but make sure it is able to overcome small obstacles.
- use flexible features to interface with moving components, reducing the amount of hardware required. (mostly relating to the obstacle detection sensors)
I started my design roughly based on the EvalBot from Texas Instruments, i.e. a circular differential drive robot with the motors and wheels located around the center of mass. As the limiting factor in this design is the distance between the back ends of the two gear-motors used to drive the wheels, I first modeled the motor we intended to use (at this time a small worm gear motor) and created a PCB placeholder to match. I placed the motors as close together as possible , as we were aiming for the smallest possible robot footprint (this makes the board cost less, makes the robot more maneuverable, and allows us to make more of them with our small budget).
Designing the parts around the PCB ended up being a pretty difficult task. I was not entirely following my goals at this point in the process and ended up with a bunch of spread out parts which, while appearing to all work together, really did not perform well. Due to my placement of parts above and below the robot’s PCB, this left very little space on the board for components, which I knew would cause design headaches further down the road. This design also required 5 bolts for each side of the robot, driving up cost. the placement of the PCB at the top of the robot prevented it from working well with the Infrared distance sensors we intended to use for object detection and communication.

It’s tough to come to the realization that the design you spent several days perfecting was ultimately too flawed to work with. After multiple component redesigns, I began to realize that every modification ended up making the robot more and more complex. Sometimes it’s best to just start over from scratch. And at this point, I’m Glad I did.


The motor mounts were redesigned to work with a new gearbox, and optimized to be printed with minimal support material, and act as fastening nuts for the entire robot. The motor was positioned such that most of the part supporting it is floating above the board rather than pressed against it. This provides significantly more space on the PCB to be used for components.I also added parts to properly hold the wheel position sensors, and shrouds for the various light sensors on board.
Three m3 threaded holes mount the motor, PCB, top cover, bumpers, and all other components on each side of the chassis . Each side of tigerbug is symmetric about the robot’s Y axis, or direction of travel, in order to reduce the number of unique parts required. however, the number of parts required was not optimized, as I aimed instead to make each part as simple to 3D print as possible.
The design makes use of flexible parts to actuate the buttons on the PCB for obstacle avoidance, but they have been refined to be more sensitive and fit within the more cramped robot body.

Tigerbug is now ready to be printed, and it’s time to move on to the “placeholder” in the design, the printed circuit board and the brains of the robot. As well as figure out what other sort of circuitry this ‘bot is going to require.