Home        Store        Docs        Blog

Custom Frame - Variable 6DOF matrix


I’m looking to make an AUV/underwater ROV for my PhD project. The design would have thrusters on servos, to allow the different thrusters to rotate to point in different directions. This would require the 6DOF matrix for the custom frame set-up to vary during operation, as the amount that any one thruster affects any one DOF will vary depending on the thruster angle. I’m happy to dig into the code of ArduSub and make changes if need be, but looking through the documentation I noticed that the custom frame 6DOF matrix is set upon compilation.

So, my question is - do you know if it is even possible with the current set-up of ArduSub (matrix set at compilation)? Or is changing this matrix on-the-fly simply something that can’t be done? Any help on this would be really appreciated. Thanks!


It can be done with modification. With the current implementation, as you’ve realized, the matrix and coefficients are STATIC, that is, they never change after the program is compiled.

Why do you want to put thrusters on servos?

Hi Jacob,

Thanks for replying. The idea is to build and control a fully actuated (not overactuated) AUV with 3 thrusters on 3 rotating axes, so it can move in all 6 degrees of freedom regardless of orientation and not have a specific, default orientation.

I’m interested to learn that it could be done with modification. How difficult would that be? And is it possible to apply a custom controller too, using something like MatLab or similar?

Thanks again for getting in touch!