Home        Store        Docs        Blog

Thrusters force

Hello, I have looked at few of the discussion here on the topic of the thrusters forces. But I would like to confirm my findings.

I have the BlueROV2 and I am graphing up the thruster forces to use with a control project.

My testing involves hanging a newton meter on the top of the ROV and running both of the heave thrusters and writing down the different values with 5% thrust step. The ROV has a 1 M cable between the newton meter. I am using your 14.8V 18 AH battery. When I run the thrusters at 100% downwards thrust (to my understanding that is running the thrusters in forward force that should be higher than reverse) my max reading is 62N. A single thruster should give around 50 N at a voltage of 16V and draw 24A. The battery should be able to supply 90A continuously. I am aware that there is some voltage drop but the combination of the two thrusters should be 100N and the max I can read is 62. That is a significant loss.

Next will be a test to run the 4 surge thrusters would I then see an even bigger drop in performance?

Thank you

Hello @emilmare,

Most control modes leave a margin for maneuverability. Try running these tests in Manual mode and checking the SERVO_OUTPUT_RAW message in QGC inspector to make sure the PWM is at 1900.

Hello Willian and thank you for your reply.

I have actually changed out the controller and put up a Khadas Vim3-Pro board. I am running an external Arduino as the I/O board for the PWM signal. Below is the arduino script. We send the pwm signal over serial.

We have the ESC that came with the ROV. The last PWM signal we sent to the 2 heave thrusters was 1900

#include <Servo.h> 
Servo ch1,ch2,ch3,ch4,ch5,ch6;

String val1,val2,val3,val4,val5,val6,dummy;
char terminator = ';';
char seperator = ',';
String message;

void setup() {
    pinMode(2, OUTPUT);
    digitalWrite(2, LOW);
    Serial.begin(9600); // set the baud rate
    Serial.println("Ready"); // print "Ready" once

void restart(){
  digitalWrite(13, HIGH);

void loop() {

Hi @emilmare,

You are using a significantly different and less controlled test setup than that used to generate the T200 performance data, so lower readings are to be expected.

The raw T200 test data and testing notes are available in the excel document in the T200 technical specifications section above the charts. The information there should help clear up some of your questions.

I see that you have bypassed the regular Ardusub control loop so you are definitely sending the ESCs a full throttle signal of 1900 ┬Ás, but there are still a number of other factors at play:

  1. You are correct that voltage drop is a a factor, and although the battery can sustain 90 A constant discharge discharge without damage (depending on the thermal environment), this does not mean it will do so without measurable voltage drop. Every battery has its own internal resistance, and thus the output voltage will sag under load. Lithium-ion batteries perform much better than most batter chemistries in this regard, but there is still an effect.

    Assuming a fully charged battery at 16.8 v/ 4.2 v per cell, under a 50 A load the cell voltage could
    be expected to drop to about 3.8 v, or ~15.2 v total. If the battery is less than absolutely fully charged, the absolute voltage under load will be even lower.

    Furthermore, this does not take into account the voltage drop in the wires on the way to the ESC. A rough estimate based on the the wire gauge and length would be about an additional 0.5 v on top of the drop from the battery.Therefore at the ESC, assuming the best charge conditions, the actual voltage is already around 14.7 v. Checking the actual voltage under load with the on board power module, and subtracting maybe a third of a volt more will give you a much more accurate idea of the actual ESC voltage under load.

  2. With the thrusters installed in an ROV frame, there is not a clear unobstructed flow in front of and behind the thrusters. These obstructions will change or choke the flow of water and cause it to be more turbulent coming into the thruster, reducing thrust versus an un-obstructive test stand.

  3. All our thrust data is bollard thrust taken in static conditions. If the water velocity at the thruster inlet is nonzero, the change in momentum imparted upon the water flowing through the thruster will be lower, resulting in lower thrust. When doing our testing in a 400 gallon test tank, this effect is pronounced enough that after about 3-4 seconds of full throttle running, the water in the tank is circulating enough to cause a significant drop in thrust readings.

    Unless you are taking an instantaneous reading right after startup, its likely your results are also affected by nonzero inlet velocity.

  4. In general, when measuring the thrust of a vehicle as a whole rather than an individual thruster, there are many more variables than can affect the accuracy of your test setup. This is especially so when not rigidly attached to the measuring instrument.

    The stretch of the cable, buoyancy of the ROV (accounting for in readings, changing buoyancy due to bubbles), tilt of the ROV, vehicle heave changing the angle between the ROV and force sensor, etc. can all introduce error.

I hope this helps explain the discrepancy!


Hello Adam,

Thank you very much for a really detailed answer. This will help a lot.