Develop auto tune mode for Ardusub on a custom 4-thruster ROV

I am currently part of an ROV development team. We have designed a custom ROV frame that utilizes 4 thrusters in the following configuration: 2 vertical thrusters placed at the center of gravity, facing opposite directions (counter-rotating) and 2 horizontal thrusters mounted at the rear for forward/backward propulsion and steering.
For my university graduation thesis, I am planning to develop an Auto Tune mode for ArduSub specifically tailored to this custom frame, as ArduSub currently does not natively support Auto Tune like ArduCopter does.
Before diving deep into the source code, I would love to ask for some advice from the experienced developers and community members here:

  • Is developing an Auto Tune algorithm feasible and suitable for this specific 4-thruster custom frame?
  • Does this project sound like an appropriate and achievable scope for a graduation thesis?
  • Are there any major technical challenges I should anticipate, or specific files/libraries within the ArduPilot codebase where you would recommend I start looking?
    Any insights, feedback, or pointers to relevant documentation would be incredibly helpful. Thank you so much for your time and support!

Hi @tranhaothien0911 -

Welcome to the forums!

To clarify, you’re talking about a flight mode that adjusts tuning parameters, and not the auto motor-direction finding that ArduSub/BlueOS already supports? Some feedback -

  • Auto tune for the frame you describe would be interesting, but it is a fairly unused configuration - the 6 or 8 thruster configurations the BlueROV2 uses are the most common layout!
  • Your goal seems like a good target for a thesis to me!
  • I’m not sure if much tuning is required vs. the standard parameters - an ROV has a very different situation compared with aerial quadcopters… Crashing is really no big deal! haha
  • Investigate lua scripts, they are used for other ArduPilot firmwares for tuning (thinking of ArduRover) and are supported by BlueOS / ArduSub working together - they are a great way to add features without modifying the autopilot code.

Best of luck!

Thank you for your advice. This is very useful for my future direction.