Trad Heli Attitude controller requirements - Help Requested

So I think this goes back to if a multi is disarmed, it has no way of controlling the aircraft because the motors are shut off and no motors means no control. For a heli, an accidental disarming or motor shutdown does not mean the pilot gives up. The helicopter is perfectly happy with flying with no motor (autorotation) but it does take a skilled pilot that is able to recognize the situation. So although this may be a rare situation, I think most heli operators would appreciate retaining some control to be able to attempt an autorotation and landing. Having the stabilization will help the pilot be successful especially with a flybarless heli since it doesn’t have a mechanical system (flybar) providing stabilization.

1 Like

It does, but has varying performance depending on the user’s setup.

Helicopters have heavily asymmetric torque. It requires the I-term to load-up once lifted off. H_COLYAW is a feedforward from collective pitch (= airframe torque, roughly) to yaw output. If this is tuned in well, then there shouldn’t be much movement on lift-off.

I give the cyclic a little tweak if I notice the TPP is off while spooling up. This really only happens in Stabilize on unlevel surfaces. And in Acro if you’ve moved the cyclic while spooling up.

One of the beautiful things about helis, you can see what it’s going to do before it actually lifts off.

I prefer not to simply reset the I-term to zero. This does allow checking that the I-term is working reasonably well on the ground.

I never want to see direct pass-through of the controls in normal pre-flight operations. Other than the servo exercise on bootup. I’m used to looking at how the PID acts on the ground, and check it before flight. I believe most pilots do the same, possibly without thinking about what they’re really seeing.

If the pre-flight condition is straight pass-through of commands it’s going to look weird, and will also tell the pilot nothing about what the PID’s are going to do in flight.

In the past, I have saved helicopters when I noticed things aren’t right with the PID tuning while on the ground.

That is actually how it worked. It does try to guess when you are airborne.

IIRC, from disarmed, the ATC_HOVR_RLL_TRIM doesn’t come in until the collective pitch has passed some point which would lift the heli off the ground.

Layman’s terms, TPP is the visible angle of the rotor disk. Because the disk has rubber dampers, torque from the rotor is transmitted through the dampers. The dampers allow the disk to tilt somewhat independently from the frame while on the ground. To a point.

I don’t see any reason why attitude stabilization on the ground is undesirable.

I can’t agree with that. I expect to see how the PID loop is operating. Not just the rate feedforward. This includes the I-term operating through the leak.[quote=“Leonardthall, post:20, topic:18281”]
I see the first part is nice because of the on ground feedback but I am not sure how often heli’s are disarmed in flight. Is there some sort of state that the aircraft should be stabilized and disarmed at the same time in normal or relatively normal operation?
[/quote]

Not in normal flight, no. Twice I’ve had this happen when the landing detector mis-fired. Both times, the helicopter landed upright because it was still stabilizing.

It’s more important to have the PID running when disarmed so the pilot can check for normal PID operations.

1 Like

Hi Bill,

Good work on the Attitude Controller. I really appreciate that you took the time to understand what is happening there and do surgical and focused changes. With some tweaks and some clear justification I suspect we will be able to get them or something equivalent into the code.

Thanks! It took a while to wrap my head around the quaternion stuff and how you accomplished certain tasks. For your information and not that this is reason to do this, I think the flybarless 3 axis gyro manufacturers use leaky integrators to help with ground and air/ground transitions behavior however I don’t think they have the data onboard that the Pixhawk has in being able to determine air/ground transition. So I attempted to develop the state machine to stop the leak upon takeoff and turn it back on when the aircraft landed however this seemed to prove more difficult that I thought it would be with the data we have onboard the pixhawk. So I abandoned the effort and stuck to Rob’s implementation of the leaking until the aircraft is moving above some speed.

Perfect example of what I was asking!! Thanks.

And Bill agrees there:

Cool!

Can you give me some examples of what you are talking about here, what you are looking for and what exactly goes wrong that you pick up?

[quote=“Rob_Lefebvre, post:22, topic:18281”]I don’t see any reason why attitude stabilization on the ground is undesirable.
[/quote]

I tend to agree if the issues are handled at the rate level, specifically preventing I term build up. I was specifically thinking of the case of taking off from an uneven surface and the issue where the rotor disk will lean back towards level. In manual mode you probably lean the sticks back to the same attitude as the heli and therefore bring the disk back parallel to the ground. Then as you lift off you go to level. I am mainly acknowledging that a human pilot would see that the ground is not level and set their attitude to the same angle as the ground until take off is complete.

I am mindful the angle error x stabP x FF + RATE PID may cause a flip over or boom strike during spool up even if the I term is kept zero. Maybe flybar heads move further that flybarless and need some angle error limitations during take off for example. I am just looking for what I don’t appreciate or understand.

I assume that heli pilots go further out of their way to limit the angle of the take off pad relative to what I may expect from a multirotor and all these effects are not significant. If so, cool.

So from what you are saying:

  1. The heli pilot has a mechanical feedback to the swash that they like to use to check for correct operation before flight. In ACRO they expect the swash to behave like a rate only controller showing I term build up to saturation and P and D response. In Stabilize they expect the swash to behave like a attitude controller with feedforward and PID response including I term saturation.

This seems a little inconsistent with what Bill described here.

Does everybody agree that this is the desired behaviour?

I also wonder if including the I term build up confuses the average user.

Yes, The rotor has a significant amount of control power so the autopilot trying to stabilize the aircraft in attitude when on the ground with rotors turning is not a desirable characteristic. Especially when many users are taking off and landing on uneven terrain.

I’m not sure what you mean by carefully calibrated. Yes we take the time to ensure the swashplate is perpendicular to the shaft for zero longitudinal and lateral stick inputs. So in the absence of the controller making inputs to stabilize the aircraft, the rotor tip path plane will remain perpendicular to the shaft. I think point 1 and 2 are basically the same. controller can’t be driving aircraft to zero pitch and roll attitude when the aircraft is on uneven terrain.[quote=“Leonardthall, post:15, topic:18281”]
3)The heli pilot has a mechanical feedback to the swash that they like to use to check for correct operation before flight. In ACRO they expect the swash to behave like a rate only controller with zero I term build up, maybe zero PD input too. In Stabilize they expect the swash to behave like a attitude controller with feedforward and zero I term build up.
[/quote]
I disagree with zeroing PD input. [quote=“Leonardthall, post:25, topic:18281”]
3) The heli pilot has a mechanical feedback to the swash that they like to use to check for correct operation before flight. In ACRO they expect the swash to behave like a rate only controller showing I term build up to saturation and P and D response. In Stabilize they expect the swash to behave like a attitude controller with feedforward and PID response including I term saturation.
[/quote]
So I wouldn’t have a problem with this in the disarmed state. But once the aircraft is armed, I believe the I terms need to be leaked or dealt with to keep them from driving the rotors into the ground.

  1. The attitude controller should not be allowed to build up error (target run away) while on the ground(armed or disarmed) in Acro mode regardless of pilot inputs.

Do you mean that heli pilots will try to find more level ground to launch there heli from? They may do this to deal with these undesirable characteristics of the software but I think the desire of the community is to be able to launch from uneven terrain up to 10 deg or more off level.

Now we are reaching a consensus on a few things. Cool.

This is one of those subtle but extremely important differences to account for. A multirotor will flip immediately on spool up if the roll and pitch loops are left zero. The point I am suggesting here is that a heli pilot will set up the heli to ensure the aircraft will not flip over and destroy itself during spool up if the roll and pitch controls outputs are held zero. From a controller’s perspective, large I term build up isn’t needed for a safe take off.

So 1 deals with the problem of the autopilot not knowing where the disk is. 2 deals with the idea that the heli won’t flip over with the same ferocity as a multirotor, during spool up, if the roll and pitch outputs are held zero. This gives Heli some flexibility that Mulirotors don’t have.

Yep, cool. The pilot wants to see the PID reaction.
This appears to be consistent with Rob’s preference so great.

Yes, this is specifically in the disarmed or pre take off state. So I term build up and saturation should be included. So would it be fair to say that we let I term build up in both unarmed and armed state but reset the I term at the point of arming and deal start dealing with the additional ground and in flight then if needed?

Yes, I can see this is one of the key points that I think we can discuss in detail in a bit. Lets not get into detail yet though.

This is an interesting point. Can you go through your reasoning for this requirement in these three cases:
a) before arming
b) after arming and on the ground
c) in the air.

Thank you!!!

I think this would be incorrect. Helicopter pilots will take off from anywhere, even the side of a hill tipped at 10 degrees. The current ATC implementation in Stabilize attempts to level the main rotor’s TPP and the pilot has to counter it until ready for flight. This is not actually a big deal or a problem though. It is the characterstic of an attitude stabilized system. As long as the pilot is not fighting an I-term buildup attempting to flip the thing over, it works fine.

If the pilot wants a rate system that’s more like flybar, then use acro. That’s where Bill’s changes come in nicely. With flybar at the same 10 degree tilted takeoff pad, you can level the TPP of the main rotor and recenter the cyclic. It will tip the rotor in the dampers to level the TPP and “bleed off” back to the 10 degree tilt. It doesn’t hold that new target attitude. I think that’s all most people want in acro is for their helicopter to act and fly like a flybar.

1 Like

Thanks Chris. To contrast this with multirotor though, I would expect a multirotor to be able to take of from any surface that it can sit on without sliding. So for example, if I hang a multirotor on a small hook on a 60 degree slope in such a way it can level itself without hitting the props, I would expect it to be able to take off in auto mode with no input from the pilot. During my landing detection tests I was landing on a slope that was too steep for the multirotor to grip on and it needed to detect the landing and shut down while sliding down the slope. I don’t think any Heli pilot is expecting that kind of performance.

Based on the responses so far the Heli pilot expects the aircraft to be able to take off and land in manual modes on up to a 10 degree sloping pad. So a follow on question then is under what conditions do you expect the heli to be able to take off and land autonomously without pilot intervention?

This is a little confusing. If you arm in ACRO then the TPP should stay level with the ground with no I term build up as the desired and target attitude are both the same. If you arm in STAB, level the TPP with the ground then switch to ACRO then let go of the sticks you should see the TPP move just a little and stop because for a fraction of a second you were commanding a rate as the stick sprang back to centre. Neither of these two cases should cause the TPP to level and drift back to parallel to the ground.

Could you explain what changes cause Bill made that cause this behaviour and give some more insight as to what you think is happening here?

Ok, I think the US has went to bed so I thought I would summarize my understanding of the issues so far and the questions I still have.

  1. Rotor disk is often only loosely connected to the autopilot meaning there can be a significant angle difference between the autopilot and the rotor disk. This can present challenges on the ground from I term build up causing the rotor disk to tilt without moving the body until the disk hits the ground or the body tips over and the disk hits the ground. This is distinctly different to a multirotor where the rotor disk is rigidly mounted to the autopilot. This means we may need to provide additional care when handling I term build up when on the ground and transitioning to flight.

  2. The average heli is carefully calibrated to be able to spin the rotor up with zero servo input without risk of the rotor tipping over. This provides additional room for heli to hold low I term during take off. Multirotor may also benefit from better handling of I term build up before take off that would move heli and multi much closer together.

  3. The heli pilot has a mechanical feedback to the swash that they like to use to check for correct operation before flight. In ACRO they expect the swash to behave like a rate only controller. In Stabilize they expect the swash to behave like a attitude controller. In ACRO the pilot only wants to see the reaction of the PID and FF. In Stabilize the pilot wants to see the output from full attitude stabilization.

  4. Full stabilisation needs to be maintained after disarm to protect against false positives on the land detector. This also simplifies the implementation of 3).

  5. direct pass through is only used for manual setup and flybarred heli (I think).

  6. The community expects to be able to take off reliably manually from a pad that is as much at 10 degrees from level.

I still have some questions:

I would also like to understand how the leaky I term is used and tuned for any given aircraft.

Thanks for all your time and help.

I would say in similar conditions that the pilot would takeoff and land manually. 10-15 deg. I think the major limitation that we would encounter in this situation, and we see this with shipboard operations, is the roll angle at which with one skid on deck the rotor tip is touching the ground or the pitch angle with the aircraft rocked forward on the skids, the rotor tips are touching the ground. I’m sure we can take a few representative helicopters and get a good estimate of what that number might be.

I’m not sure but I think Chris is referring to the fact that I leaked the attitude while the aircraft is on the ground with rotors turning. So if the pilot were to make an input, normally the attitude controller would track that input, turn it into a rate and then track the attitude that would result from that rate. Since I leaked the attitude at some slow rate, 95% leaked off in 5-7 seconds, then the swashplate would slowly return to the position where it is perpendicular to the shaft ( the integrator was also being leaked as well).[quote=“Leonardthall, post:31, topic:18281”]
5) The attitude controller should not be allowed to build up error (target run away) while on the ground(armed or disarmed) in Acro mode regardless of pilot inputs.
This is an interesting point. Can you go through your reasoning for this requirement in these three cases:
a) before arming
b) after arming and on the ground
c) in the air.
[/quote]

a) before arming
Before arming, the pilot is doing control checks most likely plus they may be moving the aircraft from a bench to the takeoff point. If the attitude controller is allowed to drive the target attitude (ghost aircraft) to some unreasonable attitude then upon arming the aircraft will try to attain that attitude and drive the rotors into the ground. Plus the pilot in doing controls checks is looking for an expected response based on his knowledge of the command model (flight mode) they have selected. Either in Acro or Stabilize, they expect that with the stick fully deflected, the swashplate should not reverse, it should tilt in the direction of the command and stay there. They would also expect that the swashplate would return to level when the control is centered (I’m not as sure about this one since Rob has asked that the I term be left in for controls checks).
b) after arming and on the ground (arming here implies rotors turning)
So the current implementation in Acro, if the pilot were to make an input, the autopilot to drive the rotor to make the aircraft attain that input. Of course this is limited to the amount of I term that the controller can apply. But the problem with this is the pilot has no idea what attitude he has requested. He just know that the rotor is tilting to get the aircraft to some attitude and if he hasn’t brought up the collective then he might put too much in and be surprised as to what attitude he requested. So to be clear in acro, it is a rate command/attitude hold but the attitude controller is keeping score and know what the current target attitude is where the pilot has no idea. So there needs to be a way that the pilot can know that while in transition. Once in the air and in controlled flight, the pilot can immediately see target attitude that the attitude controller is commanding.
c) in the air
in controlled flight, as I stated earlier, the pilot can see it and knows what the attitude controller is doing. Uncontrolled flight is a different story which I believe, the attitude controller should not run away, at least not very far, from the current attitude because as the pilot gets in the loop to correct the condition (if the controller cannot), then the pilot needs to know that his commands are relative to the actual aircraft attitude rather than some target attitude he knows nothing about. And so maybe the key here is that certainly the controller can respond quicker than the pilot but if the controllers inputs are not correcting the condition in the time it takes the pilot to recognize the condition, then it should help the pilot and slave to his commands rather than some target. Just my thoughts.

I think a helicopter should only be expected to take off from and land on a reasonably level surface under full autopilot control. They can handle tilts up to a few degrees, maybe as much as 10 degrees. But a helicopter has a lot of energy stored in the main rotor and when the engines shut down it doesn’t just stop like multi-rotor props do. It has a one-way bearing, or clutch, that allows the main rotor to “freewheel” independent of the power unit, and this is used for autorotations if the drive quits in flight, as well as relieving stress on the drivetrain components when the power unit is shut down on landing. So there are limits to how far the helicopter can be tipped before it’s simply going to topple over on landing and destroy itself, even with the main rotor “freewheeling” as it spools down. A human pilot, landing on a very slanted surface, will nose the helicopter up the hill and set it down. If it does tip it will tip back onto the tail skid and spool down without damage. I don’t think the autopilot could be expected to be able to do that under that extreme. If the helicopter is landing in such a situation under full autopilot control I would consider it to be an emergency landing as no experienced helicopter pilot should be planning a mission with an autonomous landing on such terrain. So the landing detector should shut the helicopter down when it detects ground contact, and hope for the best if it’s making an emergency landing on a steep hill or slope.

If I understand what you are saying, we are going to arm and spool up in Stabilize. The attitude controller starts attempting to level the main rotor and the pilot starts to fight it with counter cyclic to keep the heli “planted” until it is ready for takeoff. For some reason we are now going to switch to Acro before takeoff and recenter the cyclic. I would expect the TPP of the main rotor to go to where the stick is. At least that’s what it does with flybar. However, I would also consider such a takeoff scheme to be quite bad pilot practice too. I think a more reasonable approach would be to kill the governor signal and abort the takeoff if things aren’t going well in Stabilize, and try it again in the desired flight mode (acro). This is one difference between helicopters and multi’s - a multi can simply arm, spool up and shoot in the air like a rocket. It takes a little bit of time to get a helicopter’s main rotor up to speed and you can plainly see what it’s going to do before it lifts off. If it’s not going well because of a less than ideal situation, simply kill it and abort it.before you lose control of it, or it is beyond your skill level to handle.

I hope Bill will jump in here now, as he can explain better what he did with the acro code. From testing it, the stock code stores up stick commands on the ground and can cause a highly exciting takeoff situation when the helicopter leaves the ground. Bill’s code doesn’t do that. It acts more like flybar, which I would describe as a “predictable” sort of characteristic being a “purist” flybar pilot. With flybar, the flybar always follows the cyclic stick. And the flybar steers the main rotor to make it rotate in a parallel plane with the flybar. I think the flybar is like the “ghost” aircraft I saw being described in another thread. The flybar can only achieve a certain amount of “authority” over the main rotor, limited by how far it can tilt with swash command. I could measure the flybar tilt on one of my flybar heli’s to see how much it can “get ahead” of the main rotor, but I don’t it’s more than about 30 degrees.

So anyway, maybe Bill can explain that better. Have to keep in mind I am a “purist” flybar guy. I love the smoothness and grace they fly with. Flying acro with FBL feels way too artificial for my tastes. And that is a highly subjective thing.

Thanks Bill,

I think this is key. I expect the swash to rock back and forth as the target swings around 360 degrees. Most new pilots can’t figure out why the swash saturates on full I term build up. We can’t cater to all knowledge levels. I would suggest that a decision be made about what is the most desirable behaviour. Personally I think your prefered approach makes most sense, locking the target attitude to the measured attitude and continuing to run the rate controllers with the feedforward and zero I terms would best serve the community. All easy to understand for pilots of all levels while demonstrating the controllers are working. Just me though.

I thought the reset of target attitude to current attitude on arming had already been put in preventing this from happening. If it hasn’t it really should be. I am pretty sure Randy put it in though, making it do the same thing as we have done in Copter for years.

I am a little confused here as I get the impression everybody looks at the rotor disk and uses this a feedback to ensure the aircraft is level and ready for take off. So I would think any pilot would be able to adjust the target to their preference before taking off.
I am not sure if we really need to worry about people that arm, then smash the sticks around then try to take off. No heli pilot would do this with any other flybarless controller. On top of that limiting the error doesn’t really fix the problem. Disarming and rearming would though assuming the target reset has been done.

Is this something that we have seen or have logs for? Exactly what is uncontrolled flight and what causes it? Rob mentioned retreating blade stall but also said the autopilot wouldn’t handle it correctly anyway and that it recovered afterwards without issue (If I remember correctly). If this is an issue should we have a mode that is direct feed through and bypasses the autopilot all together?

There is a bit of a discrepancy in the expectation here. Is anybody regularly doing completely autonomous missions, start to finish?

In ACRO with the auto level we do something similar. I am not sure if we need to do this inside the attitude controller though.

My turn to go to bed. Thanks for all your help and feedback!!

It is possible that someone do his ground check after arming.

I suggest also reseting target attitude at motor start up as well (throttle raised pass 5%)

Edit: only when LANDED is true, in case of auto-rotation bailout

An experienced pilot will keep a very close eye on the TPP of the main rotor. But no helicopter autopilot should store up attitude inputs on the ground that will cause it to start to tip in some direction without stick input as the main rotor comes up to lift speed. In Stabilize, the flight controller attempting to level the helicopter is ok because it’s highly predictable. But say you have a piston engine helicopter, arm the flight controller to be able to start the engine and warm it up. During warmup the pilot does his /her correlation checks on the swash and rudder in acro flight mode. We now have a high unpredictable helicopter that may try to tip in any direction depending on where the last position of the “ghost” aircraft is

I don’t think really a discrepancy. I was talking about full autopilot (autonomous) control, Bill was referring to a human pilot doing the flying.

I have no problem landing or taking off on a 10-15 degree tilted surface if I am flying. I do NOT trust the autopilot to do it. I do not know how many folks do full autonomous missions with helicopters. I myself never do. I prefer to take off and land manually. I consider the autonomous landing capability to be a very nice emergency landing feature that can safely land the helicopter if a problem develops in flight when it is out of good visual reference of the pilot to be able to fly it to a safe landing. I consider the autonomous takeoff capability to be potentially useful in a mission where the helicopter has to land at a remote site and take off again only under control of the autopilot with no human intervention. But I would expect in such a mission that the landing site would be pre-selected and suitable for landing a helicopter under full autopilot control.

I have tested it, and I know it works. I do not mind the autonomous landing, as I can move the helicopter around with the sticks once it goes into Land mode. I do not care for the autonomous takeoff where I have only yaw control with the sticks.

Other’s may have a different viewpoint on how to use the autonomous takeoff/landing capability for trad heli.

1 Like

Cool. I think it is reasonable to expect a heli pilot to prepare a reasonable takeoff and landing location in the same way I would expect a large quad on high landing gear to do, especially if conducting an automatic take off and landing. A pilot doing a manual take off has much more situational awareness and is able to push the limits.

I agree. We need to be careful that we should create clear procedures and expectations of pilots. We should not be telling pilots that it is ok to do ground checks in a state where they would not do them with a flybarless heli. I also think that we should have the same expectations of a heli pilot as I would expect a beginner multi acro pilot. At the same time I think we should be doing the attitude reset and I term reset at the latest time that is guaranteed to be before take off. If we can make that queued by the throttle then great.

This is a one of many quotes I have found talking about flybarless heli’s and their take off issues.

From what I read it is the first line of Heli take off 101 to make sure the swash is level on any system before taking off. I can’t see anybody but the most irresponsible pilot taking off with the swash unleveled. From what I can see it is extremely important that we ensure the swash is always leveled when the ghost and aircraft are in the same orientation in all modes.

I think we all agree that the controller should make it easy to level the swash before take off and during spool up. Thankfully there is a very obvious and extremely well known check that every heli pilot should do.

So this is what I would propose based on our conversations so far.
In ACRO:

  • Ghost is constantly reset while disarmed until the last safe moment. This would leave the aircraft running on rate controller and feedforward only. I would need to understand the complete arming, and spool up sequence to define what that last moment is. What is the last moment that we can be confident we have not taken off?
  • The I term should be held zero or reset to zero when ever the sticks are centred. What ever happens the I term should be reset at the last safe moment. From what I can see though, the I term should be held zero at all times while the aircraft could be spooling up.

Given the mechanical tune done on the heli to ensure the rotor disk doesn’t make the heli roll or pitch, we shouldn’t need any I term to hover safely, maybe even fly normally. From what I can see most flybarless controllers don’t use I term at all. Should we keep the I term set to zero until we have detected take off?

That brings me to my next question. I understand that the leaky I term is only active during take off. Why not just hold I zero and be done with it? All the leak does is put a high pass filter on the I term and make the system more difficult to analyse.

On a side note:

We recently found a bug in the ACRO code that has meant that ACRO behaved exactly as Bill’s code does if you set:
ACRO_TRAINER,1
You could then set the speed of the leveling to your taste using
ACRO_BAL_PITCH
ACRO_BAL_ROLL
After fixing the bug the result is it attempts to level the aircraft rather than reduce the error but it would be easy to make a third setting that behaves as a flybar and converges to the current attitude rather than level.

I would agree. If I want see what the I term is doing during setup, I would disconnect the ESC and arm the aircraft to fool the pixhawk and check what the I term is doing.

No. I don’t think it does.

They look at the disk to see its level and when taking off with a Flybarred heli they know they are controlling the tip path plane(TPP) so yes they are looking at its response. however with Acro and a FBL heli, you are not controlling the TPP and only thing the TPP is telling you is that it is commanding rate in a particular direction. You don’t know where the ghost aircraft is.

I disagree with this method. You fly the aircraft off the ground. The flight controller should make this easy, rejecting disturbances, so the pilot can make a smooth lift off

No. I think you are getting the wrong idea. If you were to takeoff from uneven terrain by keeping the swash level and just raising the collective then the aircraft would lurch or slide away from the hill. This would be uncomfortable and result in the pilot having to catch the aircraft and right the aircraft in the air. This is not the way its done. When taking off from uneven terrain, you will add cyclic into the hill to keep the uphill skid firmly planted. The downhill skid will lift and as the the skid lifts and aircraft becomes level you proportionally bring the cyclic back to center.

You might have better way to tackle this but as I said earlier I tried tackling this idea except I used a leaky integrator instead of just zeroing it. My plan was to use the leaky integrator and attitude until the aircraft detected liftoff then stop the leak. Unfortunately it was met with some resistance from some of the users. They did not like the idea of the controller guessing when the aircraft is airborne because users have different methods of setting up the collective. Some will set min collective at a low negative collective blade pitch so they can sit on deck with rotors turning and the collective stick on the lower stop. Others will set the min collective of the blades to be some large negative value and they don’t keep the collective stick on the stop when on the ground with rotors turning.
The other part of this issue is knowing when the aircraft is landed and setting the attitude error and I term to zero again. This has to be done gradually so as to not cause a step input that the pilot would be surprised by. This is where turning on the leaky integrator and attitude provides a much more gradual transition.

In Stabilize, the I term should be set to zero while the aircraft is landed. From my experience with multi’s and heli’s, the I term will build while you are raising the collective/throttle with the cyclic not centered. Many times you may not keep the stick centered because you have winds or are lifting off on uneven terrain. so holding the cyclic stick off center to anticipate these effects will cause the I term to build and you get into the loop with the I term.

I really disagree with this. First most of the users are using a large amount of I term to control the aircraft because of the limited P gain they can use due to instabilities. I don’t agree with this method of tuning and that is why I am pursuing the Notch filter. Even if an appreciable amount of P gain can be used, it will not close the gap between the target and actual attitude when the aircraft is flying in windy conditions. The I term is needed to keep the actual attitude tracking with the target. However I do agree that you could keep the I term zero until takeoff is detected.

I think the leaky integrator and attitude (acro only) provide a soft attitude stabilization that aids the pilot in maintaining an attitude during takeoff but won’t be over powering in the situation where the aircraft is not lifted off but the pilot has some cyclic input. Plus it is just an easier implementation than ramping in and out the attitude error (acro only) and integrator.

I wouldn’t want this once I’m flying especially high speed. The integrator and attitude error are needed to keep actual attitude tracking with target. Having the leak in a stable forward flight condition will result in the pilot fighting with the integrator to keep the aircraft from slowing down as the integrator leaks off.

I would think that the runup timer expired (H_RSC_RUNUP_TIME) and collective > H_COL_MID setting would be a good indication that the helicopter is about to leave the ground.

Great. This matches what the people I have been helping tune Heli expect too.


Yeh, I went looking in the code and I don’t think Randy got to it.


Yes, I am sorry I have been imprecise with my words here. The point being that if the swash and TPP is level with the body of the heli then the pilot knows the aircraft isn’t going to suddenly move without an external disturbance.

So you can tell when the aircraft is not commanding a roll rate in any direction. When there is no rate request then the ghost is directly over the aircraft. If you adjust the sticks to counter any angle you see in the swash and TTP then you will move the ghost perfectly over the copter.

I think we are on the same page here. I was specifically talking about the pilots ability to see from the swash and TPP what the aircraft was trying to do and therefore the pilot will naturally reposition the ghost over the real aircraft. In this situation I was specifically thinking about the issues taking off on a flat surface in ACRO after stirring the sticks a little and moving the ghost. I understand that taking off on a slope may require a different technique. And the technique you describe is what I would expect an auto take off to do provided position control didn’t kick in too early.


I find this very interesting as the dominant control output in both ACRO and STAB should be through the FF not the I term or the P term. My method is to tune the FF so when you request 90 degrees per second you get 90 degrees per second with zero P and D and very small I. You can also look at the amount the I term builds up and if it is growing in the same direction as the FF, the FF is too small. If the I term goes in the opposite direction then the FF is too large. Only after that do you tune the PID terms. (just my opinion). It is difficult when people have got something working but it isn’t optimal or flexible. It takes a fair amount of work to demonstrate that there is a better way.

So yes, if the aircraft is setup to fly on the I term I completely agree. I also agree that at speed or in wind the I term will be needed to remove the last of the position error. I think we are on the same page.


This would be the ideal case but the flight controller can’t reject any disturbances while the aircraft is on the ground because the ground prevents the airframe from moving or places additional load on the airframe that can be misinterpreted. This is the reason we have to zero the I term and control ghost error. As soon as you leave the ground then the flight controller can reject the disturbances ect. I think the author of that quote was acknowledging the issues associated with the ground interaction when using flybarless controllers.


I sympathise with this, reaching a consensus when very few people understand how it all works is very difficult. Thankfully the takeoff procedure is very easy because you know you are starting from a stationary position and can put clear procedures in place to handle some of the vulnerabilities. Landing is much harder.


So what do you consider the best test before which we can be confident we are not flying? Do you agree with Chris?[quote=“ChrisOlson, post:39, topic:18281”]
I would think that the runup timer expired (H_RSC_RUNUP_TIME) and collective > H_COL_MID setting would be a good indication that the helicopter is about to leave the ground.
[/quote]

This is exactly one of the things I was thinking may help. My gut feeling is that the reliance on the leaky I term will prevent Heli from achieving the flexibility and performance equivalent to the multi controllers but I think the current user base is too risk averse to consider any step changes.


Yeh, I have been brewing on this and I don’t think it is a good solution.


I think I have a good understanding of the issues and understand the prevailing thought process the heli pilots are following. I will try to do a summary of my understanding a little later.