I bought a cheap slope mower from an Amazon reseller for Chinese slope mowers operated by remote control. Shipping and communication were good - the reseller is located in San Antonio. The slightly inflated price avoided me having a shipping and customs agent, which tends to get expensive when ordering large items direct from overseas.
I’ve had the parts on hand for some time and finally committed a weekend to “speed running” the conversion to full automation with ArduPilot. Rather than rambling on in this post, here’s a link to a short video series:
Possible future improvements include a servo operated engine throttle and possibly remote electric start. This particular Kohler engine has no electric start kit available, but maybe I can find something to kludge together. I’d like to increase the speed a little, but I’m not sure the existing drive motors will suffer much more voltage, so that will likely entail a bit more cost (maybe when these inevitably burn out). I will continue to refine the turn behavior, as well. Last but not least, I need to improve the telemetry antenna arrangement - it’s very poorly situated, and range is expectedly shorter than it should be.
Word to the wise on these mowers - apparently the blade assembly is often sloppily fit on the output shaft and may require some shim stock and/or a quality replacement bolt. This one has run for about 2 hours without issue, but I’ve heard at least two reports of near catastrophe early in the life cycle. Best to check the fit and shim/replace parts early. I will be checking this one before I run it again.
Nice !
Thanks for documenting the build. Cool mower.
I’d highly recommend building a bumper bar front and back of these mowers, not for trees, but more to keep your toes on your feet. The blade on ours is very close to the front and rear of these machines.
Are you happy with the CUAV C-RTK-2HP for this application? price and form factor seem excellent.
Thank you! I agree. The rear keeps feet fairly protected via the electronics housing, but the blade is quite close to the front on this model. I prefer to approach from the side where the tracks keep errant limbs from becoming detached.
The CUAV GPS module is so far performing well. It’s faster to report a yaw solution than an F9P-based config and positioning seems solid. I do very occasionally see a brief GPS Unhealthy warning that I’m guessing is related to message rate. I need to look at a log to determine the cause. It’s more nuisance than actual issue, though, since it’s brief and doesn’t seem to impact performance.
Blows me away that you can get a mower conversion working this fast! Your understanding of ardupilot, mission planner, all the things is impressive. So I am curious about what sort of numbers for gains the auto tune spit out vs what you ended up changing it to? Did you ever try a larger circle radius for autotune on the steering to see if the gains were more reasonable? and this might be a silly question, but the autotune script tune steering and throttle, but you ran 2 different circle radii for steering vs throttle, I assume you just recorded the PID’s for each radius then manually entered them after words? Im still fighting my mower not wanting to mow in nice straight lines and having a hard time telling if its PID or position controller related.
QuikTune requires a minimum turn rate for tuning the steering controller. This mower is so slow that I had to tighten the radius to 2-3m just to achieve that minimum. And it spit out gains that were roughly double what I eventually settled on. The tracks need a lot of “persuasion” to effect a direction change, and the achieved turn rate during the tune was barely adequate. So, the script wasn’t well suited to this use case. It did verify my expectation that ATC_STR feed forward and gains need to be high - it just didn’t quite get the values correct via the scripted algorithm.
Likewise, it requires a minimum speed for throttle tuning. So I opened up the radius to get a faster speed around the circle.
There’s a bitmask to choose whether to tune steering, throttle, or both. So I split the sessions up that way.
You need to drive in acro mode to evaluate the steering and throttle tuning. If it’s squirrelly, the gains are likely wrong.
Once it drives well in acro, you can move on to nav tuning in auto.
Log files are helpful, as well, to determine root cause. Start a new topic if you want specific help with your tune.
I have your build bookmarked. I bought a similar mower with wheels instead of tracks and am waiting (im)patiently to get a call from the trucking company to make the delivery. It’s at the NY port now.
I am hoping that the electronics are of high quality. Your assessment of your cheapo mower was not reassuring. The company I ordered it from makes a lot of heavier equipment like track hoes, and I found someone on Reddit who purchased a mower from them and is happy.
This GPS unit with two antennas seems to me the way to go. It seems like a new Cube Orange with all the cables, etc., telemetry radios and this RTK unit can get me started for around $1200 using online RTK corrections.
Oh, I definitely just put several hundred dollars of pretty good quality electronics into a platform that didn’t deserve it. The point was that it worked with only a modicum of effort on my part. I’ll say nothing for the longevity of the stock components. The Kohler engine is reassuring. The garbage electronics that I didn’t replace…not so much.
An awesome build that put the rest of us to shame. Good job.BTW, I’m getting some brief flashes of gpsyaw at 665, but then goes immediately back to correct value. Wonder if you find a root cause, that would be interesting.
Thanks for sharing your setup. I have questions about your GPS. Are you using rtk correction? If so, is it from ntrip server or rtk-base? I tried to set up a rtk-base and send RTCM correction through radio link. But have trouble setting up the connection. I want to feed the correction though the usart port of the c-rtk-2hp. It seems logical and straightforward but I can’t get it to work. Not sure if I need a program for setup.
I operate a fixed base that has both local connectivity and NTRIP, so I use a mix of both, but the method of transport is kind of irrelevant.
Simply use Mission Planner’s RTK/GPS Inject feature and encapsulate the RTCM3 data in your MavLink telemetry stream (the autopilot handles the rest of the details via its connection to the GNSS module). Mission Planner supports NTRIP, serial, and TCP/UDP connections to the fixed base data source.
I realize I left a bit of a season ending cliffhanger in the last (part 7) video I posted. The upgrades were mostly successful + one miserable failure. I will try and post an update video in the coming weeks.
Total cost was under $5,000, but not by much, and there’s likely not a way to make it significantly cheaper unless you want to fabricate the mower itself from self-sourced parts.
A quick look at DareDevil’s website shows that prices have likely increased since my time of purchase.
Oh boy! chinese off the shelves mower robots are in the 2000-3000$ price range nowadays
A pity we still can’t build a DIY robot mower using ardupilot that is less expensive than these chinese robot mowers.
In your build components, the mower base itself is obviously a big cost but also the Cube autopilot is orageously expensive (and for no objective reasons) versus similar quality alternatives (such as for ex CUAV V6X or X7+, especially for an ardurover than does not require the highest level of sophistication and redundancy as for a flying drone)
If your mower 's base was a regular cheap gas powered mower proiced around 200 dollars on amazon and if you’d use a cheap H7 flight controller instead of Cube Orange, to what total cost do you think we could get to ?
I don’t know how to quantify any of that other than to say that there are H7 autopilots available for about 1/3 the cost of the Cube Orange+ that I used (I already had it on hand). The examples you gave certainly aren’t significantly cheaper than any source I’ve seen for a Cube Orange, BTW…
The remainder of the electronics hardware that I used are about as cheap as you can get away with using, assuming a moving baseline GPS config.
Otherwise, you’re asking me to design a DIY project from the ground up, which is beyond the scope of what I think this topic entails. Additionally, a lot of the cost of a DIY project depends on the skill (or lack thereof) of the fabricator…
Do I think you (or anyone) should reproduce exactly what I’ve done here? Not really.
Then why did I do it? To showcase the art of the possible, inspire ideas, and provide a few technical details and lessons along the way.
Just asking questions and thank you for answering them.
I ordered (unfortunately to the chinese but contrarily to our western’s policy of suiciding our industries, chinese are the only ones left who can still produce something) a mower conversion kit that is a set of 4 24V DC 250W wheelchair brushed motors with corresponding four all-terrain wheels. Cost is about 500$, shipping included.
I will then try to weld (no experience in welding but that will be a learning experience) a custom DIY frame that could be modular to either by used as a standard rover (that can carry whatever payload) or be used with a “lawn mower body” insert.
To have a true 4 awd rover, two cytron smartduo motor drivers will control each one axle. Skid steering mode of course. I wonder if supplying the same ardurover’s controller rc output to the two cytron’s RC inputs will cause any issue or not ? Builds that I see usually parallel the two respectively left/right motors to use only one cytron (or sabertooth driver). But experience of these people show then that if a wheel is in the air (when going over an obstacle), then the other wheel of the same side does not turn. So you do not get true 4x4 awd capability. This is why I’m going to try the two motor drivers route. What do you think ?
For the “flight controller”, I have plenty laying around used for my drone builds. I have a H7 one that I might use. I still have an “old” Ardusimple RTK FP9 GPS system I will recycle for this build. It is perfect for a rover as it is too big and heavy for a quadcopter.
A challenge shall be to tune and synchronize the wheel’s speed, especially four of them. And there are no built in encoders on these motors so EKF3 shall not be fed with optimal data. Or I have to add separate encoders but that is a pain.
Do you think of anything else important to care about for such a build that I may have missed ?