How to More Efficiently Transfer Dynamic Motor Mixer Elements via ROS


We’re using a modified version of the dynamic motor mixer script to dynamically update the motor mixer while in flight. The motor mixer elements are being calculated in real-time using a neural network running on a companion computer, with the ultimate goal of being able to optimally allocate the motors due to a failing / failed motor.

Currently, this is all interfaced through ROS/mavros where we transfer the new mixer elements using a parameter update (as per this script). As you’d imagine, this is rather slow for an octocopter (the full 8x8 matrix takes approximately 0.3 s) and we’d like to know if there’s a more efficient way of doing this transfer (or alternate way of implementing this functionality).