New type of skid-steer pivot turn? (turn using one wheel only)

I am considering coding a new type of pivot turn and wanted to check with the forum (@rmackay9) on thoughts/suggestions.

My skid steer mower spends a lot of time navigating the u-turn at the end of a typical lawn-mowing pattern. I currently am using pivot turns for any turn > 45 degrees. These u-turns involve: stop, pivot about 90 degrees (I have my pivot speed turned down to 30 degrees/sec), go forward about 1 meter, stop, pivot about 90 degrees, head back down to the other end of the lawn. Each of these turns takes about 10-12 secs. When mowing 30-second strips back and forth, this ends up being 25% of the total time mowing. If my mower were to make the u-turn by holding 1 wheel still and turning with the other wheel, it could rotate 180 degrees around the inside wheel, and it would execute the u-turn much faster and would end up in pretty much the right position for the next strip. The algorithm I have in mind is:

  • if conditions are right for a one-wheel pivot (i.e. the heading to the next waypoint is 60-120 degrees off my current heading, the next waypoint is .5-1.5 meters away, and the outbound heading from that waypoint to the second-next waypoint (i.e. back down the field) is 170-190 degrees different than my current heading), then, start a single-wheel pivot.
  • during single-wheel pivot, set inside wheel speed to 0 and turn using 1 wheel using ATC_STR_RAT_MAX and ATC_STR_ACC_MAX and ATC_STR_ANG_P parameters.
  • after single-wheel pivot, skip a waypoint, i.e. set the next waypoint to the outbound one back the other direction.

I’d be interested in recommendations about whether or not this could work. FWIW my C++ is very strong.

Also, just throwing this out there: if someone who is more fluent in the code is interested in coding this up, I’d be quite happy to test…


It would be nice to improve the cornering and I’m holding out hope that Leonard Hall’s work on S-curves will do some of this (see Leonard’s presentation on ArduPilot’s YouTube channel). In the first iteration of that work though I think what he’s planning only handles a single corner while what I think you’re suggesting requires looking at two corners.

1 Like