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…

@Christopher_Milner,

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