In air vs on ground safety logic for arduplane?

I apologize in advance if this is dumb or discussed already or obvious to everyone but me. I did some searching before posting and didn’t turn up anything relevant. (I’ve flown arducopters, but not arduplanes.)

I was curious about what logic arduplane uses to determine if a plane is airborne or on the ground, relative to safety and disabling throttle or possibly switch modes or toggling features. I am thinking about a plane that does a traditional wheel landing (not a hybrid vtol.)

I can imagine an airspeed threshold, but what if you point the airplane into a gusty wind while holding it on the ground and it’s enough to exceed the threshold? Or I can imagine a gps speed threshold, but what if I run with the airplane or drive with it in a car, that also seems very fallible. I could imagine an accelerometer spike, but what if I bounced and am back in the air again? I could imagine a separate arming switch, but I could imagine forgetting to turn that off after a flight. I could imagine some combination of all of these? Are there other sensors/strategies I’m not thinking of that ardupilot uses (or has tried?)

So I was curious what strategy arduplane uses for air vs. ground detection and if there is something, what is the logic and sensors and considerations for making this work pretty reliably all of the time.



Is this what you’re looking for? ardupilot/ArduPlane/is_flying.cpp at master · ArduPilot/ardupilot · GitHub


Perfect, thank you, just what I was looking for!