Developer
Poll - how do you want FBW to work?

Jason Short came up with a great flight mode, FLY BY WIRE, in ArduPilot 2.5. This mode differs from STABILIZE. In STABILIZE the autopilot constantly tries to return the plane to 0 pitch and roll, while you give stick inputs that tell the plane to do something else. It feels a bit like you are arm wrestling against the autopilot sometimes. With FLY BY WIRE if you move the right(*) stick half way to the right then the plane will bank half of the maximum amount defined. As long as you hold that stick position the plane will hold that bank. If you center the stick, the plane will go to zero bank.

* - All references to right stick assume a mode 2 RC setup where the right stick controls pitch and roll.

That is all great! You are not arm wrestling the autopilot. You are telling it what roll you want and it is giving you exactly that roll.

But what about throttle and elevator? Jason had a scheme where if you moved the right stick then you would get both a pitch and throttle response. In 2.5.1 I have been trying an alternate scheme involving both pitch and throttle increasing or decreasing together. I am convinced that these schemes are not the best. But what is? It really comes down to user preference.

I think the two best alternatives are:
  1. Have the throttle remain under manual control and have the right stick up and down control pitch angle. This setup is great for tuning your servo PID gains (both roll and pitch), and is a really fun way to fly.
  2. Have the elevator maintain a constant airspeed and have moving the right stick up and down increase or decrease throttle from a cruising throttle. This setup is probably the ideal setup for new pilots. You can hand the transmitter to anyone and they can fly. Can't stall because airspeed is controlled. Want to turn, move the stick to the side. Want to go up or down, move the stick up or down. Of course they still have to deal with what up and down is and what left and right are while coming and going, but if you let go the plane will always take care of itself.
What do you think is best??? Maybe something else?

I can't seem to get the poll to embed - please go here

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Developer
    @Jason - Sure you could get FBW to do loops, rolls, etc., if you change the control laws so that stick deflection produces proportional rate of change of pitch an roll as Stikmunkey suggests for "real" FBW. I don't think that is the sort of algorithm we want to implement though..... I prefer MANUAL for acro, but you have a good point about why not to delete STABILIZE mode.

    I agreee with your comment about lowering the gains in STABILIZE. Another (perhaps better) approach to STABILIZE is to deweight the AP gain siginificantly if the stick input is not near center, i.e. a non-linear relationship. I think FMA's new units basically only stabilize in a deadband around center stick.

    Still, IMO, if we have a FBW approach that results in 0 roll and 0 or airspeed neutral pitch at center stick then FBW will be preferable to STABILIZE for FPV and landings.


    @All - Nice discussion. Thanks for the input.
  • Paparazzi has been doing this since I've been using it (years now) and calls this AUTO1. Stick inputs are used to define desired roll and pitch angles. Throttle remains under manual control. This is extremely helpful for tuning offsets and PID variables. If you have 0 stick and your model is not flying straight and level, it becomes trivially easy to tell which offsets you need to add.
  • Developer
    Hi Doug,
    The original intention was the up and down stick would equal the Altitude error.
    The throttle would be read directly or it could be used to increase or decrease the airspeed_cruise value.

    Stabilize is really intended for FPV, nice landings and such. I have some high mix values in there right now which can be lowered for less of that arm wrestling feel. I think I have 400 in there. Lower that to 200 or 150 and you'll see what I mean.

    inf = min(inf, 400.0);
    inf = ((400.0 - inf) /400.0);

    You'll never get FBW to do loops or more fun stuff, so I think Stabilize is still valuable.

    Jason
  • Developer
    I had been thinking about the throttle stick being commanded airspeed.... I like the idea. It is a bit more advanced, but has possibilities
  • Just for an alternative idea, airliner fly by wire modes would include a mode where the pitch axis stick would command a climb/descent rate (feet per minute) where center stick is zero vertical velocity - not really altitude hold but close. A little more complicated version would be the command of flight path angle - similar to the above but really works great with FPV+HUD so that a velocity vector (flight path angle) symbol can be placed over an object if you want the aircraft to aim directly for the object - particularly good for the arresting wire on an aircraft carrier. This makes a nice harmony with the bank stick being a commanded roll(bank) angle which indirectly causes a paticular heading rate of change (at a particular airspeed). This combination is generally thought of as the "perfect" airplane - even with manual throttle. Of course, even more perfect is throttle being a commanded airspeed.
  • Developer
    I hear what you are saying about "real" fly by wire. However that scheme is not as beginner friendly. IMO it is better to have the plane go to 0 pitch and bank when you let go of the stick. If you want to maintain 30 degree bank you just hold the stick over that amount..... It is really nice to fly that way and not have to make constant adjustments....
  • Developer
    Max bank angle is a user parameter. I agree that 30 to 35 is a good limit in most cases. Max pitch (up and down separately) are also user parameters.

    With an appropriate airframe and good tuning you don't have to limit to shallow turns. I am currently running 60 degree max bank. Getting things tuned for such aggressive turns is not easy, but can be done.
  • Developer
    Currently the firmware is 3 channel, so no rudder mix. When we get to ArduPilot Mega we will do that. However, it won't be a mix, it will be coordinated turns based on IMU accel vector.... Better than a mix ;)

    Please link through to the poll. Link is above.
This reply was deleted.