I’m building an autonomous boat with three thrusters, and each thruster can rotate using a servo. I want to control both the thrust and the direction of each motor independently.
My questions:
How should I configure ArduPilot to support this setup?
Which frame type and mixer should I use to properly control the boat’s movement?
Can I achieve differential thrust and precise maneuverability with this configuration?
Are there any existing setups or examples that I can reference?
I’m using pixhawk 4 and planning to run ArduRover firmware. Any advice or guidance would be greatly appreciated!
IIRC ArduRover doesn’t support direct lateral control so it isn’t possible to natively use this set-up for precise positioning.
You could try using Lua to write a custom mixer that will implement control logic and 3DoF(X, Y, Yaw) Loiter.
With 3 thrusts and 3 azimuths your control system is under constrained (more than one combination of outputs can be used to achieve the desired result) so you will want some logic that will try to reach optimal controller outputs.
On a related note — is it possible to use a companion computer like a Raspberry Pi to directly control the azimuth servos while still letting Pixhawk handle the thrust logic?
I’m thinking of a setup where the Pi computes optimal thrust directions and angles, then sends commands to rotate the thrusters accordingly.