Lim_Roll_CD Fails to Change roll angle in FBWA and Auto mode

@Allister, I am running into a strange problem with the roll limit in FBWA/Auto modes. It seems that despite changing the Lim_Roll from 4500 to 8500 the plane won’t roll beyond <45 degrees causing it to turn extremely slow. Almost like a knife-edge. I have to use the aileron and rudder to force the turn.

Can you please look into this?

I am using Pixhawk 1.0 FC with V4.2.1 FW.
The plane is a trainer (high wing).

Here is the log file: Dropbox - 2022-06-19 10-04-24.bin - Simplify your life

Here are the parameters: Dropbox - Trainer_Pixhawk 1.0 FC.param - Simplify your life

1 Like

Try setting ARSPD_FBW_MIN to 12 and ARSPD_FBW_MAX to 20. You may need to tweak those values but this should be a safe starting point.

I think what’s happening is because those values are set so high (20,50) that it is confusing the stall protection. If you drop below ARSPD_FBW_MIN then the stall prevention will limit your maximum roll angle to 25 degrees and your roll graphs nearly always stopped at 25 degrees.

And according to the TECS tuning wiki page, stall prevention (and autotune) will still be using the ARSPD_FBW values even if you aren’t using an airspeed sensor.

https://ardupilot.org/plane/docs/stall-prevention.html#stall-prevention

On that note, the pitch tuning doesn’t look as good as it could be. Once you get these roll angles sorted out then it might be worth running the autotune again.

1 Like

Thanks, @Allister. I changed the parameters and the plane flew fine. I did do the auto_tuning in the air but the parameters remain unchanged. I will tweak them manually later.

I notice that ARSPD_TYPE was set to 1. I changed it to 0 since I don’t have an airspeed sensor on this plane.

Now the question is why it was on when I had unchecked the airspeed senor box off in the Standard parameter list for Pre_Arm_check? Are they different parameters? What is the difference?

As long as ARSPD_USE = 0 then ARSD_TYPE doesn’t really matter in my experience. Likewise, if ARSD_USE = 0 then the PRE_ARM_CHECK won’t look at the airspeed sensor even if check includes airspeed (or even better is set to All or 0).

As I understand the PRE_ARM_CHECK,0 will only look at sensors that are active or in use. For example, I always leave the check set to 0 but only a few of my machines have range finders.