The Sky is the Limit

Manned Versus Unmanned
An MQ-9 Reaper military drone comparted to the T-6 Texan II. Both aircraft are similar in size.

The primary advantage of autonomy is obvious: the removal of a human from the machine. But that’s not where the benefits stop. Think about what a military drone looks like compared to a fighter jet. If you can get rid of the pilot, you can get rid of the seats, the yoke, the visual instruments in the cockpit. You don’t have to pressurize the cabin anymore. Shoot, now you can change the whole configuration of the aircraft to gain efficiencies you never even imagined when you had to design around a human in the cockpit. Notice how the propeller is on the back side of the drone, whereas it’s on the front of the manned aircraft?

I’ve been watching several folks develop autonomous lawn mowing solutions over the past few years. Back in 2014, Alligator over at the Rusty Nails Workshop attempted to make an autonomous lawn mower using an electric push mower deck with a Piksi RTK GNSS module, the cutting edge in positioning technology in 2014.

More recently I’ve watched the venerable Kenny Trussell and Robby over at Deep South Robotics fully automate a ZTR mower for their acreages. I’ve also been paying attention to the folks out at MowBotix who are attempting to commercialize their solution, which appears to be similar to what Kenny and Robby have come up with.

Each one of these solutions begins with an off the shelf mower. That seems to be a logical place to start: cutting grass is kind of a solved problem. And if you use a riding mower, you get the drive wheels for free, eliminating the need to come up with a way to propel your mower like Alligator and I had to.

Along the way I have questioned whether making a clean sheet design was the right way to approach this problem. There’s no doubt it will be more expensive in the short run. I’ve spent close to 300 hours designing the robot lawn mower over the past year and a half, and once everything is finished I will probably have close to $4,000 tied up in it.

But there is one thing that you can’t beat with a clean sheet design: The opportunity to toss out all the baggage that existing mowers come with and explore what an autonomous lawn mower could look like if you take the person out of the equation.

The Baggage

61XTWHN+JRS._SL1000_
A typical 36in zero turn radius riding lawn mower.

If you look at a typical ZTR riding mower, you see many familiar features: a nice plush seat to sit in, foam covered control handles, a deck to place your feet on with a nice grippy surface.

Look closer and you’ll find some very deliberately designed safety features, such as a dead man switch under the seat and some guards placed in areas you might get your foot too close to the mower blade.

If you look even closer you’ll discover that because of all the features described above, you kind of have to put the engine far away from the deck spindles. And that forces you to have an intricate pulley system to transmit power to the mower blades.

And your wheel base has to be pretty large in order to create room for a person to drive the thing. Your tires and engine have to be oversized in order to support the weight of an operator that could possibly weigh 200lb+.

Long story short, mowers manufactured today are designed with a significant constraint in mind: the operator. If you remove the operator, you can eliminate those constraints, and you end up with a machine that is much more efficient in almost every respect. The table below is just the weight and size differences between the prototype robotic lawn mower and the mower pictured above.

compare
A comparison of size and weight between the prototype robotic lawn mower and the 36in Swisher ZTR mower.

The prototype robotic lawn mower is half the weight and less than half the foot print of the ZTR mower, while featuring a deck that is the same width. With the right deck motors and batteries, the 14.5hp power rating could be matched, too. However, I suspect part of the reason you need so much power on a riding mower is because it’s larger, and you have to have a person sitting on it the whole time.

The biggest advantage to automating lawn mowers is obvious: you don’t need a person controlling the mower anymore. But if we’re going to remove the person from the equation, let’s take that leap all the way to it’s conclusion. There are huge design efficiencies you can gain by eliminating the operator. Let’s redo the whole system to take advantage of all of them.

Combined Battery Bays

version 5 and 6 compare
Version 5 compared to version 6 of the robot lawn mower.

I started drawing up what the robot lawn mower would look like if we didn’t care about separating the compass from the electric motors. Removing this constraint allows several design efficiencies, some of which I was not expecting.

I decided to use two battery bays on version 5 because I had to mount a mast smack dab in the middle of the chassis. I didn’t want to mount it on a removable lid because it would be cumbersome to remove to get access to the batteries. Instead, I put hinged doors on both bays.

It looks neat in the picture above, but what you don’t see is all the wires running through my chassis tubes between bays to connect the batteries and all the signal wires run through the mast weldment up to the control enclosure. It started getting ridiculous drawing all of that up.

A separate design constraint I’ve been trying to achieve is to keep the wheel base of the robot to a minimum for handling reasons. Unfortunately, the mower deck design I settled on has a motor in the middle of the deck that is a pain to locate such that it doesn’t interfere with the battery bays.

Because I was splitting the battery bays anyway, I positioned the mower deck the way you see in the version 5 picture above. One downside to doing this is that the mower deck is pointing backward from what you see on virtually every riding mower.

bottom compare
The bottom view of version 5 and version 6.

Combining the battery bays let me rotate the mower deck 180º. In the back of my mind I have been worrying the backward orientation of the mower deck might cause performance issues. Now we won’t have to find out.

Additionally, both power and control enclosures can be mounted directly to the battery bay, which will drastically shorten the wire runs I’ll have to make. I’m actually excited to start drawing wires again. Things aren’t so claustrophobic anymore.

And on top of all the benefits above, the chassis weldment went from having 28 total parts to 15. Not too bad!

Where Does All That Power Go?

I’m estimating the electric deck motors on the robot lawn mower will use about 168A of current collectively, and at 24V that means they consume just over 4kW or 5.3hp of power. Even in a worst case scenario, saying that aloud sounds ridiculous. Really? Where is all of that power going?

Remember that power is equal to torque times angular velocity. The angular velocity of the mower blade is governed by the blade tip speed limitation of 19,000ft/min. The linear velocity of the blade can’t exceed this value. If we know the blade length, we can do the math and determine the necessary angular velocity to achieve that blade tip speed.

velocity
The maximum angular velocity of a 21in mower blade for compliance with ANSI B71.1-1990. Don’t forget the calculation between radians and revolutions.

So we have a very good handle on angular velocity. The mystery variable in the power equation is then torque. The amount of torque we need when the blade is spinning is going to determine how much power the motors are going to consume.

In my previous power calculations, I made a huge assumption:

I have no clue how much torque a mower blade needs. Let’s just use whatever my 21in Toro push mower outputs. It mows grass pretty good. Close enough.

-Me, making poor decisions

The engineer in me loves that assumption. Find the appropriate RPM, pull up the power curve for the engine and boom, there’s your torque value on a silver platter.

The problem is that the robot lawn mower and my Briggs and Stratton push mower are two different animals. I should have made this chart a long time ago, but here is the performance curves for the E30-400 electric motor compared to a Briggs and Stratton 450e gasoline engine, typical of a push mower with a 21in wide deck:

Gas Versus Electric Comparison

The chart above makes more sense when you remember that the 450e gasoline engine is paired with a 21in long blade, but the robot lawn mower has 12in blades. This is why the electric motor curves go all the way to 5,700RPM whereas the gasoline engine curves end at 3,600RPM. Their respective blade length gets you close to the allowable blade tip speed.

Remember that these curves represent the maximum torque and power created at a given speed. When you’re mowing your lawn, how often does your mower bog down? Not much, hopefully. If it’s designed well and your grass isn’t a foot tall your mower probably isn’t operating at it’s maximum torque or power.

Because you shouldn’t often need the maximum torque or power out of your mower engine, the guys that engineered them installed a cleverly designed throttle governor, which varies the amount of fuel and air fed into the engine in such a way that its speed stays in a narrow RPM band.

Instead of letting the engine spool up to the fastest speed it can achieve under a given load, the governor limits speed of the engine, and subsequent power output, making it more efficient. If you need more torque or power, it adjusts the air and fuel mixture accordingly. The governor also ensures the blade tip speed stays safe.

This is where my power calculations go off the rails. I’m using the maximum torque values from these curves (measured in laboratory conditions no less) and sizing an electric motor such that it can achieve this torque value. This is inflating the estimated current these motors will consume.

Remember the motor from the electric push mower I got off Craigslist? It doesn’t appear quite so undersized now, given that our gasoline engine is likely operating somewhere below those maximum torque and power curves.

Our E30-400 electric motor, on the other hand, has no throttle control. This makes the analysis simple: it will always be operating at the curves on the chart above. A brief look at the chart shows that it should still perform very well.

Under no load, it will spin at 5,700RPM. As the required torque increases, the motor speed will drop, but the total power output from the motor increases until the motor is spinning at 2,900RPM. At this power output, one single motor is almost generating the power created by the 450e gasoline engine. Nice!

So realistically, the 168A of current for all three motors is probably on the high side. By how much, I am unsure. But I suspect it’s a significant amount. The robot lawn mower uses three of these motors. Collectively, I would imagine they won’t need too much torque to spin through whatever resistance they encounter.

This is looking more and more like a problem best solved by experimentation, not analysis…

Is a Compass Even Necessary?

bad compass health
My favorite Mission Planner error message: Bad Compass Health.

The compass drives two very costly design constraints into the robot lawn mower:

  1. The need to minimize the number and size of steel or ferrous parts in the design.
  2. The need to separate the compass from the motors to prevent electro-magnetic interference.

To address the first constraint, I selected a 5000 or 6000 series aluminum for the robot chassis and deck. That is quite costly both from a material standpoint and from a fabrication standpoint. And ultimately, you’re going to have some amount of steel in your robot. You can’t avoid it.

The second constraint requires the compass to be raised above the motors to a level high enough to get it out of the magnetic field created by the motors. Because I’ve placed the flight controller and other electronics in the same control box with the compass, several wires have to be run between this box and the power box. Shielding those wires is going to be tricky. Long story short, it creates lots of secondary design inefficiencies.

Reading through the forums and in my own research, I’ve come across a few interesting anecdotes:

  1. Kenny Trussell reports that when steel mower blades begin to spin at high RPMs, the compass heading begins to drift by some amount, about 20º.
  2. Christopher Milner had to place a 4ft tall mast on his vehicle to sufficiently separate his compass from the noise created by two drive motors and one brushless DC motor.
  3. Unplugging and disabling all compasses on my wheelchair robot doesn’t cause any EKF errors, and after traveling a few feet in the wrong direction, the robot corrects its heading somehow, without the compass. I suspect the wheel encoders aid this process.

In light of this information, I am beginning to question whether I even need a compass. It seems to be creating more problems that it solves. The bad compass health error messages in Mission Planner are starting to get very annoying, even though they don’t usually seem to impact the robot wheelchair’s ability to navigate properly.

According to U-Blox, you can use two ZED-F9P modules configured as a moving base-rover combination to calculate the vehicle’s heading. Even with a spread between the antennas of 10in, U-Blox says the heading accuracy is 0.8º. Some folks on the Ardupilot forum are starting to investigate using the modules in this way, and I suspect it will be a much more accurate way to obtain the vehicle’s heading.

I’ve had enough bad luck with compasses that I’m willing to get rid of them altogether and use the ZED-F9Ps for heading exclusively. This allows some significant improvements to the robot design. I guess I’ll head back to the drawing board for the time being…

Weather

Weather in Kansas during February can be pretty awful, and this year is no exception. We’ve had a lot of snow lately, and the temperatures have been 30’s or lower on the days that I could take the robot wheelchair out for some more testing.

A few months ago I listed some goals I had for the robot mower prototype. I’ve made progress toward some, and overall I feel pretty good about where I’m at for now. Here’s an update of the progress.

Prototype Robot Mower Design

robot-mower-03-03-19.png
The robot mower design as of this evening.

The robot mower design is about 70% finished. I am working on getting the wires modeled in my CAD software currently, and this has been time consuming but I know it will pay off down the road.

I need to revisit how I’m attaching the mower blade to the motor shaft. I had considered using some cheap QD pulley bushings because they have a nice keyway in them that matches the motor shaft and holes that would mount easily to the blade, but I’m not sure this is the best way to do things.

I wish I could find these bushings without the split in them. I’m not sure they make them that way. The split makes me worry that it will be difficult to get good clamping force around the shaft. Also, nothing but a set screw keeps the key and bushing clamped up against the shaft. Because the motor is mounted vertically, all heck could break loose if the set screw loosens up. The bushing could conceivably slide off the shaft while spinning at stupid high RPMs. Not good.

At any rate, CAD work is about the only thing I can work on when there’s 4 inches of snow on the ground outside.

Sourcing Weldments

I’ve been very disappointed with some of the local weld shops I’ve sent drawings to for quote. I live in an industrial town and there are lots of mom and pop shops that I figured would jump at the chance to pick up a small job like mine. I’ve received 5 no bid quotes so far, and haven’t heard back from 3 other shops. Very frustrating.

I tried one of those online weld shops and they quoted the mower deck at $4,500. That’s definitely not in the budget, and I know this weldment is worth no more than several hundred dollars. If you can weld 0.125in thick aluminum sheet metal, leave a comment and I’ll send you over some drawings and maybe we can make a deal.

Purchased Parts

I’ve purchased one of the E30-400 motors to evaluate, but haven’t had time to play with it yet. It’s a lot smaller than I expected. I hope to do a write up on it here in the next few weeks.

I also purchased some high current automotive relays for switching power to the deck motors. The wheelchair design has all of the current running through a 20A switch which in hindsight is a really crappy design. It works for the wheel chair, but to power three 50A motors requires a better solution.

RTK GPS Integration

The Ardusimple RTK GPS boards are working far better than I expected. There’s really very little integration left to do. I will try to take the wheelchair robot out to a large parking lot here when the weather warms up to get a better idea of it’s performance in a decent GPS environment. I’m very excited to see how it does without a ton of trees and buildings around. Its performance so far has been pretty awesome.

Rebuilding the Wheel Chair Robot

I haven’t rebuilt the wheel chair robot yet in light of our crash a few weeks ago. This is also on my to do list. Hopefully we’ll have a chance to do that this next weekend. It’s really hard to get motivated work on a lawn mower robot when it’s 20 degrees outside and there’s snow on the ground.

New Goals

Because RTK GPS integration isn’t going to take nearly as long as I anticipated, I need to spend more effort on getting the robot constructed, under budget and by May if possible. I may try some weld shops in surrounding towns, or possibly the old Craigslist method where I just post drawings and see who replies.

Small Design Changes

mower 1-6-19
The robot mower design as of this weekend. Some wiring is completed.

I’ve decided to change a few things on the robot mower design. I have a tendency to get hung up on really small things by spending way too much time thinking about them. The deck height adjustment was turning into one of those things.

I’ve changed the design to include four simple clevis pins. They’re $0.50 a piece. You don’t need to adjust the deck height that often, and spending $100 on parts to do that in a fancy way is a waste of effort and money.

I modeled up a discharge chute because I think the mower will need one to look professional. I intended to 3D print it, but it turns out the dimensions are big enough that most hobby websites won’t take it. I know of a place nearby that does industrial 3D printing and they quoted me $290 for the part out of ABS. Yikes. Maybe I’ll try to adapt an off the shelf chute instead. That’ll be more reverse engineering but it will probably work better. And cost a few hundred less.

xt60
Some simple XT60 connectors for the motors. They’re rated for 60A and should be appropriate for this application.

I’ve started modeling up some wires and coming up with a way to neatly connect the motors was more challenging than I thought it would be. I found some “wall mount” XT60 connectors that will hopefully will work well. I’ll have some mounting plates NC machined and then attach the XT60 wall mounts to the plate.

Mower Positioning

5939749916dcd.image
A typical robot lawn mower on the market today. It’s basically a Roomba, but for your lawn. Have fun tearing up your lawn to bury cable!

When you google “robot lawn mower” you will find a bunch of Roomba looking robots like the one above. The missing ingredient between these robots and the one I’m attempting to make is one thing: positioning.

When you need your lawn mowed, you want it to be mowed 100%. You don’t want half the lawn cut and the other half not cut. You don’t want gaps of uncut grass between your stripes. You don’t want random paths cut through your lawn. You want nice, parallel, alternating stripes.

To accomplish that, you need to know the location of the mower throughout the process so you can keep track of areas that have been cut, and so you can cut the grass in a specific manner. Back and forth stripes, for example, or perhaps a nice circular spiral moving outward from a tree.

I’ve come to the conclusion that to really automate the mowing process, you need at least +/-1in of positioning accuracy. Historically, such a system required a $40,000 survey grade GPS system from Trimble or Leica and the equivalent of a master’s degree in computer engineering to integrate it into your robot.

So the Roomba mower guys, given these constraints, came up with the following solution:

Who cares where the mower is? Just fence it in and have it mow all the time. You’ll eventually cut all the grass. We gotta make a product that we can realistically sell to people at a profit, you know.

-Some engineering manager out at Roomba Mowers Inc, I’m guessing

Every robot mower has to compete with the neighbor kid that will mow your lawn for $20. He’ll even try to make the stripes in the front lawn mostly straight and parallel. That’s the price point and level of quality that you have to beat with any robotic mowing system.

The Roomba mower guys sacrificed quality and scalability to get there with their system. Those are probably decent tradeoffs if we’re honest. While these Roomba mowers are for the most part a novelty, for some folks they work okay. But in the scenarios where they do perform well, they’re probably not value added at their $2,000+ price point.

So for years, guys like me that dreamed of real robot lawn mowers were left with just that: dreams. I don’t have $40,000 laying around, and I’m a mechanical engineer, not a hardware guy or a computer engineer. And even if I had both of those things, such a system can never turn a profit in the market place.

Enter u-Blox with the ZED-F9P module….