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.

1 Like

I apologize for the delay in getting back to you.
Finally, I was able to solve the problem of the ROVER meandering!

I reinstalled the ROVER-4.1.0Beta firmware again on Pixhawk and reconfigured all the parameters from scratch.
It was at this time that I first noticed some changes in the MovingBase setup documentation.

Then I carefully checked the turn rate documentation and set the FF and other parameters.
The MovingBase system in Rover 4.1.0Beta reacted so accurately and speedily that Rover was always able to accurately estimate its direction!
I can’t thank the ArduPilot staff and community enough!!

Next, however, the robot’s GNSS status did not RTK-Fix anymore.
I used u-center to install the latest firmware on the ZED-F9P and reconfigured it.
Still, I could not solve this problem.

I have confirmed that using the same ZED-F9P and antenna on another robot that doesn’t use the MovingBase method with Rover 4.1.0Beta firmware installed results in RTK-Fix status.
Apparently, setting up MovingBase as per the documentation may not result in RTK-Fix status.

How can I enable RTK-GNSS and get RTK-Fix status with MovingBase-based robots?

Sorry for repeating myself.

1 Like

While looking for parameters related to GNSS, I found “GPS_GNSS_MODE” and “GPS_GNSS_MODE2” in the Advanced Parameters.

After setting up as shown in the following figure, I confirmed that the robot’s GNSS status is set to RTK-Fix even in the MovingBase setting.

Since the robot does not need to use an electronic compass, I am now able to facilitate autonomous driving of large robots for carrying cargo.
Sorry for the inconvenience, and a huge thanks to the ArduPilot team for adding the Rover firmware and new features!

1 Like

I’m trying to build an Airboat with differential thrust
I have:
Pixhawk 4 with the power module
here3 GPS
R12DS Radioink receiver
AT10 Radiolink transmitter
2 80A ECS
2 brushless motors 620KV

I have installed AurduRover/boat

The boat works great on manual however on Autopito is wandering around

I’m attaching my log files
could someone take a look? Please and let me know what I’m doing wrong


Did you follow the sequence of tuning steps comprehensively covered in the Wiki? No point in reviewing a log until you have done so and have some specific questions.

Hello Dave,

these are the parameter I checked, please let me know if I’m missing something


steering rate


I meant following these procedures in sequence:
Speed & Throttle, Turn Rate, Navigation.

I think I missed the navigation

ok thanks

That takes the longest to complete but if you want the craft to track straight between waypoints you have to do it.

any values recommendation for the:


IMG_0624 (1)

No, each vehicles is different. I can tell you again to follow the process. Starting with:
Recommended steps for tuning the L1 controller.


It has taken me a while but I’m ready to look at the log file now so I’ve sent you a request for access.

When tuning a new rover it is important to tune the speed controller and turn rate controller before moving onto the navigation controller (see tuning process wiki page)

Normally the meandering is from a poorly tuned steering rate controller not the navigation.

Hope this helps… I think we should be able to get the vehicle tuned well.

Ah, ok. I see the pic now so it is a skid-steering boat but using multicopter ESCs for thrust? So I guess the ESCs cannot go in reverse right so no reverse thrust? We don’t really have great support for vehicles that can’t reverse but may be it will be OK.

I think we should reduce some of these parameters to handle the slightly slow response from the frame:

  • ATC_STR_RAT_MAX, 80 (was 180)
  • TURN_MAX_G, 0.2 (was 0.6)
  • ATC_ACCEL_MAX, 0.5 (was 2)

Also it looks like EKF2 is enabled but might as well use EKF3 with Rover-4.1 although it probably won’t make any difference.

  • EK2_ENABLE,0
  • EK3_ENABLE,1

Could you try driving it around in Manual a bit first so we can see the frame’s performance?

  • give it full throttle in manual for at least 10 seconds so we can see how fast it can go
  • after it has come to a stop, give it full left or right steering so we can see how quickly it can turn.

Then let’s try Acro mode:

  • give it full throttle for about 10 seconds and then release and let it slow down.
  • give it full left or right steering for 10 seconds so we can see how well the turn rate controller is working

Then post the logs here of the above. It doesn’t need to be perfect…

Hello Randy
thanks for the help, I appreciate it a lot.

yes, I’m using skid-steering boat, the ESCs are programmable, the documentation for the ESC says it could do reverse but I have not tried it yet.

I’ll try this new parameter.

oh, I took the boat out for testing yesterday and I burned 3 motors, no all at the same time, while running on autopilot. the autopilot runs very “choppy” right now, one motor burned and I did replace it with a new one, the second test motor burned and I replaced the ESC with new ones, the third test new motor burned.

could there be something else going on there?
I’m attaching the log file from this last test

now I’m waiting for new motors



Txs for the log.

Too bad about the motors. It’s hard to say why the motors would burn out but perhaps it’s hot outside (36C?) and they are being run at 100% for a few minutes at some times. If we look at the RCOU messages we can see that on its way to the first waypoint one motor is at 100% for 2min while the other is only coming on intermittently.

My guess is the propellers provide decent thrust but not much turning power. They would work better if they were placed closer to the center of gravity of the boat (i.e. closer to the middle).

Regarding choppiness, I guess you’ve done the motor test and the “Minimum Throttle” section on the same page? THR_MIN is set to 0.15 (15%) which seems high but could be accurate depending upon the ESCs. If it is set too high then the motors will always come on at a higher rate than they should.

By the way, I see you’re using a slightly older version of “latest”. How do you feel about using Rover-4.1.0-beta5 (or higher) instead? MP’s firmware install screen has a beta link on the bottom right. Using this version will make it easier for me to know what software is being used… for example I was led astray for a moment because the “THR” logging shows “AccY” (lateral acceleration which s not useful) while beta5 and a newer version of latest show “AccX” (forward-back acceleration).

Servers by jDrones