For a few years I’ve wanted to build a robot lawnmower. Not for any practical reason (our lawn is not big enough to demand it), mostly just because I like robots. I’ve seen a few robot lawnmowers, but for the most part they are large and kind of like remote-control riding mowers. What I have in mind is something more compact. Since about a year after we owned our house we’ve used a “reel” mower. We started out with a typical gas mower, but the yard was is small that it was overkill and it took up a lot of space in the garage. It also requires fuel, oil and a lot more maintenance than the reel mower does. Plus, reel mowers just look cooler, all those spinning parts and blades and such, anyway… This led me to design a robot lawnmower around the reel mower instead of the “deck” or riding mower designs more common today. The design is rather simple: take an existing reel mower, remove the handle and add two motors (one to drive each wheel). This provides both drive and steering, tank-style. Having taken-apart our mowers several times for cleaning, sharpening, etc. I noticed that the inside the wheel is a gear which drives a pinion gear that in turn spins the reel. This makes it very easy to interface a drive motor to the wheel by simply creating another pinion gear and attach it to an electric motor. Looking at this particular mower (a Scotts Classic 20SG), there appears to be enough room to mount a suitable motor to a flange which protects the gear-side of the wheel from the outside world, so this approach is at least theoretically possible. The first job is to model a suitable drive gear. For this I turn to OpenSCAD. There is a gear library which I’ve used before and works very well for creating bespoke gears. A better engineer could probably do this in one take, but for me an iterative approach is preferred. First, I’ll try to model a copy of the original gear. Then, when I know I can make a working copy, I can tweak it to match the motor/gear ratio/etc. [caption id=“attachment_1891” align=“aligncenter” width=“3264”] Not quite…[/caption] The downside to the iterative approach is that it requires running a print off for each variation, which takes time. I don’t mind this though because I have other problems to solve while I’m waiting for the printer. [caption id=“attachment_1885” align=“aligncenter” width=“2448”] Once more around the horn…[/caption] Once a suitable drive gear has been created ,a motor needs to be selected. There’s a lot of things to consider when selecting a motor for a robot, but my starting point is almost always dependent on what I have on-hand. Today what comes to mind are a pair of RS-540 motors that currently live inside another robot ( Sux0rz ). [caption id=“attachment_1888” align=“aligncenter” width=“3264”] Much better![/caption] It only took two tries to get a gear that looks like it will do the job. The next task is to render a version that can mate with the selected motor, and decide on a gear ratio. I’m tempted to cut the tooth-count of the drive gear down as low as possible to maximize the torque available. These motors seem to prefer high-speed operation, and they will be moving a lot of metal so I’m willing to sacrifice top speed to ensure there’s enough power to drive all the moving parts. Along with the practical limits on how few teeth the gear can have (and still function properly), there is another mechanical limit based on the position of the motor on the flange that covers the gear side of the wheel. The flange has a bevel (or flare?), and the motor will need to be mounted in such a way that it mounts against the flat, un-flared part of this flange. This puts another limit on how small the drive gear can be. Some additional experimentation may be in order to determine the balance between these constraints. In the next installment I’ll be iterating on a gear design that meets these criteria (along with mating to the selected motors) and exploring power & control systems. As always, design files and code are open-source and can be found on Github here: https://github.com/jjg/reelbot.