Hey Folks!
I’m having some issues with the compasses on our ROV. Everything seemed to work fine with our Waterlinked A50, but after testing outside our tank, we discovered that our map position wasn’t quite similar to the actual ROV position.
We’ve tried everything with the DVL, including using the dead-reckoning functionality and calibrating its IMU/gyro, but the map position still appears unrealistic. Position Hold worked flawlessly, so I don’t believe drift is causing the issue.
If I understand correctly: the map position is determined by the DVL’s velocity/speed in combination with the ROV’s heading, right? Since Position Hold is working seamlessly, I’m starting to doubt the accuracy of the compass. To investigate, I checked the Compass data in the Vehicle Setup tab in BlueOS (all compasses had a green smiling emoji status).
In the Compass tab, there are three vectors displayed: the MMC5883 (Navigator), the AK09915 (Navigator), and the EKF. With previous calibrations (done inside a building), the AK09915 was slightly off, which makes sense as it’s a magnetometer that can be affected by large buildings and steel structures. After calibrating the compasses outdoors, the AK09915 and MMC5883 worked together much better! (We calibrated the compasses in both BlueOS and QGC.)
Now my question is: what exactly is the EKF? Is it a calculated output from the MMC5883 and AK09915 values? While operating in open water, we received some “Bad EKF” messages in QGC. We also saw messages indicating that the ROV was switching between Compass 0 and Compass 1. When these messages appear, is the ROV switching between the MMC5883 and the AK09915 as its primary compass source? And if so, how does it decide when one of the compasses is providing faulty data?
I know these are a lot of questions haha! I’m excited to hear from you!
Cheers!
~ Sietse