I had a chance to drop by the shop yesterday, and things are progressing nicely! The chassis weldment is complete except for a little grinding and cleanup, and the front caster weldment is almost finished. It is very exciting to finally see the autonomous lawn mower jumping off the screen and into reality.
I spent a lot of time making detail drawings of each part, weldment, and assembly. You can never be too clear or explicit when making something complex. Unfortunately I think the pile of drawings scared off a lot of more than qualified welders and mom and pop fabrication shops.
I’m very thankful I found someone willing to take on the challenge. But even with very detailed drawings, things can still go wrong. For example, below is one of my drawings for the tube shown in the picture above.
That 55° is geometrically correct. But when you’re using a miter saw to make an angle cut on the tube, what angle should you set the saw to? The correct answer is 35°. In this case, my drawing was actually a little misleading, while technically correct. Lesson learned: if you’re dimensioning a miter cut, it’s best to show the angle the should be set to avoid any ambiguity.
Another lesson learned is to always plan for 50% or more material than the design calls for. The tightwad in me ordered exactly what I thought the shop would need with an extra 0.5in on the ends. In hindsight, that’s a recipe for extra trips to the metal yard to get material for the inevitable mistakes caused by my own sloppy drawings.
One other good engineering practice: always collect your old drawings. We went through a few producibility changes over the past few weeks, and when I dropped by the shop yesterday, I noticed a few old drawings floating around. Round those suckers up! At a minimum, mark them void. The last thing I want to do is pay for parts that I can’t even use because I changed the design.
If you spend a fair amount of time in a CAD program working on the same thing for more than a few weeks, you start losing a sense of the scale of things. On the computer screen, this weldment looked pretty substantial, but in real life, it’s actually pretty small. That battery bay is going to be very tight. I really hope I dimensioned it correctly.
Maybe this spring I’ll have something to actually cut grass with!
The origins of 16 CFR Part 1205 are quite convoluted. In August 1973, the Outdoor Power Equipment Industry (OPEI) petitioned the CPSC to adopt ANSI B71.1-1972, the most recent ANSI safety standard for power mowers, as the CPSC’s safety regulation for walk behind lawn mowers. But for reasons unknown, in October 1974, the CPSC instead contracted with Consumers Union (CU) of United States, Inc., today known as Consumer Reports, to propose their own regulation. The CPSC paid $66,745 to CU to develop the standard, in addition to another $25,000 for experimentation and testing.4
With these funds, CU conducted significant research to develop their proposed regulation. They organized time studies to see how fast an operator can move their hands from a power mower handle to underneath the mower deck. They examined the forces blade shields would encounter during typical mower operation. They gathered and compiled existing research on lawn mower injuries, combined it with their own research, and presented it to the CPSC along with their proposed regulation.
CU’s recommended regulation contained several detailed safety rules for preventing electrocution from mower electrical systems, burns from hot mower surfaces, hearing loss due to excessive mower noise, impact from debris thrown by the mower, shields for exposed mower blades, and mower start and stop controls, while addressing other safety issues.5
While the CPSC didn’t use every recommended rule written by CU, it did adopt several rules related to maximum blade stop time, mower start and stop controls, and mower shields and guards. These rules, in addition to new labeling and record keeping requirements, form the newly promulgated 16 CFR Part 1205, which was placed in the Federal Register on February 15, 1979, with an effective date of June 30, 1982.3
But before the new regulation could go into effect, the OPEI sued the CPSC. In Southland Mower v. Consumer Product Safety, the OPEI’s lawyers make any and every argument they can think of to nullify, neuter, or otherwise delay the regulations in 16 CFR Part 1205.5 They argue that lawn mowers are not consumer products, and hence the CPSC does not have authority to regulate them. They argue that there is insufficient evidence in favor of a safety regulation, and that it violates the CPSA. They argue that new shielding requirements will be defeated by consumers and are not efficacious in promoting safety. The majority of their arguments are pedantic and relate to interpretation of the language of the CPSA and how it pertains to 16 CFR Part 1205.
The case is heard by the Fifth Circuit Court of Appeals, and on June 19, 1980 they hand the OPEI a sound defeat based on the CPSA’s broad language allowing it to regulate, well, consumer products. It does, however, throw the OPEI a bone by vacating a portion of the regulation’s foot probe requirement, stating insufficient evidence exists to prove it will reduce foot injuries as a result of contact with a rotating mower blade.
Within the text of 16 CFR Part 1205, the CPSC notes that many mowers on the market in 1980 already feature the safety devices mandated by the regulation. In effect, the regulation codifies what most manufacturers are already doing regarding mower deck shields and controls, but includes new record keeping and safety labeling requirements. And, as with all regulations issued by the CPSC, there are new penalties for non-compliance.
The CPSA mandates safety regulations define performance requirements6, not design requirements. The idea is that regulations should promote multiple creative solutions to a safety problem, not mandate a single specific solution. But 16 CFR Part 1205 mandates the geometry of shields and the specific location of mower controls. There are only so many ways you can design a shield or locate a dead man switch to satisfy the regulation.
And as a result, innovation in the power mower realm decelerates after the 16 CFR Part 1205 goes into effect. In many ways, the regulation froze the state of the art in safety technology for mowers in the early 1980’s. Power mowers manufactured today are remarkably similar to those made from that era.
With decades of injury data to examine, an argument can be made that 16 CFR Part 1205 hasn’t even improved mower safety. At the time it was issued, the CPSC estimated 77,000 mower related injuries occur annually. Between 2005 and 2015, that number is estimated at more than 84,000 annually.7 The severity of these injuries may be less, but as an empirical fact, more people are injured by power lawn mowers today than before the regulation was put into effect.
One can only speculate what the inventors who met to showcase their safety innovations in Gaithersburg, MD would have thought about the resulting safety regulation their ideas influenced. But it’s a safe bet each of them would probably agree: if you want to prevent mower injuries, find a way to separate the operator from the mower. Next time I’ll talk about how 16 CFR Part 1205 makes that difficult, and how the regulation has influenced mower design ever since its inception.
The lack of activity here on MowerProject.com hasn’t been due to a lack of autonomous lawn mower development. This June we were blessed with a baby boy, and he has been taking up a lot of our time! Posting to the blog in the meantime has been difficult.
Juggling my 8 to 5, the mower project, and making time for Mr. Mower Jr. has been quite challenging. I owe a special thanks to my wonderful wife for letting me run errands for the project and work on it in the evenings. She is truly something special! Having her to bounce ideas off of and to encourage me along the way has been invaluable. I love you so much Mrs. Mower!
As I’ve done in the past, I find it’s good to set goals. Even if I don’t achieve them, they focus my mind and give me a sense of accomplishment and purpose as I work toward them. Below are some goals I have for the next few months.
Finish Procurement and Begin Assembly
I have all of the parts to build the prototype robot lawn mower except for two more SLA batteries and new enclosures for the electronics. The SLA batteries are so cheap that I think it’s worth a gamble on them instead of ponying up the $1,000+ I’d need for some good quality LiFePo4’s.
Once those items arrive I will start to wire up the enclosures and get the subassemblies put together. I will probably need to make another wiring diagram showing how everything connects and functions before I get too far along.
Support Fabrication of the Prototype Weldments
Originally I had planned to fabricate a lot of the robot lawn mower components myself. The idea was that it would be cheaper to purchase my own tools and make the parts myself. Unfortunately, that plan requires a lot of time, a resource I’m very much short on these days with Mr. Mower Jr. in the picture. The economics of paying someone to make the parts suddenly looks attractive again.
To this end I’ve found a local gentleman who is helping me make the weldments. I find myself over at his shop every week or so answering questions about the design, and working with him has been very productive. His feedback has been quite helpful in helping simplify and refine the design so that it is easy to fabricate.
I have a litany of questions I need to get answered about the performance of the prototype before we even cut grass. A few questions I need to get answered:
How long can the mower run on four 12V, 35Ah SLA batteries?
How well does the prototype handle pivot turns?
How much current does the entire robot draw at typical operation?
We need to verify emergency stop and safety features function correctly.
How much air flow does the current mower deck and blade design create?
Once I’m satisfied the design adequately answers these questions, we can start cutting grass. Stay tuned for some pictures of the fabrication so far!
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.
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.
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.
To kick off this Labor Day weekend I did some shopping. Wichita has a cool little place aptly named The Yard, which sells everything from screws, casters, foam, you name it. And because most of it is surplus, the prices are great, too.
When I design things, I start out planning to source everything new, and I record the price of every component I call out on the design. This information was immensely helpful as I dug through bins of screws. I had a price to beat on every component I was shopping for.
And as usual, The Yard came through. For example, a 5in long socket head cap screw, 5/8-11 thread was $5.80 through McMaster. The same screw at The Yard was $1.99. I found some 5/8-11 lock nuts for $0.68 a piece. McMaster quoted me $0.92 a piece. This was typical of all the hardware I was able to find there. Shopping at The Yard also saves me shipping, a cost I’d incur buying through McMaster or some other online source.
The Yard even cut some 3/16 chain for me. They charged me for two feet at a total cost of $2.50. I even got to keep the extra links. Not too shabby!
Those pennies add up. There are some components I’m going to have to shell out a lot of money for, like the hubs for my drive wheels. The bad boys below cost just shy of $50 a piece, and after shipping it was $120 to get them.
Harbor Freight had a sale on their cheap 10in diameter wheels, and I picked up four of them for $3.99. However, I think Harbor Freight is always having a sale on those tires. Their regular price is still dirt cheap.
Each tire comes with two hub pieces. One hub piece has two flanged bearings pressed into it, the other has no bearings. You can see the two hub pieces from one tire in the picture below.
I took two hub pieces with no bearings in them and made a “drive wheel” tire. I took the remaining two hub pieces with the bearings in them and popped one of the two bearings out. You don’t need a total of four bearings for one tire, and I have plans for these extra bearings.
I had to drill a hole in the hub piece with the bearings so the nipple on the innertube had a place to protrude from. You can see the hole in the hub without the bearings in the picture above.
After I drilled the holes and put the wheels back together I had a pair of “caster wheels”, a pair of “drive wheels”, and four extra flange bearings. I had to bend the innertube nipple on the caster wheels to get a bicycle hand pump on the nipple so I could inflate them.
The four extra flange bearings are going to be used to mount the stem of the casters into.
The Yard also has a vast selection of steel and aluminum raw stock. They didn’t have the 2in X 2in X 0.25in square aluminum tube I was after, but they did have some 2in X 2in X 0.1875in square tube. I think this will be easier to weld to 0.125in thick aluminum sheet metal anyway, so I had them cut several sticks for me.
My only complaint about The Yard is that they won’t do angle cuts for me. I’m either going to have to get my miter box and hack saw out, or find someone with a nice band saw to get them cut.
Overall, I think this is a good start to getting the prototype robot lawn mower fabricated.
“Making a new thing is hard. You will fail, over and over again, you will fail. Edison tried thousands of light bulb filaments before he found one that worked.”
Paul knows this much better than I do. He’s had rockets blow up on the launch pad that he spent several months and several thousand dollars making.
I’m a tightwad, and I’m also not a risk taker. The combination of those two traits has led to some frustration lately as I try to find a way to fabricate the robot lawn mower.
The tightwad in me says find the cheapest way to do it, even if the trade off is more of my time and frustration. I don’t need a drill press. I’ve got a perfectly good cordless drill! That’s the mentality, anyway.
Because I’m not a risk taker, I spend a lot of time planning in my CAD software. You can prevent a lot of issues by planning well. To see the flip side of this coin, search the internet for “DIY robot lawn mower”. Most of the results you get are… janky, to say the least.
Because of these two traits, my initial plan was to have someone else make the robot lawn mower for me. I’m an engineer, not a machinist or welder. I was willing to spend about $2,000 dollars to have someone make my weldments complete. I can do the final assembly work myself; I have hex keys and wrenches at home.
Unfortunately, very few weld shops are willing to do anything but weld for me. They want you to bring them parts, and they’ll weld them up. The ones that are full up fab shops aren’t too interested in my work right now. A few of them have talked to me, but their quotes were several thousand dollars for just the mower deck. I’d hate to see their quotes for the chassis weldment.
For the cost these folks quoted me, I can go get my own band saw, drill press, slip roll machine, and various other tools to make my parts, and come out way ahead. There are lots of guys that can weld aluminum out there. They just don’t want to go buy material, cut it, make it per your print, etc. They’re welders, not prototype makers.
So based on the astronomical quotes I’ve received I’m going to go purchase my own tools, and start fabricating the parts I need for the robot lawn mower. I’ve done a good job making sure I can actually make each part I’ve designed. Now I just need to shell out some money for some good tools, and make it happen.
On my shortlist of items to buy:
Having my own tools will be nice. I’ll finally be able to control my own destiny, and make exactly what I need.
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.
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!
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.
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:
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…
Batteries are often advertised with a nominal voltage and nominal charge. It’s tempting to take those numbers at face value and assume that regardless of operating circumstances, a battery will sit at its nominal voltage and run until its nominal charge has been depleted. Reality is more complicated than that.
Christopher Milner reminded me of this in a brief conversation this week. He is using 13 3.2V, 100Ah LiFePo4 batteries in series to power the deck motor on his mowing rig. Stringing them together in series gets you close to 48V in their charged state. He reports getting about 3 hours of runtime while powering a motor that consumes 1300W.
This surprises me because my own calculations suggested four 12V, 35Ah lead acid batteries should be sufficient. Christopher obviously knows what he is doing and I trust his experimental results much more than I do my own back of the envelope calculations. The discrepancy means I need to reevaluate my numbers.
When making my calculations I did not take battery discharge rates into account. This is a big mistake, as I’ll show below. But first, for my own educational benefit, I’d like to introduce you to the C-rate, a way to quantify how fast you pull current out of a battery.
What is a battery’s C-rate? Our good friends at Wikipedia define it as:
The C-rate is defined as the charge or discharge current divided by the battery’s capacity to store an electrical charge.
In layman’s terms, the C-rate is just the ratio of an arbitrary discharge rate to the battery’s charge capacity. It’s a simple way to describe how much current you’re demanding from a battery relative to the battery’s total stored charge. If you’ve got a battery rated for 10Ah and you discharge it at 5A, the C-rate would be:
It’s kind of a janky way of defining things in my opinion. A C is really an inverse hour, or stated differently, the unit of measure for a C-rate is h−1. Also, don’t confuse the C-rate with Coulombs, the unit of measure for charge. Clear as mud?
The reason I write all of this is so we’re all on the same page about what a C-rate is. If I’m wrong, please comment below, because I am going to proceed with this understanding of the C-rate going forward.
The C-rate is a useful measure because the total amount of charge you can extract from a battery depends on how fast you take it out. If you try to pull 100A out of a 10Ah battery, you’re not going to get nearly as much charge out of the battery as you would if you discharged it at 1A.
Additionally, when you demand a large amount of current from a battery, your voltage starts dropping fast. This is important because electrical power, which is ultimately what we’re after, is voltage times current. If your voltage drops you get less power, even if you’re withdrawing the same amount of current from the battery.
Your batteries are going to be much happier and live much longer if you stick with a reasonable C-rate. Having said all of that, how do the four 12V, 35Ah batteries I selected stack up against the expected current draw they’ll experience?
Our SLA Batteries Reevaluated
Previously I estimated the total current consumption of our robot at 197A. I think this is a conservative number, but I’m going to roll with it anyway. The number reflects current consumed by the three deck motors, two drive motors, and various electronics at their worst case scenarios.
I’m using two sets of two 12V, 35Ah batteries wired in parallel, then in series to get an equivalent battery that’s 24V, 70Ah. The discharge rate for one battery in this configuration is half the total current consumption because we have two sets of two batteries wired in parallel. This means that one battery is discharged at a rate of 98.5A.
The datasheet for one of these batteries shows the following chart, with various C-rates:
At a discharge rate of 98.5A, our C-rate is 2.81C. Looking at the chart above, that would mean our batteries will last for ~8 minutes. Yikes. And realistically, the 2.81C curve may extend to about 8 minutes, but the voltage drops off so fast after about 4 minutes that you’ll probably start noticing performance problems very quickly.
Also interesting to note from the chart above is that the one hour discharge rate is in fact not 35A as you’d expect with a 35Ah battery. It’s actually 0.628 times 35Ah, or 21.98Ah. To truly extract the 35Ah charge from the battery, you can only discharge it at a C-rate of 0.05C, or 1.75A.
Having written all of this, I wonder to myself why manufacturers don’t just list curves with specific discharge rates in Amps. The chart above would be completely unambiguous if they just showed a curve for 105A, 70A, 35A, 21.98A, etc. The conversion is tedious and honestly, if you don’t truly understand C-rates you leave with the impression that these SLA batteries are much more capable than they truly are.
Looks like we will need to use some lithium batteries after all. Thanks for saving me $400 on some batteries that wouldn’t have worked Christopher!
The compass drives two very costly design constraints into the robot lawn mower:
The need to minimize the number and size of steel or ferrous parts in the design.
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:
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º.
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.
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…