Hi @rezenders, interesting question
There is currently no general way to dynamically change the frame, although it is something we’re interested in making possible.
That said, given you’re specifically trying to simulate failures, you should be able to achieve an equivalent result by just disabling the output for the motor you want to “fail”. You can do that by setting the relevant SERVOn_FUNCTION
parameter from Motor{n}
to Disabled
(0), which you can either set in QGC, or set directly with MAVLink (e.g. using a Pymavlink script). If you have a separate MAVLink endpoint set up for it you can even use a pymavlink script while QGroundControl is connected to the standard endpoint (e.g. to simulate a sudden live failure).
Just for completeness, yes, it is possible to switch between frames in ArduSub via QGroundControl (or just setting the FRAME_CONFIG
parameter) and then rebooting, but the parameter is only set up to have a single custom frame, so to have several options you can switch between you would need to either replace some of the other existing frames or go to some extra effort enabling a larger number of frame options.