ArduPilot Slope Mower Conversion

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:

Components of note:

Rover QuikTune Script

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.

5 Likes

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.

1 Like

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.

…and wait till you see what I do next :rofl:

1 Like

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.

As usual, start a new topic for help on unrelated issues and provide a log.