Hi all, thank you for your help and patience!!
We are seeing feedback that the breaking is too high. There are two things that cause this but I will leave explanations at the end and start with the rules of thumb. (I will discuss Heli stuff with you separately so just use this for understanding @ChrisOlson)
Speed and angle settings (Heli should start much more conservatively)
WPNAV_LOIT_SPEED should be set at what you consider your maximum comfortable speed in Alt Hold.
WPNAV_LOIT_ANGM should be the angle you need to hold to maintain that speed.
Initially turn all breaking off (Heli should do this to start with @ChrisOlson ).
WPNAV_LOIT_DELA = 2; (starts breaking after 2 seconds to make it obvious what is breaking when it is on)
WPNAV_LOIT_TRAN = 1 (the time it takes to add the breaking)
WPNAV_LOIT_MINA = 25 (the amount of breaking in cm/ss that is added, small to focus on the active loiter performance. We will tune this after)
Ok, so now the additional braking has been removed so any breaking you see is caused by the lean angle being too high for the maximum speed. So if the copter breaks sharply after letting go of the sticks you need to decrease your WPNAV_LOIT_ANGM or increase your WPNAV_LOIT_SPEED. Start by reducing the angle until you don't get breaking then have a play with increasing both again if you want it more aggressive.
I hope we can find a nice set of defaults that mean most users don't have these issues.
The other thing to keep in mind is we have made some changes to the way the Position controller works. The default settings should result in very similar performance to what we had before with the main difference being that the Vel D term can now be set and works on both the velocity error not just the request. I don't think we should have to play with this at this stage.... I hope.
Ok, so the explanation of the lean angle, velocity combination causing breaking.
So what happens is you have a maximum lean angle that you can request. Then added to this is the loiter controller output based on your position and velocity error and I term build up.
So when stationary the position controller is just doing work to fight the wind then you add lean angles onto it to do slow position corrections. So you get a direct, low delay link to the aircraft like in Alt_Hold and automatic fighting of the wind.
When you push the sticks over hard and start to build speed the loiter controller starts to add this fake drag that mimics what is happening in reality. The result is that when you reach the maximum speed the fake drag prevents any further build up in the desired velocity in the position controller.
In layman's terms at full pitch forward the position controller will make sure you are doing exactly WPNAV_LOIT_SPEED. To do this it may have to remove some pitch if the speed is set too low or increase some pitch if the speed is set too high.
At this point your stick input still maps directly to the attitude plus the added angles from the pos controller. So if you let go of the stick the aircraft will pitch back by WPNAV_LOIT_ANGM. If the pos controller needed to reduce the pitch angle to achieve WPNAV_LOIT_SPEED then you get some immediate breaking. If it had to increase the pitch angle then you will find it does not pitch back to full level then settles slowly to level as the pos controller I term unwinds. I find the best feeling for the pilot is found in the second case.
I hope this makes sense!
Thanks again for all your help!!