Sudden rolling/pitching and unstable Depth Hold on BlueROV2 (after reinstall)

Hello, we are operating two BlueROV2 units.

One unit is ~3 months old, and the other is ~3 years old. The issue started on the 3-year-old unit.

During a vessel inspection, Depth Hold suddenly became unstable. The ROV sometimes dives downward aggressively, shoots upward, or cannot hold depth.

We formatted the SD card and reinstalled BlueOS and firmware (as we usually do when software is corrupted).

Normally this fixes the problem, but now we see rolling/pitching behavior like in the attached video.
*We increased the speed only to make the symptom clearer in the video; the same behavior occurs even at 25% speed. Please refer to the Attitude Indicator shown in the video.

We already tried the following hardware actions, but the issue did not improve:

  1. Replaced the Navigator flight controller and did full initialization.
  2. Replaced all Basic ESC (200).
  3. Replaced the tether.
  4. Replaced one suspect thruster motor.

Both ROVs are running the same software versions: BlueOS 1.5.0 Beta 25, ArduPilot (Navigator) 4.5.7 Stable.

Could you suggest additional troubleshooting steps we should try?

Thank you.

Hi @nowtwind13 -
To rule out software being an issue, please use 1.4.3 STABLE BlueOS. When using beta versions, especially 1.5, things are not guaranteed to work as they should! Can you share why you were testing 1.5 beta?

If you can also share a vehicle .BIN log for this video, that would be helpful in troubleshooting as well.

Has the pressure sensor on the older unit ever been submerged for more than 24 hours? If the gel coating over the sensor has begun to dissolve from overexposure, then strange values can be reported, which can cause erratic behavior in the autopilot. If switching to stabilize mode helps, then I’d suspect the Bar30…

Hi @nowtwind13, welcome to the forum :slight_smile:

Feedback control (like is used in depth hold and stabilise mode) depends on 3 main factors:

  1. Sensor measurements
    • The first troubleshooting step should generally be to recalibrate your sensors, to make sure the autopilot’s estimated state is accurate
      • The accelerometer and gyroscope are particularly relevant for attitude issues (like unexpected pitching and rolling)
  2. Control authority
    • You should confirm that the motors are configured correctly, and that they actually spin
    • Note that the joystick-controller “gain” only affects joystick inputs - it is not a general speed limiter, so it has no effect on the automated depth hold functionality
      • To reduce depth hold’s speed you can adjust the PILOT_SPEED_UP/DN parameters, but that doesn’t seem relevant to your situation
  3. A target
    • The depth target is most commonly provided when depth hold is enabled / when the operator stops using the joystick to change the vehicle’s depth
    • The attitude target defaults to 0, but can be adjusted using the roll/pitch trim buttons on the joystick, or set with joystick axes if you have enough of them or are using the roll-pitch toggle functionality (which we believe is very rarely used)
    • Targets are also possible to specify programmatically, but that doesn’t seem to be what you’re doing
    • There was a recent bug fix for incorrect depth target determination when switching modes, which is currently only available in the Dev firmware (not yet Sub-4.5)
      • If that seems to describe your behaviour then it may be worth installing the Dev firmware to see whether it fixes your issue
      • It will have no effect on pitch/roll issues

If the normal checks don’t seem to help, please try flashing on the “Dev” ArduSub firmware to see whether it is better, and if not try older firmware versions to see whether the problematic behaviour is a recent change. I don’t believe there have been any relevant changes in a release after 4.5.0, so you could try 4.1.2 and 4.1.0 as the previous two releases where related code was modified.

1 Like