There are about 8 months from spring ’till fall in southeastern USA where the grass grows at an ever increasing rate, eventually outpacing even the most avid outdoorsman’s desire to jump on a lawn mower.
This simple fact, combined with both a rapid fall of hardware component prices and a steady refining of history altering open-source autopilot stacks, means that many passerby have begun seeing sights previously uncommon to man.
In this blog post we’ll introduce the main components of our mowing rig. In future posts — hopefully not 2 years from now 🙂 — we’ll try to flesh out some more system details. As always, feel free to post questions in the comments and I’ll try to address anything I haven’t explained well.
The Pursuit of the Perfect RTK GNSS System
As we’ve previously discussed, for several years the long $$ poll in the hardware tent hamstringing our autonomous mower dreams has been centimeter-level robust GNSS gear1.
2 years ago we marveled that ComNav had built a precision GNSS module for ~$1000 USD capable of positioning to within 1cm at 10hz (i.e. 10 readings per second — or a new position output every 0.1 seconds). Our excitement was justified because the big agriculture/surveying GNSS vendors were concurrently exacting perhaps 5-10x that price for similar technology.
It is with considerable excitement we report that now in 2019, your affordable autonomous field-navigation robot dreams are more approachable than ever.
The reason for this, of course, is largely the gift that u-blox has recently introduced to mankind: the ZED-F9P L1/L2/L5 GNSS module.
If you live thousands of miles away from Switzerland like me, then you may also shamefully admit that your knowledge of that beautiful country has hitherto been effectively limited to the following:
- The Alps
- Remarkable banking
- Swiss Army knives
Well sister, get ready to add a 4th item to that list:
Who are u-blox and why do they matter?
u-blox is a Swiss publicly traded, highly profitable, growing, financially healthy, dividend paying fabless chip designer that is quietly introducing a line of low-cost ultra high precision GNSS modules that will likely change the entire world2.
Over the past 20 years, u-blox has been developing an ever improving line of high performance GNSS receivers that have become the de facto standard GNSS component in several important markets.
If you’re not very familiar with the world of drones here’s a way to think the place u-blox occupies in that market:
u-blox really is that dominant as the provider for drone GNSS receivers, and it’s reasonable to speculate that they’ll soon provide the high precision GNSS modules onboard a big percentage of the ~70 million automobiles annually sold worldwide.
Many more glowing words could be accurately penned about u-blox, but our task at hand involves using their ZED-F9P high precision GNSS module as the position solution for an autonomous mower.
So what’s the big deal with the ZED-F9P?
In laymen’s terms, the ZED-F9P allows any outdoor thing to know it’s exact position on the face of the earth to within ~1cm with up to 20 position updates per second at a price-point that’s an order of magnitude lower than similarly robust incumbent solutions.
It does this for a flat one-time price of ~$500 USD. That price is for 2 ZED-F9P modules (along with 2 antennas) to build a stand-alone system (i.e. one of the ZED-F9P modules is set up as a Base Station / “correction” provider). If you have an existing correction source, then you’ll only need to purchase one module, and so your cost is halved to ~$250 USD.
The fine citizens of Precision Ag / Land Surveying world, arriving at this page and reading the ZED-F9P specs and pricing, will likely have a visceral appreciation for the u-blox accomplishment that perhaps few others can fully understand7.
For $500 you can purchase a 2 receiver / 2 antenna (a capable active patch antenna is included in the dev kit) L1/L2/L5 multi-constellation 20hz system that’s comparable in performance (and arguably much more approachable in terms of ease-of-integration) to a $10,000 system from one of the existing old school RTK manufacturers.
Readers familiar with RTK technology jargon may be interested in a flyover of the ZED-F9P’s technical specs:
ZED-F9P Technical Highlights
Price: ~$250 USD3
Multi-Constellation: GPS / GLONASS / Galileo / BeiDou — In other words, it’s processing position signals from satellites from all 4 of the major GNSS constellations.
Multi-Frequency: L2OF, L2C, E1B/C, B2I, E5b, L1C/A, L1OF, B1I — This is the real kicker — historically you have only obtained multi-frequency receivers by parting with thousands (or ten-thousands) of USD dollars.
20HZ output capable: Stated differently, just to be clear, it can give you 20 unique cm-level accurate positions every second.
Supports standard RTCM corrections.
Low power consumption.
If you’re coming from the world of Precision Ag or Land Surveying and you read those specs, due to your experience with the companies that have supplied that market for 2 decades, you may be thinking “yeah but how much does The Man charge me for software un-locks for all 4 constellations, multiple frequencies, and 20HZ output?”
Answer: 0.00 USD.
Yes, the ZED-F9P comes with all those features out of the box — the only catch I know of is our shared inability to stockpile these modules and then time-travel back to 2015, making a fortune through resale.
The rover we’re describing today is built on a repurposed electric wheelchair powertrain as we’ve previously detailed. But note that we’ve upgraded a few components since the previous discussion about this rover.
The significant modifications are these:
- Replace our beloved ComNav K501g with the superior u-blox ZED-F9P.
- Upgrade rover wifi system with Ubiquiti mesh network5 (i.e. we run a Ubiquiti access point on the the rover that’s joined to our local Ubiquiti network. This offers many benefits, for example: it’s now trivial to shell/VNC into rover’s onboard Raspberry Pi from any computer on our local network).
- Replace Pixhawk 1 autopilot with Pixhawk 4 autopilot. Just to be clear, this is not because the Pixhawk 1’s functionality is yet significantly outdated for this application (even though Pixhawk has been around since 2013) — instead, when Holybro introduced the Pixhawk 4 I got curious about it’s performance, and liking it’s specs (and Holybro’s solid reputation) but not finding many user reviews of the module, curiosity overtook and I just bought the little guy from Sparkfun.
Mowing Deck Build
We hacked together a mowing rig6 as follows:
- After eyeing the big 60″ deck on our old Scag mower, we cut out a similarly-shaped (albeit scaled-down) hexagon from 1/8″ sheet metal.
- Procure 3 24v 150W ZY6812 150-GM150115 DC motors from eBay (somehow those powerful motors are shipped to your door @ $25 a pop).
- Hook up some shaft coupler extensions (from eBay) to the DC motors. This buys us a couple extra inches of clearance between the mower deck and the blade disk. Note that I had to Loctite the nuts that snug these extensions to the motors. Also note that if you want to purchase extra nuts for this extension (for example, if you want to hold those Honda disks in place by sandwiching the blade disk between two nuts), that the nut size ia a little odd: M10 Left Hand 1.5. This Amazon query should get you what you need.
- Bolt the 3 DC motors to mowing deck sheet metal.
- Attach Honda blade disks to the shaft coupler extensions. I like the Honda disks because they’re metal (and because they’re Honda). I had to drill out the hole in the center of the disk slightly — i.e. you have to make the hole’s diameter a little bigger to use the shaft coupler extensions that we’re using.
- Ask Pops to weld together a carriage structure to attach to the rover. If you study carefully the metal and swiveling wheels on this structure you may recognize they’re just parts we’ve salvaged that were laying round from prior power-chairs.
- Suspend the mowing deck from the carriage by 4 loops of 1/8″ galvanized 7×19 steel wire cable (this ultra-strong wire rope was leftover from building the backyard containment fence a few years back). Those aluminum brackets attached to the deck that the cables loop through were laying around the shop.
- Run ground wire and fused 24v power wires back to the mowing deck.
- Create mower deck sides by bending & cutting sections of 3″ Aluminum flat bar. Bolt aluminum sides to deck using these brackets.
- Bolt two Spiderman bicycle training wheels to front left/right sides of mowing deck — this helps the deck to “float” along without getting hung up on uneven terrain.
Let’s bring this post to a close with two time-lapse videos (one run — but video taken from 2 cameras — note that the second camera’s battery died before run completion) taken this morning.
Note the number of obstructions that would challenge an RTK system of lesser capability.
The mowing rig works quite well, keeping the back yard neatly trimmed and letting my clothes stay clean in the process.
- While it’s true that random-pattern electrically fenced autonomous mowers have been around for the last few decades (i.e. Husqvarna / Robomow), the advent of low-cost robust cm-level positioning will likely enable similarly-sized mowers to maintain an order of magnitude more land while discarding the pain point of installing/repairing an electronic perimeter. Additionally, the idea of autonomous-mower-as-a-service becomes much easier to imagine.
- The financially savvy readers of this blog may note that u-blox accomplishes this and more (i.e. they also play in the hot IoT cellular / Bluetooth space) while presently trading at an unusually reasonable multiple of ~14 times earnings (note, for instance, they’re quite similar in metrics to Axon (police camera / Taser manufacturer) but they trade at 1/10 the price (relative to earnings) of AAXN).
- $250 USD (as of May 2019) is the price for the official development kit (called C099-F9P) that you can pick up from Digi-Key. A handful of companies have built maker-friendly boards based on the ZED-F9P including ArduSimple, Sparkfun, Drotek, and CSG Shop. The bare chip retails for ~140 USD (as of May 2019).
- Ardupilot ZED-F9P support (as of May 2019) happens via the standard NMEA driver. In other words, the last time I tried to use the Ardupilot custom u-blox driver linked above with the ZED-F9P, it didn’t appear to be working (in contrast, that driver works wonderfully with the old u-blox NEO-M8P L1-only RTK module). To be perfectly honest I didn’t debug the u-blox driver at all (and hence of course what I’m saying here should be taken with a grain of salt) since it was easy to just enable standard NMEA position output in the ZED-F9P.
- If you’ve not yet converted your home/office network to Ubiquiti, perhaps that’s a more pressing item than anything else in this little blog post. The glittering reviews are justified — Ubiquiti really is that good.
- Readers without tolerance for the hackfulness of this mowing rig should have their spirits buoyed by Mr. MowerProject’s outstanding efforts (often accompanied by slick CAD images) in this area.
- Emlid appears poised to further their reach into the Land Surveying market via their new Reach RS2 based (ostensibly) on the u-blox F9 chips.