Drone experiences extreme delay when letting off on joysticks

I’ve been noticing some weird behavior lately when flying in loiter mode. The issue is that there is sometimes up to a 3 second delay between letting off on the joystick and when the drone responds. It consistently seems to appear when the drone is unable to reach its desired target speed for an extended length of time. This is exaggerated when flying into a headwind which seems to make it even more apparent.

It can be forced by limiting the max angle to say 10 degrees, but setting the max loiter speed to say 30 m/s. With these settings the drone will never be able to reach the max loiter speed and might top out at around 10 m/s or so. If it’s held at 10 m/s with a target speed of 30 m/s and then I let off on the joystick, it’ll take some amount of time for the drone to respond that is longer than normal. It almost seems like an I term issue in the PID loop somewhere but I haven’t been able to make any changes that seem to have any improvement. I’ve adjusted the PSC_VELXY_P,I,D terms as well as the LOIT_ACC_MAX, LOIT_BRK_ACCEL, and LOIT_BRK_DELAY and haven’t noticed any changes in the behavior.

I’ve attached a log that shows this behavior at around 733 Seconds. If you display the pitch angle of the drone and RC2 input it will be noticeable.

Log:
https://drive.google.com/file/d/1vScRAbC_rkm8Dp0oE-zYPrLxKDHt8Y5V/view?usp=sharing

Disable EKF 2 if there’s no very special reason to use it.
EK2_ENABLE,0

I would use the Initial Parameters section of MissionPlanner to set all of the battery voltage levels correctly and these
BATT_FS_CRT_ACT,1
BATT_FS_LOW_ACT,2
Also Use Initial Parameters to set your gyro and filter frequencies - basically accept everything it offers except maybe your existing ATC_ACCEL values.

These are the Loiter values I use, works out well for most multirotors, cant say for sure for a tricopter though
LOIT_ACC_MAX,600
LOIT_ANG_MAX,30
LOIT_BRK_ACCEL,300
LOIT_BRK_DELAY,0.3
LOIT_BRK_JERK,300
and
PSC_VELXY_D would normally be around 0.25 to 0.5

Tuning is bit of an issue, not too bad, but could be a bit better. I think most of the “delay” issues you see are because of the copter not able to react as you expect. Generally it is doing its best to follow RC inputs.
Start with these
FFT_MINHZ,30
FFT_MAXHZ,250
INS_ACCEL_FILTER,10
INS_FAST_SAMPLE,7
INS_HNTCH_ENABLE,1 ← set this then refresh params to see the rest
INS_HNTCH_MODE=4
INS_HNTCH_REF=1
INS_HNTCH_FREQ=60
INS_HNTCH_BW=30
INS_HNTCH_OPTS=2
INS_LOG_BAT_MASK,1
INS_LOG_BAT_OPT,4

Can you do another test flight in AltHold with mostly just hover and a few gentle movements, nothing too radical ?
Let’s see that log and make some more corrections.

The PIDs look a bit manually tuned, which is good when they work. I think Autotune could do a very good job on pitch and roll after we nail down a few more things.
Yaw might need a manual tune for this copter.

2 Likes