Altitude hold + acro in Plane?

I tried looking for it but couldn’t find any reference.

Is there a “pure” altitude hold mode in Plane, like there is in Copter?

The idea is to use it combined with Acro, so the pilot still maintains full manual control of roll and yaw, while ArduPlane takes over throttle and pitch to maintain a constant altitude and speed.

Closest off the top might be FBWB. Pilot has control of roll and yaw (within limits) but throttle and pitch are used to maintain altitude. It is a self leveled mode, so it won’t let you roll the plane inverted, but you can still fly it around or put it in the hands of a novice without fear of destruction.

https://ardupilot.org/plane/docs/flight-modes.html

Being constrained to a self-leveling mode is exactly what I want to avoid. The idea is to constrain altitude only (keep constant), while letting the pilot bank and turn freely without having the plane self-level upon releasing the sticks.

I think it would be difficult for the FC to keep altitude without self-leveling.

Yes, you correct, I have maybe not expressed myself very clearly.

To maintain altitude self-leveling will be required on the pitch axis, that’s 100% correct.

What I meant by “no self-leveling” is the behaviour on FBWA/FBWB modes where you center the roll stick, the plane returns the wings to level. I’d like to keep the same behavior (on roll) as with acro + acro lock, that is, when you release the roll stick, the plane maintains the current bank angle when the stick was centered. This way you could maintain a shallow bank, while also keeping altitude constant and not needing to keep holding the stick throughout the whole turn.

Sounds like you want FBWB with the roll stick treated as a rate input instead of angle.
And the only reason for that is you don’t want to maintain the stick displacement while turning?
It would make it more difficult to achieve wings exactly level when you want to fly straight though.
Is this for a specific use case?

1 Like

Sounds like you want FBWB with the roll stick treated as a rate input instead of angle.

Yes, exactly!!

I come from almost 20 years of LOS flying (both planes and helis) and some 6 years flying quads solely on Acro mode, so having the sticks control angle is totally un-natural to me. To me, the sticks controlling rate is the only way to go, specially on fixed wing.

The specific use case is something I already do with Inav. There “altitude hold” is considered a flight mode modifier, so it can be added on top of any mode that is active, specially Acro. What I do is climb to my desired altitude (in acro), engage altitude hold, and keep flying on acro without having to worry if I’m climbing or descending. This task (maintaining altitude and speed) is then delegated to the FC/AP.

It is great for enjoying the scenery, because I can put in shallow banks and let go of the sticks (acro lock takes on from here) and focus mostly on the camera pan and tilt controls, while being free to make small adjustments to the bank angle as needed. But without being constrained on heading or roll angle as I would be on a full auto mode like circle, loiter or even cruise.

1 Like

I haven’t used INAV, but looking at their wiki I see:

With Fixed Wing models, INAV is not intended to use ALTHOLD controller in anything but ANGLE mode. It should not be used on it’s own, or with other modes.

That is, no doubt, because roll angle is unlimited in rate mode. I guess you disagree with the INAV wiki on this, but it seems like roll angle limits could easily be imposed if althold is enabled for any mode.

You probably manually limit roll angle in your use case, and of course ArduPlane’s FBW modes constrain roll angle within set limits. Adding an option to FBWx to interpret roll stick as a rate input should be workable. The rate demand would just be ignored if it would result in exceeding the angle limit.

The mode I have been using the most in Inav is a newer variation of the Angle mode, which they call “angle hold”:

ANGLE HOLD (FW)
This mode is a simple version of an attitude lock stabilizer. But its not designed for 3D aerobatic use. It behaves more like Acro mode, in the way the desired flight attitude is achieved by stick deflection, and you release the stick to center. But the difference is, ANGLE HOLD will attempt to hold or lock the pitch or roll attitude the airplane was commanded, when the stick is released back to center. Thus resisting any long term change to the flight attitude caused by the effects of wind… Returning the airplane to level flight is done the same as when flying in Acro or Manual modes.

Indeed it has constraints on the max roll and pitch angles. It won’t let you go inverted, but to me this isn’t a big deal, the idea is to reduce the workload on long, leisurely cruises while enjoying the scenery, and NOT do aerobatics with altitude-hold enabled. :slight_smile:

This flight mode has angle constraints set by the navigation angle limits - nav_fw_climb_angle, nav_fw_dive_angle and nav_fw_bank_angle. Which may also make it feel a little like ANGLE mode, with its bank limits.

Here’s the nice part about it:

It was designed to work with a flight mode and a modifier - COURSE HOLD or ALT HOLD. Although both can not be selected for use with ANGLE HOLD at the same time.

  • ANGLE HOLD + COURSE HOLD - Will maintain a constant heading and climb angle over a long distance. e.g. Up or Down the side of a long mountain range.

This is the exact use case I mentioned:

  • ANGLE HOLD + ALT HOLD - Will allow the airplane to make a long banking turn, without losing altitude in the turn.

Here’s the source for the quoted parts above:

Yes, it’s likely that I haven’t even noticed if engaging AltHold on top of Acro (in Inav) limits the bank angle. Because indeed I’m rarely going over 30 degrees of bank when in those cases.

Adding an option to FBWx to interpret roll stick as a rate input should be workable. The rate demand would just be ignored if it would result in exceeding the angle limit.

Yes, this would be a great option. I believe that FBWB with rate control and attitude locking (like Acro + Acro lock) sounds like just what I would like to have. The angle limits wouldn’t be a problem in this case. Exactly, the rate inputs could just be ignored past those limits.

Here’s a sitl build with FBWA and FBWB hardwired to rate mode for the roll stick.

You can see the code changes here:

1 Like