Pitch/Roll drift

We lately experience a strange behavior of the ROV while in stabilize or depth hold mode, the pitch/roll start to drift slowly which leads to the ROV swimming with increased pitch or/and roll, so that every few minutes we need to switch to manual mode and than back to stabilize mode to level it again.
Anyone experienced anything similar or can offer a solution?

1 Like

Not seen this with Blue yet, but on Drones I have seen this a few times two causes one was not properly calibrating the system away from all Metal or magnetic objects, once when I legit had bad accelerometer you could put it on stable platform arm it and watch over time the drift happen when the drone has not moved a mm in any axis.

Hi @nfored
On the bench it holds steady and keeps leveled, it only happens during a dive as the ROV moves around and not necessarily near metallic objects. Calibration passes fine but doesn’t seem to help with this problem.

We’ve seen this. Seems to happen more when in depth hold mode, and not so much of an issue in position hold (with DVL). Also seems to happen quite rapidly when using a gamepad- we’ve switched to a joystick and it seems to be less/not an issue. It was happening on every dive, even with constant pre-calibration (away from metal objects).
The strange thing is that the artificial horizon clearly shows that the ROV is pitched/rolled, like we’ve been inputting pitch/roll commands, when obviously we haven’t. If it was an IMU issue I’d imagine that the pitch and roll drift would not be reflected in the artificial horizon indicator, as the ROV would ‘think’ it was level.

1 Like

I forgot to mention that in addition to that the ROV behaves erratically very often, like it’s glitching and momentarily going out of balance. Its relatively a new phenomenon that we haven’t seen before on the same vehicle.

Hi @odedezra,

I asked about this and @williangalvani said it’s a known issue with one of ArduSub’s internal controllers. He thought it had already been fixed in a recent beta release, but then checked the codebase and it apparently hasn’t been fixed yet, so we’ll need to look into it and figure out the best way to resolve the problem.

1 Like

Hi @EliotBR
Thanks for the update.
Any idea what would cause this behavior to suddenly appear when everything was working fine before? and is there a way to reset it back to its normal behavior, regardless of fixing the code?

I’ve had severe aggravation on my last few dives with this problem too. Any word on a fix yet?

Would really appreciate some insight on this, we are experiencing the same on one ROV

I have had issues with this ever since switching to the navigator. I tend to adjust the trim and roll while flying

The ROV we have issues with was also switched to Navigator board, no issues previously with BlueOS on Pi2 and Pixhawk board.


This was introduced a while ago in 4.1 (which is the first version with Navigator support).
The issue is that we disable the attitude controller angle stabilization when we have user inputs of yaw/roll/pitch, and run only the rate controller. when the user stops sending input, the angle controller is re-enabled and holds the current attitude.
So if the attitude drifts while there is user input, we then get locked to the new, drifted one.

This is VERY high on my list and I intend to address it this week.


@williangalvani many thanks for the explanation - that makes a lot more sense of what we experienced, especially when adjusting constantly for cross tide etc.
Look forward to testing the fix

1 Like

Hi Willian, just thought I’d check in on this topic again to see if any potential fixes are available.

Just mentioning that this is now being actively worked on, but has not yet been completed.

There should hopefully be a new ArduSub beta available for testing with next week.

Hi all,

I’ve tagged a Beta6 but we’re having some issues with Ardupilot’s build servers.
meanwhile, here are builds for Navigator and Pixhawk1:
Beta6 for Navigator
Beta6 for Pixhawk
Please let me know if this fixes the issue. Any and all feedback is welcome.


A post was split to a new topic: Position Hold with DVL and ArduSub 4.1.1-beta6

I managed to replicate the roll/pitch drift issue in this latest beta. I’m working on it.

@williangalvani I assume this means the issue remains, we really need a rapid solution for this please :pray:


Beta7 is now In Ardupilot’s server, which means it can be installed through Blueos/QGC.
It reverts attitude control to the way it was in ArduSub 3.5. Please give it a try.

1 Like