How to stop, turn and continue with precision during a mission?

I am sending you the log of these graphs if you would be so kind as to analyze it.
It is a single log where I have been changing the WP_RADIUS parameter.


I had a quick look at the logs and the speed tuning is pretty good with the desired and actual sticking pretty close together.

The turn rate tuning is showing a lot of overshoot though.

From the PID graph it looks like the response is all from FF so I’d make these changes:

  • ATC_STR_RAT_FF 0.5 (was 1.4)
  • ATC_STR_RAT_P 0.15 (was 0)
  • ATC_STR_RAT_I 0.15 (was 0)

As Kenny suggested higher up in the discussion if tuning in Auto it would be good to test with longer straight paths. The reason is that the corners add a ton of disturbance so it makes it less clear if the speed and turn rate controllers are working well or not. Normally I recommend tuning the turn rate controller in Acro mode instead of Auto but I suppose using Auto keeps your hands free… the problem with using Auto though is that you’re only going to be seeing pivot turns so it is a very specific repetitive situation. I think using Acro will allow you to test out different turn rates and see the response and get closer to the ideal tune.

… anyway, maybe the param settings above will work a bit better…

1 Like

Hi all,

I have gone to another site where there is more space to see if I can find differences by having the waypoints more separated.

@rmackay9, about the parameters you recommended.
It turns out that any value less than 1 in ATC_STR_RAT_FF causes the vehicle to barely respond to turns or very very slowly. Check out the video. (with this parameter = 1)

I usually do the setup in ACRO but later do a batch of missions in AUTO so that later I can properly compare the graphs obtained.

In ACRO and with ATC_STR_RAT_FF between 0.5 and 1 the vehicle barely responds to turns.

If in acro ATC_STR_RAT_FF <1 the vehicle barely wants to turn on its axis.

I understand that in the graphs, as you indicate, there is a lot of overshoot, but “visually” the vehicle needs almost an ATC_STR_RAT_FF >2.

@ktrussell , indeed with lower values of ATC_ACCEL (or ATC_DECEL) the vehicle seems not to “overshoot” the waypoints. They were at 0.4 and now I’ve set them to 0.1

I show you some graphs with the values of the parameters to see if you can advise me on the next step:


Maybe the steering response is very non-linear.

I see that MOT_THR_MIN has been set to 20% which is the parameter’s maximum recommended value. I guess you followed the instructions on setting Minimum Throttle? I suspect maybe you still couldn’t get the motors to spin at a low throttle percentage and this led you to set it to its maximum of 20. FYI, parameters can be set to values higher or lower than the recommended values from MP’s full parameter list or full parameter tree screens.

1 Like

For skid steering vehicles where pivot turns are important, I think you need to be careful with MOT_THR_MIN. Too high a value will almost certainly prohibit good pivot turns.

I’m wondering if some ATC_STR_RAT_MAX or ATC_STR_ACC_MAX clamping might be of value here? The desired rate jumps quickly followed by a somewhat slow ramp of achieved rate until the achieved rate accelerates and overshoots. Might that be improved by limiting the rate or acceleration in those parameters?


This advice from Yuri sounds good to me too.


Sorry for my late reply. I had my week holiday.
About MOT_THR_MIN … yes, I followed the instructions on setting Minimum Throttle but I got 20 value to spin all the motors.
I repeted again this and I can get 18.
One question, should spin all the motors or just one of each left and right side?

Anyway, then I thought maybe I had to calibrate ESC but I can not do it.
From Mission Planner I got this error.

(I remenmer did that with my copters and working well)

So, I tried manually like this and as well not working well.
I have brushed motor 100 rpm (vcc) with this ESC

But I think is already well calibrate.

Tomorow I’ll try with ATC_STR_RAT_MAX or ATC_STR_ACC_MAX parameters than @Yuri_Rage sugguest.

I think MOT_THR_MIN should be set to the highest value possible where no motor movement is evident.

For testing purposes, you could try setting it to 0 and compare results.

You can follow the instructions for the ESC to calibrate it without using Mission Planner at all. As long as it powers up in calibration mode (usually by powering the Rover up with the transmitter throttle set to high), you should be able to get it done.

Then maybe I could lower the value a bit more, maybe to 16.

I’ll do.

I have tried several times manually but I can’t see any difference, so maybe I’m not doing it correctly.
I will try again.

I don’t think that most brushed motor ESCs can be calibrated.

I started with what @Yuri_Rage proposed.

My starting parameters were as follows;

With WP_RADIUS = 1
2 ![3|690x331]

Everything starts to get worse when I decrease the WP_RADIUS parameter to < 1

  • MOT_THR_MIN = 0
    WP_RADIUS = 0.5

Now with

  • MOT_THR_MIN = 40
    WP_RADIUS = 0.5

So I consider MOT_THR_MIN = 15 to be the best I have.

Now with this parameters with this start:

  • ATC_STR_ACC_MAX = 180

After test the best should be

  • WP_RADIUS = 1
    • MOT_THR_MIN = 15
    • ATC_STR_RAT_MAX=18
    • ATC_STR_ACC_MAX = 36

As I have not found a huge improvement I have tried again to improve the PIVOT_TURN.
I set it to ACRO and by simply rotating it on its same axis I try to adjust FF and P and I.

I think that at least in the graph it seems to be more in line with these parameters

But even this way if the parameter WP_RADIUS <1 I don’t get any improvement.

Sincerely I begin to think that maybe the misadjustment is somewhere else because although I understand that the tuning process is tedious I never thought it would take so long to obtain a positive result.

Are you sure that I should continue in this line or do you think that maybe the gps+heading is the one that is not working well?

Thank you for your support and I certainly need some light so I don’t start to get desperate.


I think you should stick with the config that gives the best results above (e.g. WP_RADIUS = 1, MOT_THR_MIN=15).

The turn rate control looks pretty good in the picture above although we’re only seeing one turn rate (20deg/sec) and we can’t see the FF, P and I components of the output.

I think it would be good to test with some long segments (at least 10m, hopefully even longer) to see how good the navigation control is.

I think SCurves is coming in the not too distant future. It might still take a month… but surely not as much as two months.


@comodin, I don’t have much to add to what Randy is suggesting, but I am curious if you tried 0.9, 0.8, etc. for the WP_RADIUS, since 1.0 was pretty good, but a little short of the WP, and 0.5 went long (and a little crazy).

1 Like

Ok, I’ll take it as a starting point

I imagine you are referring to this chart

Here are the corresponding FF, P and I graphs.

Let me know if you need anything else

I’ll do!

Since you showed me the video of the Scurves I’ve been looking forward to it.
This month will take forever :wink:

Hi @ktrussell,

I usually try with values 0.1, 0.5, 1 and 2.
Maybe I’m very wrong but I always thought that if I have a RTK gps it’s because I want cms accuracy so something > 0.1 would not be what I’m looking for.
My aim is to get the vehicle between plants that are on a terrain like this.

So wp_radius >0.5 would make it completely unfeasible.

However I see robots on the market that are capable of doing this and they are most likely based on Ardurover, don’t you think?

When I watch your or @Yuri_Rage videos I know that ArduRover is capable of doing this and therefore the reason I don’t do it yet is that I’m too clumsy :wink:

You have some more work to do for sure, and I’m not certain we can craft a 100% solution for you by discussion alone - there’s a process of discovery to be done on any new vehicle.

Your assumptions about WP_RADIUS and accuracy are a bit misled. Your rover is not making “pure” pivot turns. Though it may use skid steering, the screen captures show that it has a turn radius greater than 0, meaning that it does not pivot about a central axis between the wheels. If you want the vehicle to stop exactly on a waypoint and pivot to the next waypoint, you must first ensure that it’s capable of rotating in place.

If the vehicle is incapable of making a zero-radius pivot turn like that, WP_RADIUS should be set to the turn radius of the vehicle, such that it intercepts the next course on the centerline (as it appears to do when you have a radius of 1m set).

1 Like

Hi Yuri,

I don’t understand this very well.
If I put the vehicle in MANUAL mode from the transmitter it is capable of rotating in central axis between the wheels.
Do you mean it should make a turn on its own axis in ACRO or AUTO mode?


Yes. If it’s capable of pivoting about its central axis in manual mode, it should be capable of making pivot turns like that in acro or auto.

First of all I must thank people like @Yuri_Rage, @ktrussell and @rmackay9 who make possible that technology is available to everyone including me who does not speak your language and that many times I have to resort to the translator to understand “exactly” your words because otherwise it is very difficult to move forward.
I understand that I “just started” but my intention is to contribute and give back to the community all that you are teaching me so selflessly.

For example, your previous answer that I probably didn’t understand clearly what the WP_RADIUS parameter meant has made me think a lot and evidently you were right.

I ran some other tests this afternoon with much more space and these are the results.

With WP_RADIUS = 1

The result was excellent and I was elated.
(However I don’t understand why there are those “spikes” in the graph but I will do a lot of research on how to configure PIDs in order to understand it.)

Then, without changing any parameter, I created a mission but with the nearest waypoints and I was very disappointed.

PIVOT_TURN_ANGLE Maybe because I haven’t touched this parameter yet and it is set to 60 by default?

Thanks again

1 Like


Only change PIVOT_TURN_ANGLE = 30 I got better result:

Let’s go to the next step … :wink:

1 Like