This should be interesting

No you are correct, it is a feedback instability. Yes, the only other way to combat this is to try and change the frequency in which you would want to raise it to get it out of the frequency response of the servo, which I imagine is pretty high. I’ve seen feedback coming through at 8 hz.

I’m no expert on filtering. I know enough to be dangerous and I managed to find a discrete filter that did the trick. I think it is more of a “v” like rather than parabola. Sounded like Leonard was looking to implement one with a few more knobs that allowed the user to adjust depth and width of the notch. I only have one knob that adjusts both and I’ve hard coded it. I’ll see what I can do in the next week. It shouldn’t take long to implement if the developers haven’t modified the PID controller since 3.4.6. Just so you know I won’t have flown this software before you so it will definitely be considered beta but I think it is pretty low risk since I’ve moved it from 3.3 to 3.4 with no issues.

At the present time the ArduPilot software does not do that, Tim. I lost a shoe in the clutch once and made an emergency landing in a grass waterway when all the vibration and EKF alarms went off on my ground station. And I got a EKF Velocity Variance once pushing the helicopter to really high speed in Auto, which kicked it out of auto into Alt Hold. It did not lose its attitude solution with the velocity variance. It did when the shoe broke in the clutch.

So there is just no way around it at the present time for FBL. The thing some people have done is to put an external FBL unit on the helicopter, they use Flybar Mode for direct pass-thru in Acro, and turn off all the rate PID’s like I do with flybar and let the FBL unit do the stabilization part. While the autopilot just sends attitude commands to the FBL unit like a human pilot would, or like it does with my flybars. I think that is the electronic equivalent of using a mechanical flybar, but I do know much more of the details beyond that.

The other thing you can do if you want reliability is put a regular Pixhawk in it and use AC3.3.3. There was a few bugs in 3.3.3 too, but EKF2 seems to not have produced a higher level of reliability over the old EKF used in 3.3. It’s like twin engine airplanes vs singles - you’d think twins are inherently safer and yet the NTSB crash statistics show twins have far higher fatal crash rates than singles do, just because there is twice as much chance of something going wrong. I’ve never personally seen where this EKF “lane changing” actually works. If one IMU is screwed up and it switches, the other one is usually more screwed up, it results in a huge attitude change and the thing crashes. I wish there was a way to turn it off completely because I wouldn’t use it if it could be turned off. Flew APM’s before EKF came along and never had an issue. Who cares if they’re .33 meters less accurate or something? They worked and remain in my book one of the best flight controllers ever put in any model aircraft, along with the software they ran which was much simpler, and more thoroughly vetted and tested.

The more complicated you make something, the more chance it will have problems.

Chris,
I totally get where you are coming from. In my case, on one hand i like the idea of using todays current controller and with fbl, on the other, all of the what if’s have me on edge. I suppose looking at it logically, so far vibe levels have been a non issue as far as the EKF is concerned. I have the instability issues, but hopefully through some filtering that can be solved. In reality, if it flies okay in loiter and through auto missions i would be happy with what i have, although i would still feel better with higher P gains.
I thought long and hard about having an FBL in the mix as a backup, but along with not wanting to get into fancy vibration mounts for the controller and such, i did not want to add complexity and more failure points to the mix.
I don’t know if its possible to write the code as such that in the event of an EKF failure it would revert to just using gyros, but it seems to me that would be more than a worthwile addition to the code!
My goal is a system that can be easily repeatable through the use of off the shelf model kits, and FBL Trex 700 & 800 kits are as easy to come by as a glass of water and parts support is everywhere. That is the logic i used when picking my platform.
I hope no major issues arise when im trying my first auto missions, time will tell.
Tim

Bill,
I appreciate the help. I totally understand the beta nature of all of this. I guess getting down to brass tacks, im using a new, untested flight controller along with beta software on a platform no one else has used “heli” with the Pixhawk 2.1 so its par for the course i guess. Lol. Im sure it will come down to getting back to baby steps and breaking out the concrete blocks and the wooden dowels until it has been tested some.
Tim

We would need to verify this but I do believe if you wanted to use Acro as a back up which would only use gyros for stabilization then set the ATC_ANG_RLL_P and ATC_ANG_PIT_P to zero and tune your heli. It should remove the autopilot reliance on attitude and in theory prevent a crash due to EKF problems, if you can recognize the issue and switch to acro in time.

Bill,
Does moving those parameters to 0 affect other modes as well? Is that the accelerometer portion of the controller?
Tim

If I’m not mistaken, I think those are the Stabilize P gains. I don’t think it will even fly in Stabilize with those zero’d out. But I may be wrong on that.

Chris,
If those are indeed the stabilize P gains, what gains am I tuning when I adjust ATC_RAT_PIT_P etc.? Is that a different part of the controller? What would be helpful is a flow chart showing the progression of the signal through the controller and how different modes like loiter and stabilize affect the signal path.
Does something like that exist?
Tim

Yes they use to be stabilize P gains. But with ATC_FF_ENAB = 1 you can set them to zero and stabilize will work.

Those gains are for the rate controller. Which are sent to the attitude controller. Which is ultimately used by Loiter and Auto (as well as all the other modes).

Bill, I would have to test that with a smaller cheaper helicopter like my little 500 to see what that does with those zero’d out. And how you would even go about tuning it.

Tim,
Leonard had posted on my Technique to expand P gains discussion. This was meant to show the changes for revamping the filter scheme but it also show the attitude controller and the PID rate controller. You’ll notice in the attitude controller there are the ATC_ANG_XXX_P params which help the attitude controller better close the loop on angle. The ATC_RATE_XXX_P are in the PID rate controller.
http://discuss.ardupilot.org/uploads/default/original/2X/8/89a18ccdd723620db0efe1a5f5b8d5a3dd37a11c.png

Chris,
It would require different PID gains and probably more aggressive to get the holding power the current design has with non zero ATC_ANG_XXX_P params.

Bill,
I guess i missed that chart. :confused: So the lower chart with 1st and second order LPF along with the Notch filter and Feed Forward, is that Leonards proposed addition for the next release?
If so, to the layman, it looks as though there are alot more filtering options to be had which could be a very good thing?
I guess with the option of filtering, you could choose to use it, or just leave it wide open and move on?
I have used a notch filter with quads to great effect getting rid of pesky wobbles that the standard LPF wouldent alleviate.


Tim

On another note, weather looks good tomorrow, with light wind so… I think im going to pack the 800 up and swing over to the field at some point and flip the magic switch and hope for the best… Hopefully it just holds altitude well and then loiters nicely…? Figure a larger space is best for that test, and some altitilude…
Question, if GPS or barometer goes nuts and it starts to fly away at some point, will flipping the switch back to stabilize immediatly give me control back regardless of GPS signal or barometer/compass status?
Tim

I don’t know when he planned to release this filter scheme. We had this discussion before 3.4.4 was released. I thought we might see it in 3.5 but no dice.

Yes, stabilize does not use those to affect control.

OK, well I tried it. I get no cyclic response at all on the bench. The swashplate wiggles a little bit and goes the opposite direction of the cyclic stick, and then re-centers back to level. I had just gotten done flying an auto flight with the thing, and it hadn’t cooled off yet. So I figured I’d try arming it and run it up and see if the swashplate responds. I couldn’t even arm it because I got an acro bal pitch/roll error. So I set those two params to zero and then it armed. So fired it up and tested the cyclic during runup - nothing. I got collective and could lift it off. But it wouldn’t fly or be controllable. And I got the ATC FF turned on. Plus I use .15 FF in the rate controller, which is a lot.

Tim, here’s a vid of an auto flight. I was testing my new DDFP tail mod I did to the Trex 500 and tuning it so the tail is smooth as silk. There’s some bugs in the code as to how it handles arming and shutdown. But it works great in flight. This is how your helicopter should fly in auto mode.

Ok. So you tried all of this in Acro? Did you try it in stabilize? For this to work I’m sure you might have to have pretty high VFF and P gains as well as a pretty big I gain. In Acro, I would try P and VFF first to see if you can get the swash to give around 6 deg of Cyclic blade pitch in the direction of stick displacement. I wouldn’t fly this until you have a descent amount of swashplate cyclic response. I’m surprised you went and flew if you weren’t happy with the swash response.

Bill,
Thanks for the reassuring regarding stabilize. I just want to be 100% certain if something goes wrong when i flip the switch i have a very clear path back to control of the helicopter. Although the city has given me permission to use the park for testing, its not huge by any standards, maybe 500’x500’, so id like to avoid an incident if i can.
Hmm, thats not good to hear it was talked about that long ago snd hasent been implemented. :confused: I wonder what could be done to move that along? Short of someone coding it themselves? It seems as though it would be a worthwile addition, and ive noticed things seem to get done if they affect multiple frames like heli “and” multirotor. Which in this case, seeing as other control systems are using notch filtering to good effect, it would benifet helis and multirotors greatly?
Tim

Chris,
Nice flight! Thats definatly what im working towards in the grand scheme of things! What are you using for radio telemetry? I have standard 3rd style 200mw radios currently. Silabs cp210x i believe. Havent checked range yet, but ive noticed it takes quite awhile to load the parameters in Mission Planner. I also have no idea the range ibwill get with them, I guess im not looking for anything super long range as its a rotorcraft and not fixed wing.
Ive been looking at the rfd900 radios. Are they the best bet?
Tim

I tried it in both. And it didn’t work in either.

Well, if it’s exciting I’ll try it :grinning:
Actually didn’t lift off with it. I spooled it up thinking maybe it would start responding if it was running. I started advancing the collective and tried to rock the heli around and it wouldn’t respond on the cyclic. So I aborted it.