Large Rover not cutting corners

Hey all,

I’ve got a large rover (approx 750kg, 3m wide, skid steering rear wheel drive, 1.5kmph cruise) that refuses to cut corners.

2026-01-19 12-48-29.tlog (670.8 KB)

I’ve tried changing everything suggested in the docs (turn and wp radius way up, accel limits way down). I am unsure how to proceed. I’ve attached a tlog file.

No matter the param changes that I make it doesn’t start turning until it is directly above the waypoint.

Thanks in advance!

Could you post a bin log? They’re more detailed than the tlogs.

1 Like

Have you tuned throttle and steering?

I’ll get one when I can next.

I’m confident that I have well tuned all controllers. It can drive well in acro, and maintains a very straight line and consistent speed in auto and guided.

It would appear that it is tuned to well,….if that makes sense.

Usually we want to have very precise waypoint missions. But that is in relation to small rovers. In your case you’ve got a rather large rover and as such I understand what you are trying to achieve.

I am from a drone background and only recently ventured into the world of rovers. So I haven’t’ had a chance to play with S-Curves and Spline Waypoints yet.

But I believe those will provide you you with the tools to achieve what you are looking for.

No, that does not make sense.

Ensure that you have the INS and GPS X offsets centered around the most reasonable approximation of the turn axis of the vehicle.

Ensure that ATC_ACCEL_MAX and ATC_DECEL_MAX are set to values actually achievable by the vehicle.

Ensure that ATC_TURN_MAX_G is also achievable.

2 Likes

Heres a .bin log from a similar occurance.

The GPS offsets are as close as I can, and the INS is roughly near the turn axis. ATC_ACCEL_MAX and ATC_DECEL_MAX are set to values I have found to be reasonable, and ATC_TURN_MAX_G is set extremely low currently to try and induce corner cutting, but I’ve also tried similar values to ATC_ACCEL_MAX.

Are there any other things I could test?

Your speed controller is poorly tuned.

  • Set ATC_SPEED_FF,0 (as recommended in the docs)
  • Set CRUISE_THROTTLE,42 (per log file observation, which is used as a feed forward term under the hood)

From there, tune ATC_SPEED_P, I, and D per previously linked documentation.

This should help achieve the acceleration parameters that are currently frequently overshot.

1 Like

I’ve adjusted the gains (P=0.8, I=0.3, D=0, with FF =0). Despite this, the rover still does not cut the corners. Any suggestions?

Supply another log. These pictures do not tell us much.

@Yuri_Rage

Given the weight of the rover

wouldn’t it be necessary to really bring the speed down when approaching a waypoint in order to prevent all that weight pushing it along?

That video I’ve found recently - yours I guess @Yuri_Rage - talks about this as well.

@Jord_Howard

Have to admit from my own experience with a recent rover project, totally got some values wrong doing a manual tune, compared to using the auto-tune function using a specific Lua-Script.

After the auto-tune the whole control system performed much “tighter” compared to manual tuning.

1 Like

Weight alone won’t determine deceleration characteristics or cornering speed. The power of the drivetrain (and braking system, if available) along with available traction would determine that.

I also think that the Quiktune script may not work so well with a large, slow vehicle, again, depending on how responsive the drivetrain can be. The steering tune looks pretty good in the only log that’s available here, but the speed tune was all out of whack.