Open magicrub opened 8 years ago
Should this be part of the crash detector?
Failsafe is a better place
Great feature idea and simple implementation. Only issue could be a failure of the current sensor triggering a false detection.
So I have a log from someone who took off in manual, never armed the plane, handed over to the autopilot (which of course not output throttle). STALL_PREVENTION wasn't turned on, the plane basically just maintained FBW min airspeed, quite successfully, which is actually a great behavior IMO. (This only worked as the minimum airspeed is higher then the stall which is why the plane still turned fine autonomously). This was with speed weighting of 1, so I think the current behavior is far better then might be expected.
On Sat, Feb 20, 2016 at 9:08 PM, SlipstreamFPV notifications@github.com wrote:
Great feature idea and simple implementation. Only issue could be a failure of the current sensor triggering a false detection.
— Reply to this email directly or view it on GitHub https://github.com/diydrones/ardupilot/issues/3456#issuecomment-186737246 .
Also Concider the possibility of a lost propeller. Current will still rise, but not to the expected level.
I'm open to suggestions
Current and voltage drop combined indicate a functioning motor. Insignificant voltage drop and no change in current = motor fail. Maybe even integrate an airspeed check since that should change with increased throttle as well.
At least in auto modes, throttle is only used to maintain your cruise airspeed. There shouldn't be any "increase" to look for. However, you make a good point about the voltage. During a flight your battery voltage is fairly noisy and bumpy. Going up and down by 10% or so for medium-high throttle vs none. That's another good indicator. It should have some deltas in it when the motor spins up.
summary:
I think when the motor failure is detected ideally the plane would point itself at the home position and attempt to glide home.
This feature will work best with a selector for the desired behavior.
For FPV pilots, the OSD should give a warning too. I'll look at writing some code to do this: https://github.com/marcmerlin/night_ghost_minimosd-extra-mavlink/issues/1
Several years ago actually had the opposite problem. I had my ESC stuck wide open and couldn't get the plane down and climbed into a rain storm. I had to wait until the battery died then dead-stick it in.
At about 1:50 you can see the motor output dies with high throttle. Then later the throttle shows 0, but the motor is screaming.
https://youtu.be/aANtCjEFzpA
There is a corresponding issue here for Copter: https://github.com/ArduPilot/ardupilot/issues/11947
First, a windmilling prop at low-to-mid throttle will draw almost zero current, so I think this behavior could be falesly dangerous. In additon, I think we should be able to do this with scripting, correct? Can this issue be closed?
why would this be dangerous @Naterater ? If you are windmilling, you also have close to 0 throttle output, so they match The problem is if you have >50% throttle and you notice that you're using less than 3A, or whatever the correct value for a given aircraft. I would love a control that takes "minimum amps at over 50% throttle", and if the amps dip below that, AP commands an immediate RTL as well as a mavlink message about motor failure
With 12x12 props, I can be in an updraft, flying along at 20m/s, 60% throttle, and <1A off draw when normally in level flight I’m at 40% throttle, and 4A. I’m saying the given conditions for “motor/ESC failure” here are too common to warrant specific failsafe coding in ardupilot. Furthermore, I believe you can already do this specific action as a part of scripting.
wouldn't this be an ideal candidate for ESC telemetry? prop failure could be done by checking maximum cruise propeller speed so if a propeller came off you would see the motor is spinning faster than it would normally be able to at full power. motor/ESC/wiring failure could also be detectable by the low/no rpm from the motor or loss of ESC telemetry. esc telemetry also gives readings from all escs individually, so their heath can be monitored and problem motor disabled automatically.
wouldn't this be an ideal candidate for ESC telemetry? prop failure could be done by checking maximum cruise propeller speed so if a propeller came off you would see the motor is spinning faster than it would normally. motor/ESC/wiring failure could also be detectable by the low/no rpm from the motor or loss of ESC telemetry. esc telemetry also gives current and temperature readings from all escs individually so their heath can be monitored and problem motor disabled automatically.
Yup! Esc feedback is best. I think my intent here was to try and detect it with that but this is an old issue before we had esc telemetry. Now we just need to do more than just log/stream the data.. like declare an emergency or something
wouldn't this be an ideal candidate for ESC telemetry? prop failure could be done by checking maximum cruise propeller speed so if a propeller came off you would see the motor is spinning faster than it would normally. motor/ESC/wiring failure could also be detectable by the low/no rpm from the motor or loss of ESC telemetry. esc telemetry also gives current and temperature readings from all escs individually so their heath can be monitored and problem motor disabled automatically.
Yup! Esc feedback is best. I think my intent here was to try and detect it with that but this is an old issue before we had esc telemetry. Now we just need to do more than just log/stream the data.. like declare an emergency or something
yes something like propulsion failsafe, for single engine the options i would think about would be to limit bank angles and prioritize maintaining airspeed over altitude and start to RTL or closest rally point or landing waypoint.
you would also have to look at multi engine aircraft, as they would now be dealing with asymmetric thrust, so are going to have to keep a much higher minimum airspeed in order to reduce the risk of rolling over, they also need rudder input to fly straight or risk of rolling over.
then your into the VTOL aircraft, where you have a lot more motors running. A check that all the motors required for a flight mode work when the mode is changed would be needed. so when changing to Q loiter from forward flight, the flight controller should be sure that all the motors are actually turning before trying to vertical land since the plane is going to be actively trying to go below its stall speed. in that scenario it would have to land like a regular aircraft or at least land with enough forward speed that its control surfaces have enough authority that they can compensate for the failed motor.
A better way of checking for the motor failure on almost any vehicle would be to check the RPM if the throttle output to a motor reaches 100%, if the RPM too high or too low then it's in a failed state and failsafes can activate. the only problem with this idea i can think of is you could overspeed the propeller in a dive so some kind of inhibitor would be needed for rapid descents.
Yes, doing this with ESC telemetry is very easy
Very nice, i would be very interested in this feature!
When throttle changes (goes up) but battery current stays the same, then we know the motor is not drawing current and a stall/crash will be inevitable. At this point we could go into a special fail-safe mode such as:
Otherwise we will inevitably stall and fall out of the sky uncontrollably.