Add support for docking clamps, including automated Copter release
This work sponsored by FreeSpace.
Is the option bit really needed?
This does feel like it might be more of a scripting feature. We do have vehicle:is_landing() and vehicle:is_taking_off().
I agree with @IamPete1, it's so simple that it seems like it could be handled in scripting. I suspect the reason that scripting isn't being used because scripts are a bit more difficult to deploy. If that's the reason then perhaps we should investigate how we could make deploying scripts easier.
still needs FLIGHT_OPTIONS metadata addition
Added metadata.
Re lua vs C++, I apparently said C++ was fine at some point (I have no memory) and so if it's OK with @IamPete1 and others, I think it's only fair that we allow it to be added to the c++. I suspect that the flash cost is low and if we did it as a script, I can imagine that adding access to the state takeoff state machine could require as much flash as the C++ equivalent.
I think this is fundermental capability for multirotors. Given how small this is I think it is worth putting it in C.
Note that this feature is only enabled by default on boards with >2048kB of flash. So CubeRedPrimary gets it but few other boards do:
Board AP_Periph blimp bootloader copter heli iofirmware plane rover sub
CubeOrange-periph-heavy 0 *
CubeRedPrimary 0 * 272 264 200 0 0
Durandal 0 * 0 0 0 0 0
Hitec-Airspeed * *
KakuteH7-bdshot 0 * 0 0 0 0 0
MatekF405 0 * 0 0 0 0 0
Pixhawk1-1M-bdshot 0 0 0 0 0 0
f103-QiotekPeriph * *
f303-Universal * *
iomcu *
revo-mini 0 * 0 0 0 0 0
skyviper-journey 0
skyviper-v2450 0
It's expected that users be running their own OEM setup or use the custom build server to enable this.
It's not no-compiler-output-change because we have an additional servo function now and that changes the compilation.
Looks good to me, let's move the bit to AP_LandingGear's OPTIONS bit. then I'm happy for it to be merged, thanks!