DIY Autonomous Mower In The Wild

Mowing the lawn is one of those repetitive tasks most of us really wish we had a robot for. [Kenny Trussell] mowing needs are a bit more strenuous than most backyards, so he hacked a ride-on mower to handle multi-acre fields all on it’s own.

The mower started out life as a standard zero turn ride on lawn mower. It’s brains consist of a PixHawk board running Ardurover, an Ardupilot derivative for ground vehicles. Navigation is provided by a RTK GPS module that gets error corrections from a fixed base station via an Adafruit LoRa feather board, to achieve centimetre level accuracy. To control the mower, [Kenny] replaced the pneumatic shocks that centred the control levers with linear actuators.

So far [Kenny] has been using the mower to cut large 5-18 acre fields, which would be a very time-consuming job for a human operator. A relay was added to the existing safety circuit that only allows the mower to function when there is weight on the seat. This relay is wired directly to the RC receiver and is controlled from the hand-held RC transmitter. It will also stop the mower if it loses signal to the transmitter. To set up mowing missions, [Kenny] uses the Ardupilot Mission Planner for which he wrote a custom command line utility to create a concentric route for the mower to follow to completely cover a defined area. He has made a whole series of videos on the process, which is very handy for anyone wanting to do the same. We’re looking forward to a new video with all the latest updates.

This mower has been going strong for two years, but in terms of hours logged it’s got nothing on this veteran robotic mower that’s been at it for more than two decades and still runs off an Intel 386 processor.

35 thoughts on “DIY Autonomous Mower In The Wild

  1. The CAM module in Fusion360 or FreeCAD could be used to derive optimal paths for clearing fields of arbitrary shape.
    (I just like the idea or programming in a 1000mm tool diameter)

    1. I spend many, many hours just running it in the field tuning PID parameters and such getting it to control well. But after that it has cut substantial grass. :) See later videos and stand by for updated ones soon. A lot has changed on the mower since 2018.

    1. Presumably there’s no difference from the automation’s POV between mowing and not mowing. All it knows is that it has to traverse the area. I don’t blame the creator of this one bit for not wanting to attach a whirling blade to a platform that’s still being tested.

  2. Wow!
    A lot of work has been put into this! Thanks to [ktrussell] for sharing!!!
    I’ve watched a majority of the videos (a block diagram would help communicate your system architecture) and looked at your github repository but I can’t find where/if you’ve showed how you attached the servos to your mower. After you went from linear actuators to servos the control greatly improved. Also curious if you’ve considered adding an alternator to recharge the mower’s batteries.
    As someone that’s sat on a mower for 3 acres at a time I greatly appreciate the motivation for such a project.

      1. Oh, sweet!

        BTW, those who noticed that the mower didn’t actually mow in the included video, definitely watch the later videos because the spinning blade actually presents a different set of problems on its own. For one thing, it skews the compass by as much as 20deg to the right. I’ve not checked to see if he’d described how he solved that issue somewhere. But, I’d definitely recommend watching or, at least, skipping through the rest of the playlist.

        1. Thank you both for the comments! I DO have a farm actually. Most of the open land is in hay and I rarely need to cut it, but about 30 acres I have to “bush hog” OR, now I use this mower. It is a little bit of a slow go, but it gets the job done. I can have it leave the back yard, cut about 5 acres and then return to the back yard. Stay tuned for more videos and other documentation as soon as I get caught up on a few other projects!

          1. I haven’t seen the rest of your videos, so you may have solved this by now, but… on a great many zero-turning-radius mowers the blade clutch is electromagnetic. Mine draws about 2.5 amps at about 14V, so there’s a decently strong field there.

            I’ve never tried to do this at any great distance (i.e., “beyond room scale”) but I wonder if using OpenAR ( https://github.com/bharathp666/openAR ) and printing some rather large Markers wouldn’t be a good approach? Put one on the side of the barn, other ones at strategically located fenceposts. I have no idea if it would work well, especially given that the camera would be bouncing around like crazy. A 1080p camera and a 50 degree field of view lens is about 38 pixels per degree, and OpenAR can do better than that, so you should be able to get 1 degree or better with 16 markers 22.5 degrees apart (so at least one marker and part of one or two more is always visible).

          2. Erik, I have thought about that. My first plan was indeed to use OpenCV or something similar with AprilTags or something similar. Then I learned about high accuracy RKT GPS and went that route, but the magnetic compass is an issue. I plan to use a dual GPS when I get the time. The Ublox ZED-F9P supports a moving base configuration that can give a very accurate direction even when not moving.

            I do still plan to use some type of beacon or vision method for precise “docking” with a chemical mixing and loading system (for herbicide application, not mowing!).

            Thanks for your interest and I appreciate the insight into OpenAR!

      1. I have cleared parts of my property that way, but with a couple sheep in a 16 x 16 square made out of cattle panels. This works well in places with a lot of downed trees and rocks and stuff. Once the sheep go through you can clean up the area and the next year you can run a brush hog through it without too much worry.

    1. He states that the data is communicated to the mower via an Adafruit LoRa feather board. I assume the data is just the difference between the fixed station’s received position and its known location.

        1. It’s a bit more complex than just an offset. The data is more like timing corrections for individual satellites.

          The base station location is known precisely by doing a survey. If you collect GPS data for many hours, you can average out the offsets due to things like atmospheric distortion. Additionally, you can upload your collected data to an online service; those services precisely track the GPS satellites’ orbits retroactively and so compensate for slight orbital discrepancies that are unknowable at the time.

          Generally for something like this, though, a small absolute offset in the survey isn’t so important as long as the rover’s coordinate system is consistent. If the base station is 2cm off, but the rover’s notion of a tree is 2cm off too, then it will still be able to precisely avoid the tree. The danger of playing fast and loose with your surveys comes when you try to integrate with multiple base stations or base stations outside of your control.

  3. Great work Kenny! People should note that Kenny has produced about 20 videos of his mower and the video shown is actually one of the earlier ones. More recent videos can be found on his YouTube channel: https://www.youtube.com/user/ktrussell/videos.

    Here is an example of his mower doing some real mowing through tough terrain: https://www.youtube.com/watch?v=MPmK600kPxY

    If you’re interested in making your own autonomous rover please consider ArduPilot which is the same software that Kenny uses: https://ardupilot.org/rover/index.html

  4. I am honored to have a blog featuring my autonomous mower! I hope to create new updated videos soon! I am now using the Ublox ZED-F9P RTK GPS base and rover, which is awesome. I will be glad to share my experiences. And, yes, I use the mower to do REAL work all the time, cutting real grass on my farm.

    As Randy Mackay pointed out, I am using Ardupilot (the ArduRover variant) as the control system. The Ardupilot community is awesome!

    1. I like your video.. how well does it work now since 2018? as I have big property id like cut plus be able to cut my back yard,, how well does it work with things in the back yard.. say like a swimming pool can you tell it to cut around it,,,, etc… id like to see more detail.. if possible but very nice I sure could use this one of my fields took 8 hours plus to cut with a 48″ riding mower id like automated for sure

      1. Thanks for you interest. I am very pleased with it. To get the PID (and other parameter) tuning perfect takes a lot of time. I do not have it perfect. One issue is getting a reliable compass reading, which helps with turns being accurate. I plan to fix the compass issue with a moving base RTK configuration which uses 2 GPSs separated by a couple of feet or so. All in all, though, with the 60″ cut of the mower, if I set the waypoints such that it overlaps each round by about 24″, I can achieve no missed grass.

        I do not yet have obstacle avoidance (Ardupilot/Ardurover has the capability of steering around obstacles if you have a LiDAR or ultrasonic sensor to detect them). However, you can create a “mission” in Mission Planner that avoids the obstacles. If there are just a few, that can work just fine. I get within 2 feet of a fence at the edge of my yard with no fear. So, I have to manually “mop up” a few places with another mower.

        I must stress that this is a dangerous machine and should always be monitored if near anything of value (people, animals, items of value!). I have safety cutoffs that are independent of the main controller. More of these is always better!

        I have a couple of projects on my plate that I must finish, but then definitely will create updated videos, including more detail. It might be a month or so…

        1. ah ok ya that be cool.. id be interesting in making one of these… ya my property too big for this wire stuff.. but it be nice to not have to cut the grass.. ya my main fields no oppsticles.. and I gotta smooth out the ground better I let the farmer use my property but he left lot of rutts so meh… but I do like this option saves a lot of time cutting the grass… what are all your safety cutoffs.. when you coming to Canada to build this here lol .. jk.. but ya id be interested in follow ups so I can build the same etc

  5. I’m not one to post comments even though I’ve spent the last 20 years reading online and dreaming of countless project’s like this. 90 % of the things spoken about in this project are in fact over my head, and about the only thing I’m sure I could accomplish is pulling the mower out the mud and jockeying vehicles. But with so much negativity in posts that I’ve read over the years, I just had to say, you are awesome Mr. Kenny Trussell. Truly Awe inspiringly awesome. Thank you for reminding this ole country boy that anything is possible with hard work and preserverence.

    1. Wow! That is way more praise than I deserve! The saying about standing on the shoulders of giants applies greatly here. The Ardupilot community at https://discuss.ardupilot.org/ is who really gets the credit. That is a very helpful group.

      Like you, I have sooo many projects I want to do and quite a few I start and never completely tie the bow on, leaving it half-working. I am proud that I am continuing to progress with this one. I still have a ways to go for completely reliable operation, but I use it to do real work as is.

      Thank you again for your kindness!
      Kenny

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.