Best gear for starting ArduPilot Mower

Looks like it is not as easy as I thought :slight_smile:

Thanks Steve and Yuri for the guidance.

Well, difficult for a newbie to understand what and what not to read or take with a grain of salt; though I understand things are progressing fast.
On one hand I try not to ask the silly questions, on the other hand documentation often does not keep up woth the lastest; hence, my list above, whihc I thoiught could summarise as a quick-start guide what to do.

In any case, I have just done the a round in front of the garage with remote control inputs to drive the mower.


[Me sitting on the mower with laptop and remote control.]

  1. Ensured the mechanical centre of the servo is the centre.
  2. I limited the servos’ travel to avoid these running into the physical limits of movement tolerated by the hydro-stat.
  3. Adjusted the linkages so that hydro-stats and servo centres match
  4. adjusted the trim in MissionPlanner
  5. put the hweel on and had a crack at it… works! :slight_smile:

Yes, I am happy…

What I observed:

  • the servos are mounted with the horn axle facing outward. This required to set the right servo to inverted in the servo software (not MP)
  • driving forward, both linkages go backward (as they should)
  • forward steering is correct too
  • driving backward and steering behaves the opposite. (Turning the stick to the right results in the mower to go left.)
  • steering in both directions is in principal aggressively fast.
    I will now follow the documentation as pointed out.

As I can see, there is a setting for MOT_SPD_SCA_BASE which might help with this?!

On that note: throttle is smooth, while steering is darn fast; not sure why this is so by default.

Again, I appreciate any pointers and direction.

2 Likes

Servo reversing can be done within ArduPilot or via servo programming. The results are identical.

I prefer to keep the servo programming bone-stock and tune the parameters within ArduPilot (including trim and limits). That way replacement is simple and requires no documentation of servo programming. That is just preference, not procedural, and it does have its limitations if servo travel must be severely limited vs the stock configuration.

You should NEVER reverse an RC transmitter channel to achieve the same result without careful thought as to the implications. Often, that results in what appears to be proper operation in MANUAL (RC) mode but any autopilot assisted mode (AUTO, ACRO, etc) will behave improperly because the autopilot doesn’t know that you’ve reversed a transmitter channel. So, for example, it will command a left turn, the vehicle will go right, and the control algorithms will spiral out of control.

You can confirm proper operation/servo directions in several ways, but the easiest is to switch to ACRO mode and see if it goes forward/back/left/right with corresponding RC input.

This page addresses your observation regarding steering in reverse. You can change the behavior, as indicated.

ArduPilot throttle has a slew rate limit applied (tailored by MOT_SLEWRATE). Steering does not obey that slew limit, counterintuitive as it may be on a skid-steered vehicle. It’s an artifact of keeping the same basic control algorithms in play regardless of whether the vehicle is Ackerman or skid-steered. There isn’t too much you can do to avoid that, but you can apply some expo in your RC transmitter to dampen the effect when driving via RC.

MOT_SPD_SCA_BASE is intended to be a tuning parameter for assisted modes and is rarely changed from default. It is speed based and likely most useful on Ackerman steered vehicles that have very aggressive steering response (to limit steering response as speed increases, which isn’t really the desired outcome here). I suppose it’s possible you could force it to result in favorable behavior in MANUAL mode, but I suspect the 2nd/3rd order effects could be negative when the autopilot takes control.

Recommend you skip the advanced steering tuning for now and get things working by continuing to follow the wiki instructions, first.

…and I wouldn’t go for too many more rides with the computer and radio in hand…as you noticed, control can get twitchy/violent in a hurry!

2 Likes

Haha… totally understand… I was in full control, as I have been aware of the fast steering response.

The reason I was sitting on it is a weird thing I didn’t dare to post…
The seat switch is as standard or primitive as it can get.
Dual throw, one NO one NC. Hence to disable it, unplug it, which will open the NC, and bridge/short-circuit the NO. To my astonishment this did not work; despite me checking the contacts with a Multi-meter. Anyway, I wanted this thing going, and the battery I used as weight would “wander” off due to vibrations, hence, I said bugger it and sat on it myself.
No need to reply, if I can’t sort this I shouldn’t build an auto-mower :smiley:


And yes, will put the servos back to standard… certainly valid points.

A brief follow-up on MOT_SPD_SCA_BASE after a review of the source code:

Speed-based steering scaling does appear to be active in all modes (selectively for MANUAL, per MANUAL_OPTIONS), however, the scaling is only ever applied as a multiplying factor that reduces steering response as a function of speed, which must be above MOT_SPD_SCA_BASE to take effect.

That’s a complicated way to say that slow speed steering response will not be (appreciably) dampened by changing MOT_SPD_SCA_BASE.

MANUAL_STR_EXPO will be introduced in the next stable release (4.4+) of Rover to help combat the rapid steering response that you’re experiencing.

2 Likes

Which flight modes should I set up for a skid-steer mower?
As in, which are useful?

(I think I have Auto, manual, and maybe another; “maybe”, because I am not connected to the mower in the detached garage ATM; 32 deg F ATM.)

I would suggest Manual, Auto, and guided if you are just using a a 3 position SW. there is a way to get six modes using another radio channel. I don’t have a spare radio channel so I just stick to 3 modes. Manual needs to be at the top so when the SW is up you are in manual position to start out with. I find the guided mode useful sometimes to lead the mower around with the computer.

In response to a few questions I’ve received… @Ger_H @Jan_Hacek @Matt_Angilley

For blade motors I use these

from Chongqing Yurui Agricultural Machinery Sales Co., Ltd. https://cqyr.en.alibaba.com/minisiteentrance.html?spm=a2700.details.cordpanyb.2.9e321d13q4s0om&from=detail&productId=1600620146469

For blade motor controllers I’m using Flipsky FSESC FLIPSKY Mini FSESC6.7 PRO 70A base on VESC6.6 With Aluminum Anodized H (Make sure you isolate these speed controllers from your flight controller otherwise you’ll fry one of them!!!)

For traction motors I’m using these 63100 140KV Sensored Version Brushless Motor for Electric Skateboard s – Dongguan Freerchobby Co.,Ltd 80Kv model

For traction gearboxes the Neugart PLE 80 PLE - Neugart USA Corp.

For traction ESCs benjamin vedder’s VESC 6 controllers VESC 6 75 (Make sure you isolate these speed controllers from your flight controller otherwise you’ll fry one of them!!!)

2 Likes

Thanks for sharing, Chris! I’ve been curious what’s under the hood. Quite the chore to find compatible hardware at decent prices, and I’m sure this will help some folks.

Hey Chris, I have always wondered if anyone has taken a Ryobi or Ego electric zero turn mower and put an Ardupilot setup on it? I figure you know what is going on in the electric mower universe. The consumer electric mowers I’ve seen look way underpowered to do big mowing areas. I was just curious about what people have done in this area.

Don’t have any insight to that, sorry

Is the centre of gravity for the zero turn mower:
a) where the diagonals from wheel to wheel cross, or
b) middle of the rear axle?

I am asking because of the weird results Yuri got here:

I think it should be b)


I have done all the tuning as far as I can tell.

I reset the servos to standard.
I inverted the right servo direction in the MP servo settings.


What should the emergency stop kill? E.g., run away mower?
a) kill the engine, thus mower stop
b) kill all power (also kill the flight controller)
c) something else


I also noticed that the mower points in the opposite direction on the map in MP. I swapped the GPS antennas for a quick fix, still the same, as in no change of direction.

Center of the rear axle. Again, you’re referencing a post that has been overcome by events with code fixes.

1 Like

Should I not read this stuff then? Seems to get me into trouble…

I have changed the INS_POS* values to reflect centre rear axle.

The GPS, after I drove the mower, is now pointing into the right direction.

After driving the mower for the first time after resetting the drive servos, the throttle response is still squishy as in smooth rather than responsive. However the steering response is now proper; not sure what changed it.

Also, what should the emergency stop kill? E.g., run away mower?
a) kill the engine, thus mower stop
b) kill all power (also kill the flight controller)
c) something else

I haven’t thought much about it, but figured if I use the ignition switch to shut down the engine; hence, mower, and the flight controller, this is not helpful; meaning, the flight controller should be switched on|off with a different switch.

What approach are people using to do this?

You are learning with a bit of trial by fire. So…read more! The follow on posts on the most recently referenced topic discuss a bug fix.

E-stop is a subject with many opinions, most of which are correct. It all comes down to philosophy.

My take:
A physical e-stop button/switch should kill everything. Stop it dead. Now.

RC enabled safeties should include mechanisms to switch to hold mode, disarm, and kill ignition. Those do not have to be simultaneous, and they are listed in order of severity of response.

A separate wireless safety relay should also be employed. It should, at a minimum, kill ignition. There are lots of key-fob based products with relay modules that can be wired in series with onboard circuits.

1 Like

:slight_smile: fair enough…

Yes, can agree with that. Also easy to implement. (Engine to ground and interrupt power, as most e-stop switches have a NO and NC.)


Back to the squishy/lagging throttle… where can this be set?
The current effect is, if I let go of the throttle (so it centres itself = neutral), the servos don’t bounce back to neutral, but leisurely go to neutral, meaning the mower can run over the intended stop by 10 metres (depending on engine throttle).

Is the over damped throttle response in ACRO or MANUAL mode?

Just coming back from ‘testing’…

This sloppy throttle response is gone when engine revs are increased (say 60%)… (was so far testing in idle)… recall to having been in ACRO mode.

I went through the tuning, and most values didn’t need changing.
I did piddesired and pidachieved, which was fine.
Cruise was learned.
Can this tuning graph be played back?
As it is difficult to watch the graph while also watching the mower not to run into things. It currently has a tendency to move slightly to the right.

A log file would tell the whole story. Mission Planner has a “Dataflash Log” tab for that, but teaching log review is probably beyond the scope of this thread.

Double check that you still get the snappy response expected in MANUAL mode. Unless you mis-programmed the servos to reduce the slew rate, that should be the case. The stock slew rate is very rapid.

Assuming the servos have not been accidentally mis-programmed, sluggish response in ACRO mode indicates a poor tune. It’s usually either an ATC_SPEED_P term that is too low or an ATC_SPEED_I term that is too high (causing wind-up).

1 Like

Agree… read up on it, and was greeted with Error:System.TimeoutException: Timeout on read - GetLogEntry :slight_smile: Looks like the log files are too big. … and time out after 10%-ish.
I have to rip out the flight controller as I didn’t not cater for “frequent” SD card access (given I can update the firmware remotely.

I am not easily scared, if at all, but seeing this mower running around is a concern ATM, until I trust the tech I guess.

Automated equipment can be dangerous if you are not in control even when it is running on its own. My approach is to put enough safe guards in place so I feel comfortable. Anyone who has operated this type of machinery will experience things you did not expect (usually cased by yourself) so literally you have to protect yourself from yourself.
I have crash buttons on each side of my mower and an RC controlled emergency cut-off switch (which has been used a few times). I have also the throttle and the blade control automated so I don’t have to get near the mower once I am ready to rev up, turn on the blades and mow. My RC cut-off signal does not go through the flight controller. I was able to pick off the PWM signal right at the RC receiver bypassing the flight controller. You also have to make sure you stay in range for your RC transmitter to reach the mower. Failsafes can be used to insure the radio is still connected.

1 Like