A few months ago I missed the train to an event, all because I’d lost my keys right before leaving. Instead of getting dressed, I had to spend 10 minutes scampering around to find them (I tend to lose my keys a lot).
This gave me an idea: What if I built a Roomba-like robot for the sole purpose of finding things I’d lost? Now, I could focus on getting ready or combing my hair, while the robot finds what I may be missing. And thus, FindBot was born.
Here’s how it currently looks:
https://drive.google.com/file/d/1zKtddikApgoJ7KG1P2-mTEJL_I64Bp91/view?usp=sharing
*Manually controlled with Bluetooth in the video, as perception is still in development
It took a few (clunky) prototypes to arrive at the current, most refined version.
The current version consists of a frame made with 2020 aluminum extrusions, connected with custom made 3D printed connectors. The electronics lie on a plexiglass platform. Towards the bottom of the rover, four brushed DC motors are connected to the legs of rover (also extrusions), coupled to mecanum wheels.
<aside> 🚧
Version 4: I’m currently building out a new iteration, the biggest change being custom STM32 controller, RPi Perception and Battery Management PCBs!
Check out the Battery Management PCB below:
https://www.notion.so/sohailupdates/Battery-Management-System-and-Power-Distribution-PCB-190902a1e196801c8c48fe93788783f3
</aside>
Before FindBot, I hadn’t ever worked on a large project that wasn’t software. It was refreshing to finally get to use kinematics and physics equations I’d learned way back in first year, but also equally confusing on knowing where to start.
I began by selecting motors. I figured out how much torque I’d need to move in indoor spaces (using a co-efficient of friction for carpets), aiming for a higher than needed torque to be safe (1.5 Nm), and picked a pretty low speed of 390 rpm (or roughly 5km/h) to limit the power consumption of the motors. Based on these values, I found four 12V brushed DC motors, with gearboxes built in to deliver high torque at a lower speed, and an encoder in case I wanted to use it later on.
After selecting a motor, I designed a component to couple the motor to my wheel’s axle. It took a few attempts until I got to something that was strong and reliable enough to use without breaking:
My first mechanical prototype was interesting. The goal was simply to build something that could prove that the motors were strong enough to move a rover forward. Unfortunately, being the first mechanical design, it had many flaws.
It was entirely 3D printed (way too much filament!), was too large for my print-bed - requiring me to glue four pieces together, and most importantly: it didn’t have enough clearance from the ground to move.
<aside> 🎬
Failure #1: Version 1 fails due to lack of clearance + power:
https://drive.google.com/file/d/13G6gMixeTAzocD9f_1rNeGOepiyEO-DS/preview
</aside>