Servers by jDrones

How to solve ROVER meandering?

I installed ArduRover 4.1.0 (beta) on Pixhawk CUBE Orange to create a skid steering type ROVER.
This ROVER is a MovingBase-type robot that uses RTK-GNSS.

The robot always ran autonomously in RTK-Fix, but it always meandered.
I changed below parameters, but I could not solve the problem of the robot meandering.

To solve the meandering in Rover, I believe I need to change another parameter as well.
If anyone knows of any good solutions, please let me know.


Hi @SpreadKnowledge,

Thanks for trying out the 4.1 beta.

Have you tuned the turn-rate controller in Acro mode as described here?

When tuning a vehicle I normally start with the relatively easy speed controller and then move onto the turn-rate controller. Then finally I do the navigation.

Can you include an onboard log?

Thanks for responding.

Since I have recently started ArduPilot, I have hardly checked the “Basic Tuning” parameters.
I’ll look at the link you shared and try to adjust the Basic Tuning parameters.

You can download the on-board log (log file saved in Pixhawk CUBE) that I got when I ran the robot the other day from the following URL.

Thanks for your help!


I had a quick look at the logs and here are a few comments:

  • Some of the arming checks (ARMING_CHECK=1024) have been disabled but it might be a good idea to change this back to “1” because the check could tell you about various issues in the setup.

  • CRUISE_SPEED=3 and CRUISE_THROTTLE=50 are too high for this vehicle. I’m sure after you do the speed tuning they will be more suitable but a rough guess is that CRUISE_SPEED should be reduced to 0.2 (m/s).

  • This vehicle looks very slow (top speed of less than 0.3m/s?) which means its movements are so low they are down around the same level as GPS noise. This will make tuning the vehicle difficult unless an RTK GPS is used.

  • The maximum turn rate of this vehicle also appears low (less than 60deg/sec?) so it might be good to reduce these parameters:

    • ATC_STR_RAT_MAX=60
    • ATC_STR_ACC_MAX=120

Anyway, happy to provide more feedback later after you’ve done the turn rate and speed tuning.

Txs for using AP!

1 Like

Sorry for the delay in getting back to you, thank you for your advice the other day.
I have tried to adjust various parameters after getting your advice.

I have yet to resolve the meandering.
The width of the robot’s meandering has been reduced, but the meandering itself has not been fixed.

My ROVER uses two ZED-F9P RTK-GNSS modules to estimate its own position and orientation. And I use XBee S2C module for telemetry.
Since ROVER needs to perform calculations for self-positioning and orientation estimation using RTK-GNSS, is it possible that there is a lag in communication and calculations?

Finally, is there any way to make the driving control of skid steering type ROVER as shown in the following figure?
If the ROVER doesn’t change direction while running, but instead pivots turn on a WayPoint and turns completely to the next WayPoint, and then starts running straight, it will be less likely to meander.


I strongly suspect the issue is coming from the turn-rate controller. can you try tuning it using the instructions found here on the wiki?

The part where it recommends setting GCS_PID_MASK and then viewing the desired and actual turn rate is the most important. You may also want to temporarily set ATC_STR_RAT_P and I to zero and just get the _FF right. This is the most important one and then normally you can set the P and I to about 20% of whatever the FF is.

After the turn rate controller is tuned, it may be useful to increase MOT_STR_THR_MIX from 0.5 to 0.8 (or even 1.0) to prioritise steering over speed.

Servers by jDrones