Reasoning and approach for maintaining manual operation for a zero-turn-based auto-mower

Autonomy is great… be it for an individual or a machine. :slight_smile:

I got sick of mowing some six acres of a grass-scape, in particular during a La Nina season, where this takes, without being precious and trying for an English lawn up to 80 hours per year.
[When I say sick, I mean I have more pressing things I could do instead.]
So, automating the mower is on the cards.

My thinking:

I wanted this mower to operate as usual under manual control; any sane person who could run a mower could run this one; as there is no to little change in the controls.
There are heaps of places on my property, which need manual mowing, where it is either too hard/cumbersome for a robot to do what I can run through with higher precision and faster too; e.g run against a fence line and avoid getting stuck on the posts (thus avoiding whipper-snipping altogether), or running around trees, without scratching the bark… or running around fruit trees.

I also wanted this mower to run autonomous at a flick of a switch.
These are the bulk areas, which usually put a manual operator to sleep. :slight_smile:

I do not need the third option: remote control; however, I believe (meaning I have no evidence for it) it can easily be achieved by adding a radio and controller to the automation setup.

The separation between auto and manual provides the continuity of use, in case the automation part needs tweaking, fixing, etc. without taking the mower out of business.

At least my research and thinking led me to the conclusion that I need to electronify the controls and actuators first.

This means that cable- or hard-links had to be replaced with a sensor on the input side, and an actuator on the output side.

Actuators of varying specifications are readily available under the term “servo”.
Sensors on the other hand — while also readily available in endless configurations and capabilities — require a bit more thought (and maybe effort).

My principle approach:

  1. Replace all actuators with suitable strength servos. I chose 12V-capable servos for two reasons: a) less current, b) no need for high-current DC-DC converters.
  2. Utilise the existing brake switch as ON|OFF input for each brake. E.g. on a zero-turn there are usually two (one per side).
  3. The choke input can be replaced by a push button (ON|OFF input)
  4. Throttle can be either a linear motion sensor in the throttle controller or a replace by a rotary encoder. I chose the latter. (Leaving the throttle in its original condition).
  5. The control arms for speed and direction to drive the hydro-stats seem more tricky; as in finding a spot to grab and turn the movement into some electrical signal. I have chosen to use linear motion sensors, which I have designed and 3D-printed, and which turn the linear motion into angular and raw data.
  6. The cutting deck switch remains in place, but routes* to the Arduino.

And here comes the twist, I have to admit, that surely different solutions exist to deal with the analogue or digital output from the sensors. E.g, I can imagine some can easily do this with flight controller inputs. But, I have no clue at present about the capabilities of these things, as I am new to the RC world and its related components, which I like, assuming like most, simply plug together without much overhead.

I have been building lots of micro-controllers for my home/property automation and other uses, hence, I have elected to use (tech I understand) an Arduino MEGA to capture all the inputs. Realise the safety features in code, and even improve functionality, such as throttle adjustment when hitting more voluminous grass patches, or auto-choke.

This Arduino will have and electronic ‘switch’ between manual and auto mode, by routing either automation commands from the flight controller to the actuators or Arduino commands to the actuators. It will also provide the input signals the flight controller may need.

As part of this electrification, I have also chosen to replace the standard wiring loom with my own. This has the following advantages:
a) it would be too hard, as in too much interference, when splicing the existing wiring loom to add/grab the required inputs.
b) the mower can be easily and speedily restored to factory specs
c) the new wiring loom is far simpler (either pull up or down a voltage, depending on fail-safe required).
d) the overall desire to NOT modify factory components, but rather replace or add (augment) components.

While this will work, I am sure I will learn through the journey of building this autonomous mower, that the ‘flight-controller’ may well be a chance to replace the Arduino?!

[I have the intention to update this post with the actual implementation over time and as I progress.]

Happy automation.