Rover - acro mode shaking

I am having issue with tuning turn rate on my rover with Pixhawk cube orange and Cytron SmartDriveDuo MDDS30 - ESC MODULE. It keeps oscillating when stationary but when moving or turning on command in acro mode - it behaves well. It drives straight without yaw input and turns OK. I tried setting FF to 0 or minimal value without improvement. Setting P and I to 0 resolves oscillation but if I change it even to 0.0001 - it starts doing it again.

What is more in guided, manual and hold servo output for motor pwm is 1500us. when switching to acro -motor pwm is wobbling between 1460-1560us - instantly, witchout any reason rover is still.

Of course i can set MOT_THR_MIN below motor treshold value, but why this is happend ?!?

Here you can find my logs: rover - Google Drive

Any advise? @rmackay9

Thanks.

Enable the ARMING_CHECK to 1, so we can see if there are any issues

It could be that the steering’s reversed. Try setting SERVOn_REVERSED for your outputs, or swapping the left and right outputs.

It drives well in any mode, problem is when it’s standing in place . When You switch to ACRO it motor pwm is changing between 1460-1560us - instantly, without any reason . Switch to manual,guided it holding on motor output 1500us while standing.

More:
on pid chart where piddesired plot is constant the pidachived is wobbling alot ( but why?- this is the question)

I guess it could be problem witch EKF3 or some kind of filter or noise settings ?

Could be that your throttle isn’t centered at the RC trim position, and it’s trying to move very slowly but can’t.

Check RC calibration values and center all trims.

there is no RC just MP. probably this is common problem. I saw same behavior on @rmackay9 s wiki video about tuning steering rate. Like iI described swiching to ACRO cause instantly input +/- 50us values- whithout any outside input. Can ridd of wobbling by setting MOT_THR_MIN 2-3 % below phisical minimum, sets PID near 0, set DZ to motor, set MOT_THR_EXPO -0.3 and more.
More importatn is that turn controler is Wobbling by iself on start and it could be a couse of future problems

@Mogway28,

A log file will help, much better than pictures, but in any case, also make sure the autopilot is somewhat near the center of the frame.

Here you can find log file: rover - Google Drive

Hi @Wiktor_S,

Sorry for replying to the wrong person above.

I think @Mogway28’s advice is good. Here’s some advice from me which overlaps somewhat

  • reduce MOT_THR_MIN to 3 (currently 8)
  • use MP’s motor test to ensure the motors start at about the same throttle value in both forward and backward directions
  • reduce ATC_STR_RAT_FLTE to 3 (currently 10)

I think reducing MOT_THR_MIN on its own should resolve the problem though

You are right - if I set MOT_THR_MIN below 8 or to 3, there is no shaking anymore, but on the graph, I can see the same waveform for pidachieved.

Also, I am worried about motor start because the left motor starts later than the right. I tried to change the servo trim but without any good result. Is there any option to force simultaneous start for both motors?

If you switch to ACRO, motor pwm is changing between 1460-1560us - instantly, without any reason. In my opinion that is reason of not simultaneous start. But maybe you know the real reason of output PWM uneven value.

Hello again :slight_smile: @rmackay9 @Yuri_Rage @stephendade

After many days of driving and changing parameters, I still have issues with turning and waypoint (WP) achievement.

To clarify, I am using ROVER version 4.5.7. If I set all PID values to zero, my rover doesn’t shake anymore. However, if I change the P value to even 0.001, the rover starts shaking. For me, this indicates there is an issue in the PID loop.

Additionally, I can set MOT_THR_MIN below 7 (the minimum value for my motors), but the servo output is still uneven (e.g., 1540 and 1460).

Can you explain why the PID loop changes the servo output even when my rover is stationary and shouldn’t be moving?

I can set my rover in three different modes:

  1. It can go straight during a mission, but the turns are really bad (it can pivot, but it looks like a shaky pivot).
  2. It can achieve waypoints correctly but doesn’t go straight and is very slow (pivoting is fine).
  3. It can be fast enough, but it overshoots waypoints, goes back, and shakes while doing so.

Unfortunately, I need all of these capabilities in one configuration. My rover should:

  • Travel in a perfectly straight line.
  • Arrive directly at a waypoint, stop there for a few seconds.
  • Pivot smoothly to the next heading.
  • Travel straight to the next waypoint.

Please help me with this. I am at my wit’s end and still don’t understand why this is happening.

My observation is that rovers are not very good at turning or achieving waypoints because the servo output is uneven. This prevents them from making small corrections effectively.

I’ve never experienced any of this, nor have I seen a log file from anyone else exhibiting it, so your generalization is unwarranted.

Need a log file to diagnose.

Here you can find new log: rover - Google Drive

What’s more, in manual mode, you can turn without any limits (if you push your stick to the left, it will reach 2000 in less than a second). However, if you push it forward, it takes some time to achieve 2000. This means the speed controller is affecting manual mode. :slight_smile:

Can you check and show your pid desire and pid achieve graph when rover is in acromode ?
I would like to understand why PID achieved fluctuates so much while the drone is standing.

No, it means that there is a throttle slew rate limit, but no steering slew rate limit.

I’m not going to generate logs to prove anything here. If you want to see proper behavior, try SITL using Mission Planner’s Simulation tab.

1 Like

Me and Wiktor_S trying to set this rover to achive strait line in mission, RTK stop point acurracy and no wobbling when it stop. We probbably checked all combination of PID and obviouse parameters. In our opinion the problem is when (Auto, ACRO) mode is on then without reason PIDDesire is wobbling without reason (zero manual input of movement) - PWM is deviated from 1500us to +/- 40us differently for left and right wheel. We whant to understand why and perhaps it could be rover software issue ( maybesome filters not works correctly or maybe EKF3 settings orour parameters)

Here is a similar topic: Acro Mode problem - #52 by muzykxd

PID achieved in this context is the measured speed or turnrate for rover. It’s not a calculated value.

In your logs, the speed PID’s show the measured speed fluctuating ±0.03m/s (so ± 3cm/sec). This is simply the noise or uncertainty in the speed measurement, based on your sensor hardware and settings.

Likewise for steering, the PID’s show the measured turnrate fluctuating ±0.1deg/s. Again, this is just the noise or uncertainty in the turnrate measurement, based on your sensor hardware and settings.

I experience the same issues with the shaking. Frankly there are just so many variables it is hard to know exactly which one impacts which output without being an expert. My rover is so large and slow to get up to speed (in acro mode, manual mode is fine) that it would almost make more sense to have the throttle be 0 or 100 and just correct the direction error as it goes (IE stop, turn, forward, stop, turn, forward). My PIDs achieved / expected look good for throttle and steering though. It is all the other variables that need to be adjusted and hope that doesn’t impact something somewhere else.

You would expect the D term to dampen the oscillations to nothing.

Thank You for clarification. Is there any parameter or sets of parameter which we can damp that noise? Could it be settings of EKF3 which calculate speed and turn rate from GNSS ( RTK Fix , ZED-F9P).
We are using xbox pad for steering but without it -just GCS- problem persist.