Hi all!
Is there any way that the drone just disarms the motors and drops straight down whenever the props hit an obstacle, like a tree? I would assume looking for a surge in back emf could help trigger the failsafe.
I am sorry if this functionality is already built in, but I haven't seen that explicitly stated anywhere. This was very useful on the ARDrone I used, which would immediately disarm on hitting anything. I am not tremendously concerned with the landing gear being damaged; I fly pretty close to (a few meters above) the ground.
The most hacky way of doing this would be to cut throttle and disarm the motors in the failsafe event handler in events.pde, but I'm look for something more graceful.
The reason why this is a bit of a big deal is that I'm using the drone indoors, and
a. I don't have GPS, and
b. I cannot rise 10m; which implies that RTL is useless for me.
c. I don't necessarily want a slow spin down, since I might just be chopping things off.
I think such a feature (if automated) would also be of utility to avoid a lot of injuries.
Replies
I think the RTL altitude is configurable via the Mission Planner; it's 10m by default.
The APM doesn't receive any feedback from the motor controllers, it's an "open-loop" control setup". It sends commands and doesn't even know if the ESC is listening. So, a motor could quit in flight and the vehicle would have no clue. Some fancier systems have smart ESCs which communicate RPM and power data back to the autopilot, allowing for all sorts of clever control algorithms. One example is compensating for a blade-out condition (in a hex or octo setup).
MAYBE you could write a safety control that watches your current draw from the battery and compares that to the throttle levels and accelerometer data, looking for some combination that indicates a collision. I don't think the APM does this yet.