GPS data not used?

Hi, Kieron:

TL;DR AFAICT, the code is there to support USBL + DVL fusion, but getting it work well is tricky, and possibly buggy.

I ran some simulations to play around with different parameters and posted the results here: GitHub - clydemcqueen/ardusub_localization: Tools to run ArduSub localization experiments

Inspired by the simulation results we ran a test with a BlueROV2 equipped with a WL UGPS and A50 DVL off the Seattle Aquarium dock. We never got fusion or missions to work, but we learned a lot, and we have a workaround that we hope to try soon.*

I suspect that getting fusion to work well will take some experimentation. The EKF assumes Gaussian noise, and the USBL error isn’t Gaussian in X and Y, and in fact increases as the ROV moves away from the receivers. There may also be EKF bugs to work through, including this one: External navigation measurement noise is overwritten by GPS reported accuracy in EKF · Issue #24020 · ArduPilot/ardupilot · GitHub

This is high on our list for 2024, so we will keep plugging away at it. Good luck!

/Clyde

*Since we had the UGPS antenna deployed off the dock, we weren’t really paying attention to the G2 box after we got the initial lock. It turns out there wasn’t a good view of the sky from our location, so the G2 box did not keep the fix. Log analysis revealed that the GPS_INPUT.satellites_visible field was always 0, and the EKF origin was never set. Thus, fusion never happened, and we could not run missions.

This is a common test environment for us, so we will try again with a modified extension that is more forgiving: Comparing waterlinked:master...clydemcqueen:clyde_num_sat · waterlinked/blueos-ugps-extension · GitHub

2 Likes