I’m not sure if this is working as intended or if I got some setting wrong.
My acro configuration:
Arm by switch
Acro_options = 1 (enable air mode)
Tested with ATC_THR_MIX_MAN = 2
Repro steps:
Removed props from quad
Arm and switch to acro mode
Observe once Throttle >= ~1018 (in the radio tab; hard to get the exactly #), motors start spinning up heavily (sometimes enters a positive feedback loop since the quad isn’t actually moving)
Observe Roll/Pitch inputs will cause quad to respond with appropriate motor output.
If I drop Throttle to <1018 , motor starts winding down heavily. If set throttle >1018, motors wind back up heavily.
With higher MIX_MAN, response to throttle input seems to slow down (ie. you can hear the motors wind up and down slowly) which I assume gives the quad more authority in the first fractions of a second when throttle is zero. But that authority continues dropping as throttle is kept at zero. I observe that when I raise the throttle, add full deflection to roll (and hold it), then drop throttle, you can hear the strength of the 2 left or right motors attenuate over the course of a second.
Testing with props off will cause some quirky behavior, but the behavior all should makes sense in the context of the control loop.
Like in theory if I set acro to just rate stabilization, then the quad will only care about hitting a specific rotational rate (instead of also hitting a target angle). In that case, I should expect sharp motor response with roll/pitch irrespective if I’m in the air or not.
So I just tried this: I set acro_options to rate mode and tested again. I get sharp response from the motor as long as the throttle is above that 1018 threshold. But once I drop the stick below 1018, the motors slow down. I can hold the stick to full deflection, drop throttle, and hear the motors wind down.
As an aside, with the attitude stabilization enabled, then the PID controller and strength of motor response will respond to error between the desired and actual attitude. Since the quad is sitting still, the actual attitude is always the same. The desired attitude changes with stick. So with stick deflection, the error can be modulated with the stick. And you can hear that with the motor response going stronger/weaker when stick input is rotating the desired attitude.
What I did here is set acro option to 0x3 (air mode and rate stabilization only).
Enter acro mode.
Deflect roll to the right fully, then slowly raise throttle. Once it hits above ~1018 the motors ramp up intensely. Once below 1018, the motors wind down slowly.
Then I play with moving the roll stick back and forth with a little bit of throttle above and below that cut-off.
You can see that the roll output is fully saturated but it looks like the throttle mix is reducing from ATC_THR_MIX_MAN of 2 to ATC_THR_MIX_MIN of 0.1 where MOT_THST_HOVER is 0.1513464.
I don’t have time to check the expected behaviour right now but at least this is a start.
I had hoped that with air mode enabled the quad would be kept spooled up with the throttle at zero. At least, that’s what I’ve become accustomed to from BF.
Regarding the magic 1018 line: that would be 987 + my deadzone of 30.
Also separately from this, I forgot to mention that my motors always spin at spin_min immediately after I arm. I thought after arming, it would spin at spin_arm until I lift off?
It will be in 4.0 as well, but I must admit I’m not sure I see the same behaviour - pretty sure I would have noticed if the motors were spooling down at zero throttle. I would have to do a test.
Unfortunately I’m not sure this has been fixed as I still see authority loss when I’m sitting at zero throttle for a few seconds. I checked my branch from Copter 4.1+ the new Expo formula had picked up the code change here.
This is me doing a slow rotating dive with throttle held low. That huge wobble at 00:05 is the quad failing to hold setpoint; there was no change in my stick input. As soon as I felt it, I give it some throttle and the quad feels locked in again.
You may find my filters are set pretty high so I’ll pre-emptively comment… I actually have no issues with the higher filters with my manual PID tuning following Mark Spatz and Dave Rossi’s guidelines and I can fly fairly aggressively with this tune.
Unfortunately dumping my quads firmware for a binary diff comes up within a completely different size that’s not suitable for diff.
I had planned to update to RC3 or RC4 but I get compile errors when I try to build a branch from top of tree, otherwise I would have tried a new build.
So I think too much noise is coming through roll and this is the cause of the problem you are seeing.
We’ll see if @Leonardthall agrees - I have been wrong many times before
I’ve flown really bad tunes and so think I know how to distinguish serious issues from tuning from something else. One thing I was going to try was just add an offset on the throttle from the radio when I have acro switched on.
Also if the motors are throttling down then it would also be expected that rcout would get stronger as motors aren’t responding.
I can’t deny there seems to be some oscillation in the logs… I’m a bit surprised that I don’t feel/hear the symptoms. Wondering if there’s some mechanical filtering going or maybe the magnitude scale isn’t all that bad. Do you wanna see an actual freestyle video with this tune?