I’m Building an Autonomous Lawn Mower and Cutting Grass Is Harder Than You Think
My overgrown lawn poses challenges that I’m sick of facing single-handedly. Time to get a robot involved.
Lawn is a curious thing, and the modern concept as we know it developed in such a broad and distributed way that covering its history here would be an article in itself. Regardless, it's a part of virtually every suburban yard, and maintaining a neat lawn is key to keeping yard areas both pretty and usable. Australia's brutal conditions have left me tired of the grind, however, and I have had enough; it is time to enlist robotic help.
Any sane person sick of mowing would just buy an off-the-shelf autonomous mower and be done with it. However, if you've had any experience with the hardware or their vacuuming cousins, you'll know its performance often leaves something to be desired. Besides, I'm something of a roboticist myself, and I much prefer to build my own hardware. That way, when it sucks, I at least have someone to blame—as well as the opportunity to do something about it.
If you dig robot lawn mowers, watch along with the build below!
Rise of the Machines
It just so happens that I've been living with a recently unemployed robot who has been looking for a new mission in life. I created SOLARBOI over a period from 2016 to 2021. Originally designed with the goal of exploring the Australian outback, he is kitted out with a 4G cellular data connection, big antennas, and a solar panel for power. He's capable of roaming for days, charging up from the sun, and driving onwards in the dead of night. That is, when he's not getting stuck in ditches, rescued by publicans, or, during one unfortunate misadventure, having his gearbox fall to bits.
The SOLARBOI project was, in some ways, spawned from my imagination as a young child. I loved radio control cars and had once seen one controlled by a computer. However, the problem was that you couldn't drive the car beyond your line of sight; once the car left the room, you had no idea where it was going. I figured at the time that a camera would solve that problem, letting you go exploring with the RC car. Of course, such a thing was difficult with the technology of the 1990s.
Fast forward several decades and I realized that with the benefit of a 4G data connection and a small camera, it was now possible to build a robot that could roam the world while you watched its progress via a streaming video feed over the internet. Add on a solar panel, and you now have a robot that can, in theory, roam endlessly wherever there's a 4G data signal and sufficient sunlight.
I thusly tasked SOLARBOI with the challenge of roaming through Australian country towns, where I figured he'd get plentiful solar power and would be less likely to be disturbed as compared to a heavily-trafficked pedestrian area in a city or the suburbs. I was able to run several missions over a period of a couple of years, often sending out SOLARBOI for a few days at a time and roaming as far as possible before we got stuck, broke something, or simply hit up against the edges of coverage of the mobile phone network.
It was great fun, and SOLARBOI quickly won himself many adoring fans, some of whom contributed their own technical expertise to the project. However, after a time, I had to end his missions for my own sanity. Developing and improving the robot was becoming a full-time job. Worse, leaving a robot unattended in the outback all day was incredibly stressful; missions would go on long until the wee hours, and I would then spend most of the next day panicking that it would be stolen, destroyed, or simply fail to wake up. We'd had fun, but after plenty of exciting missions, it was time to retire.
Over the course of the project, though, I developed SOLARBOI into a (relatively) reliable platform, capable of getting about on sealed surfaces and scrub with aplomb, even if he is built on the battered and tired shell of an old four-wheel-drive RadioShack RC car. One day, he'll get a brother built on a far more capable chassis, but that would still leave me with a whole robot with nothing to do. But now that SOLARBOI has been retired from active outback duty, he will take on a new job—as Mowerboi.
The idea is simple: Fit Mowerboi with a cutting blade and program him to follow GPS waypoints so he can trim the lawn more regularly than I care to. It's an important job; letting the grass get too long tends to lead to a patchy, inconsistent lawn that leaves plenty of space for weeds to invade. In Australia, where weeds like bindi scatter incredibly painful thorns and grow at a furious pace, maintaining a strong lawn is vital to comfort at home. Those thorns get everywhere.
I've already coded basic autonomy into Mowerboi, so he's capable of heading from one GPS waypoint to another. However, there's no obstacle avoidance code, and for yard-scale operations, standard GPS isn't quite good enough. With accuracy only down to a few meters, it's virtually impossible to stop our robot friend from hitting fences on occasion. I've got some plans to tackle that problem though, and I think I can get him buzzing about the yard without too many problems.
Instead, my initial concern is with cutting the grass itself. Thus, I had to figure out how to build the mower part of my autonomous mower. In the meantime, I can drive the robot manually around on the lawn via a computer in a similar way to a radio-control car while I test my grass-cutting apparatus.
Time to Build
There are two ways to go about engineering something new. You can make a few guesses in your head, do a couple of sketches, and simply build what you think will work. Then, you find out what doesn't work and iterate from there. Alternatively, you can spend a great deal of time getting scientific about things, running models and calculations, and trying to figure it all out on paper before you begin. For big projects that push the limits of engineering—like if you're building the SR-71 Blackbird—this is a necessity. It's simply not practical to just "have a go" at building it and see what happens. However, for a little mower project, the "build it and see" approach is perfect, and, most importantly, more fun.
When I thought of mowing on a small scale, my first thought went to whipper snippers—or line trimmers in American parlance. These manage to cut grass with a little bit of plastic line, spinning at some sufficiently great speed as to force the line to become rigid.
I presumed that I could achieve similarly good results by 3D-printing a simple plastic blade of five inches in diameter and popping it on a motor on the front of my robot. On the bench, this setup performed admirably, spinning at a healthy 11,000 rpm and chopping away at grass rather nicely.
However, when tested in the field, results were less positive. My grass is very thick and very tall, up to a foot high in the worst parts. Plus, Mowerboi moves forward fairly quickly, too fast for the blade to keep up with the grass-cutting. Obviously, having a robot mower regularly keeping the grass trimmed low will curb this problem, but I want a robot mower that can handle the tough jobs, too.
In any case, when confronted with lots of thick, tall, grass, the 80-turn brushed DC motor I used was simply overwhelmed and didn't have the torque to push through. Thus, I set about 3D printing a "sharper" plastic blade that came to a finer point, and fitted it to a more powerful 35-turn 540-size motor and tried again. The lower turn count on the motor means that it draws a lot more current, but it's also more powerful and better able to hack through the grass.
Finally, some success! The blade was able to hack away, sending the grass a-flying. The cutter head would still get snagged up and stop if I plowed head-on into the thickest stuff, but it was more than capable of trimming a lawn down to size. Sure, the five-inch blade would take a long time, and probably several passes, to actually cut the whole lawn. But when a robot's doing the work, who cares if takes a little longer to finish?
I even experimented with a further upgrade, producing a mean-looking six-incher complete with metal carpet trimmer blades bolted on. It was even more capable of chopping away at the greenery, as expected. However, I was a little concerned about having metal blades and heavy bolts spinning at such high velocity near my own soft, fleshy self. Fearing for my own safety, I decided I should design a safety shroud to protect me should the blade disintegrate or come loose while in use.
Mowerboi is by no means a lean, mean, lawn-eating machine just yet. The relatively narrow six-inch-wide blade doesn't cut a huge swath through the grass, and it takes several passes to get the grass properly cut down to size. However, it does work; this is Mowerboi's minimum viable product, having just enough capability to get a basic mowing job done. If I took this platform and added automation, it could probably keep the lawn cut down to size by making two or three passes a week, even if it can't handle the overgrown jungle thicket I have now.
Going Too Far
Naturally, I wanted more. More performance, more cutting power, more everything. My thinking was that if I had more power, cutting the lawn would take less time to complete. I set about procuring a much brawnier 14-turn, 550-size motor for the cutting head. I'd already found some gains by adding power to the cutter head, so I figured more is always better.
I also found that even if I drove at the robot's slowest viable pace, Mowerboi was still moving too quickly for the cutting head and would end up being slowed and stopped by the excessively thick grass. I needed to get Mowerboi to crawl. Thus, I set about building a low-range "crawler" gearbox that would let the robot creep slowly through the yard, cutting away at the grass at a more leisurely pace.
Designing my first 3D-printed gearbox was great fun. The design of this old RadioShack RC car didn't leave much room, but I managed to squeeze an extra 2.75:1 reduction in on top of the standard transfer case's 10:1 step down, bringing the total ratio down to 27.5:1. The new gear train would reduce top speed by over half, but this robot is already way faster than it needs to be. Instead, the idea is to trade that speed for badly needed torque.
After a good 10 hours of disassembling and reassembling the robot with its new gearbox, not counting the good 15 to 20 hours of design and printing time, I was ready to test. I could barely contain my excitement, and in doing so, made rather a stupid error. I hadn't had time to finish the protective shroud for the cutting head but figured a short little test wouldn't be too risky.
In any case, as I fired up the robot, I was overjoyed to see it crawl at an absolutely glacial pace; my gearbox was working! Admittedly, it was loud as hell as my 3D prints were poor and my assembly even worse, but it was working! Then I fired up the mower motor.
It was less than a second before a whipcrack announced that the mower blade had undergone rapid, unscheduled disassembly. I heard a ping a split second later as something hit the side of the shed. A quick scan and pat down of my vital areas seemed to indicate I wasn't hemorrhaging blood, so I quickly shut down the robot and took a moment to appreciate my good fortune and chastise myself for not taking proper safety precautions. By taking a shortcut, I nearly ended up with a mower blade to the neck.
This is a good time to reiterate that I didn't stick to my own rules and wasn't prototyping in a safe manner. I got lucky, but it's a mistake you shouldn't make. Always take proper safety precautions! In my case, I should have waited until I'd finished building a safety shroud and upgraded my own PPE to include a full face shield rather than the simple safety glasses that left the rest of my face entirely unprotected.
It seems that the extra grunt of the new mower head was enough to shatter my 3D-printed blade design; somewhat unsurprising, given it was spinning somewhere close to 15,000 rpm with the bigger motor. The blades had been sheared off from the hub and flung out into the garden at great velocity. An intensive search turned up only a small chunk of the blade buried in the grass; no sign of the pieces that audibly hit the shed were found.
My new gearbox design similarly faced issues; after just a few meters of running, my multi-part compound geartrain fell apart as I'd foolishly forgotten to glue the gear together after a test fit. Reassembling the gearbox properly only saw it fail again, with the gears this time splitting along layer lines. Most frustrating! But for the 30 whole seconds that the gearbox held together, the mower was impressively slow with tons of wheel torque—just as I'd intended it to be.
Lessons Learned. Time to Rebuild
Regardless, I set about rebuilding Mowerboi's gearbox and cutter head with haste, as I was very much addicted to the project by this point. I designed and 3D printed a more robust gearbox design, put together a safety shroud to protect myself, and returned to using a safer all-plastic cutting blade. With a stronger mount for the cutter head installed, I was still able to use the more powerful 14-turn motor without the assembly falling apart.
I realized, too, that Mowerboi wasn't really served well by his outback camouflage paint scheme, intended to hide him from curious humans on his adventures. If anything, armed with a cutting blade, it was safer to have him be highly visible when working in the yard. I'd had also become keenly aware that grass from the cutter head was getting all over the chassis.
The way forward was obvious—Mowerboi needed a dope body kit. When it came to the design, I took heavy mining dump trucks as a guide, giving Mowerboi slant sides, a large logo panel, and large black stripes down the side. Why stripes, you ask? They're easy to draw, that's why! When it came to colors, however, the world of drift was my inspiration, and Mowerboi got a color-flipped palette inspired by Naoki Nakamura's famous S13. Yes, we're talking fluro yellow with searing hot pink wheels, and I could not be any more in love with the design.
I invested dozens of hours over a period of two weeks on the rebuilding effort, from design, 3D printing, to painting and reassembly. After that long slog, I took Mowerboi out to the backyard one more time for a bit of hack and slash, resulting in my homie looking fresh as hell. He's still not the sharpest cutter, and thick grass takes several passes to bring down to size. The new gearbox is an improvement, albeit still not perfect. It held together for a full half-hour this time but started chewing itself to bits when I tried to reverse. Back to the drawing board on that one.
Challenges do remain, of course. Overall, though, Mowerboi has grown into a sick-looking robot with serious presence out on the lawn, and he's going to do great things once he can navigate on his own.
Looking to the Future
I'm certain that allowing Mowerboi to chug along at a fraction of walking pace is improving the quality of the cut, as longer grass no longer overwhelms and slows down the cutting blade. My gearbox design has helped in this area, but it's still too weak for extended use. I have some more development to do in this area, either by strengthening the design or going another route by fitting a torquier motor to the stock gearset.
I'm also liking the all-plastic cutter head, even if it doesn't cut as well as the razor-equipped version. However, if I can find a way to safely integrate the metal blades without the assembly shattering at high speed, I may institute such an upgrade.
I'm also keen to start tinkering with the code to enable autonomous operation. With some GPS bits on order and my Python code already showing some promise, I'm pretty convinced I can get Mowerboi trundling around the garden like he owns the place.
I'm actually super confident that with a few mods, I could have a really awesome solar-powered lawn mower by the end of the year. Mowerboi will wake up a couple of times a week to trim the lawn down to size and spend the rest of his time sunning himself in the yard to collect those juicy, delicious electrons. It sounds like a nice life, and I look forward to living it with him. Until then, though, there's plenty of engineering left to do!
Got a tip? Let the author know: firstname.lastname@example.org.