iNavFlight / inav

INAV: Navigation-enabled flight control software
https://inavflight.github.io
GNU General Public License v3.0
3.1k stars 1.46k forks source link

Emergency Glide - Thrust Loss Detection #3946

Closed b14ckyy closed 7 months ago

b14ckyy commented 5 years ago

Current Behavior

If there is a loss of all the thrust on a fixed wing (Lost Porpeller, fried ESC, Fried Motor, disabled ESC because battery voltage drop), the plane does not detect that and tries to continue flying in the actual mode. If this is an automatic mode, this would cause a stall when the plane tries to keep height.

Desired Behavior

If in any Auto mode (Mission, Cruise, Loiter, RTH) the FC could continuously check for current relating to set throttle value. If there is a massive change in expected current, the FC should switch into an emergency RTH glide mode with a fixed pitch down angle to glide as far home as possible instead of stall and fall down uncontrolled. Another Option would be to loiter until it lands on the ground softly, if too far from home. This could be determined with a specific glide ratio.

In manual Mode it should keep normal behavior but show a warning in OSD that there is a possible motor failure.

Suggested Solution

First the FC could check for expected current. This could be checked during flight manually or by calibrating in-flight during the first seconds. If there is a loss of expected current, the FC could check the Speed of the plane. If it goes lower than a specified speed (close to stall speed) even if the FC rises throttle, INAV should switch into the emergency glide with RTH function to try to get as close to home as possible bevor impact.

Should be combined with wind speed estimation feature or with airspeed sensor to calculate a correct stall speed value.

Thanks @wx4cb for the hint to the current value, that makes more sense ;)

Who does this impact? Who is this for?

all fixed wing pilots

Additional context

wx4cb commented 5 years ago

it could also look for a sudden current drop maybe (in the case of a blown ESC or motor).

as far as the "result" it would depend on the altitude ... you wouldn't want it to rth when the current terrain is higher than what the plane and you are (ie fly into a mountain).

Personally I would prefer maybe just a loiter mode where it slowly descends. - obviously configurable by the configurator :D

b14ckyy commented 5 years ago

The most obvious thing I wasn't thinking about… of course to check the current consumption relative to throttle is the easiest thing to detect a fried ESC/Motor or even a lost propeller. Because a Motor without load will also significantly take much less current....

changed the feature request

FPVZaphod commented 5 years ago

In half throttle and a very steep dive the current consumption will be also very low, because the prop is just windmilling in the air. I think this feature is not so easy to implement in a reliable way. Maye it's required to just use it's result in level or near level flight, and in a speed range where there is a risk of stall. If you then raise the trottle, and there is no speed gain (and / or an unusal low current), then there must be a fault in the drive train. Simple way would be a variable where you enter the minimum throttle for reliable level flight. This can be even same like cruise throttle. If you don't maintain minimum safe level flight speed with this throttle value, the propulsion system can be declared as faulty.

wx4cb commented 5 years ago

The other way would be to use the telemetry from blheli32 escs as u can get that info from them directly

On Sun, Oct 28, 2018, 10:39 FPVZaphod notifications@github.com wrote:

In half throttle and a very steep dive the current consumption will be also very low, because the prop is just windmilling in the air. I think this feature is not so easy to implement in a reliable way. Maye it's required to just use it's result in level or near level flight, and in a speed range where there is a risk of stall. If you then raise the trottle, and there is no speed gain (and / or an unusal low current), then there must be a fault in the drive train. Simple way would be a variable where you enter the minimum throttle for reliable level flight. This can be even same like cruise throttle. If you don't maintain minimum safe level flight speed with this throttle value, the propulsion system can be declared as faulty.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/iNavFlight/inav/issues/3946#issuecomment-433711443, or mute the thread https://github.com/notifications/unsubscribe-auth/ABbRAVmT3Ym9uGZEVz3SCjUmiEtNCJziks5upcG8gaJpZM4X2WJG .

FPVZaphod commented 5 years ago

BLHeli has a "Prop left the Plane" detection? I was not aware of that...

shellixyz commented 5 years ago

In auto modes if the FC is configured correctly it should maintain air speed so with an air speed sensor or with estimated air speed (not available yet) it should be relatively easy to detect thrust loss and start an emergency landing or maybe glide for RTH.

For manual modes we can add a minimum air speed setting under which the air speed indicator would flash and also a "low airspeed" message on the OSD. That would probably be enough for manual modes. If you have say 50% throttle while the plane is level and you see this message you will know something is wrong.

danarrib commented 5 years ago

I like the idea of having a warning message blinking on OSD informing the pilot of problems with motor.

To keep things simple, I suggest the creation of only two new settings:

Assuming this values are 20 and 20 respectively (20% throttle and 2 Amps):

So, if throttle is > 20%, and current draw is below 2 Amps, then obviously something is wrong and motor is not generating any thrust. Inav then can blink a message like "POSSIBLE MOTOR PROBLEM".

This can also be used on the future for an automatic flight mode like this one suggested on this issue. But for now, It would be nice to just have this simple warning.