Using DO_SET_ACTUATOR to releasing the payload

History

So I did some digging and found some interesting points.

The DO_SET_SERVO / ACTUATOR not working properly has been thoroughly discussed in the past:

There are definitely a lot of users asking about this / being confused, e.g.:

The switch to control allocation introduced the support for DO_SET_ACTUATOR command specifically (affecting v1.13 and onwards):

And then, the DO_SET_ACTUATOR support in mavlink receiver was removed from this commi (affecting v1.14 and onwards)t:

Conclusions

Therefore, it seems that:

  1. In v1.13, the DO_SET_ACTUATOR *should work, however you will have to map the mixer correctly to the AUX ports to accept control from control group 3 (manual passthrough), index 5 through 7
  1. MAV_CMD_DO_SET_ACTUATOR in MAVLink definition seems to only conceptually note “Actuator 1 ~ 6”. And it seems like we at the time (v1.13) just decided to use convention of having the Index (param7) set to 0, and using only the Actuator 1 ~ 3 in the message to map to control group 3, index 5 ~ 7 (RC aux 1 ~ 3).

Speaking of that, @ChanJoon you will probably have to definitely setup the mixer part as noted in point 1 above. Hope this helps!

Note on v1.14

Starting from v1.14, the concept of control groups, etc were removed and we have unified control allocation. Here, the support for DO_SET_ACTUATOR and DO_SET_SERVO should be easier to use, but as of now there is no implementation for this in PX4.

Addition of these features would definitely be welcome! I will create an issue to have this tracked: