I was just thinking the other day, what happens if I hit the RTL switch while the multirotor or heli is beneath an obstruction? Inevitably the model will crash if it’s programmed to ascend before returning (as, I think, is usual), but does Ardupilot then cut power to the motor(s), assuming the battery hasn’t been ejected in the crash?
the firmware has crash detection and will shut down.
It will if you have FS_CRASH_CHECK parameter set to 1 in your flight controller.
Thanks guys. I assume the default parameter is 1, but I’ll double-check for my models.
Hmmm, I’m not so sure now. My setting (default) for FS_CRASH_CHECK is 0. Having read the description of how it works, and since all my flying at the moment is line of sight (I can disarm if I see it crashing), I think I’m going to leave it at 0. I know the condition has to happen for 2 seconds or more, but seems to me a gusty wind could possibly trigger a crash response.
There seems to be an anomoly in the description I’ve read though, for first it says “the crash check should trigger once the vehicle has hit the ground” but later, in the list of conditions for it to trigger, it says, “2. the vehicle is not landed (as far as it can tell)”. How can it hit the ground and not be landed?
Because it cant crash if its already landed.
OK, so the second condition for triggering a crash check is not that the vehicle hasn’t “landed” (i.e. hit the ground) in the normal meaning of the word, but that a standard landing, as defined elsewhere in the Ardupilot documentation, hasn’t been detected/triggered?
But I’m still confused by the statement that crash check “should trigger once the vehicle has hit the ground”: The five conditions that follow, for it to trigger, do not rule out it triggering in the air, just like the parachute release logic. So “… once the vehicle has hit the ground” sounds to me like an extra “OR” condition for crash check to trigger.