I have Pixhawk 2.4.8 otopilot with ArduSub_V3.5. 4 firmware installed on a custom ROV.
The problem (figure below) is that yaw (ATT.Yaw) info displayed on QGroundControl_v3.5.3 switches between EKF primary (NKF1.Yaw) and secondary (NKF6.Yaw) solutions, when the vehicle is stationary. Also, EKF secondary yaw solution (NKF6.Yaw) drifts due to drift in gyro bias estimation (NKF6.GZ).
Although Gyro-Z measurement from first IMU (IMU1.GyrZ) seems stationary, IMU2 (IMU2.GyrZ) seems to be drifting, but I dont thing this is a problem because the values are very small and I dont see and problems in other tests.
When I rotate the vehicle at 90deg intervals, I see that yaw values (NKF1.Yaw and NKF6.Yaw) are drifting even though the vehicle stays stationary. NKF1.GZ and NKF6.GZ values shows huge changes.
I think the problem is that Gyro.Z bias estimations in EKF do grows too much to make Yaw estimation drifting. Magnetometer and Gyro sensors seems to be measuring correctly. Do you have any suggestions?
Although I have experimented with different EKF settings and external magnetometers, I couldn’t reach a solution so far, but I believe that EKF settings need to be calibrated for ROVS having metals and noisy electronics. The nature of yaw drift is very different when the ROV is in or out of water. The interesting thing is that I don’t see any problems with roll and pitch, but only a yaw drift.
I am still waiting for firmware update for ArduSub, and expecting the capabilities implemented in ArduPlane v4.0.1 and newer versions. I am sure they have done outstanding contributions to EKF firmware since ArduSub v3.5.4.
@patrickelectric do you have scheduled plan for releasing an updated firmware since you moved to ArduPilot codebase, so that we can benefit from new features.