Help Debugging Height Estimation on BlueBoat

Hi everyone,

I’m currently facing issues with height (altitude) estimation on my BlueBoat platform, and I’d really appreciate any insights or suggestions.

Observations:

When the boat is placed on the dock at Champaign, IL (~0.5 m above calm water), the reported global altitude is ~194 m. When I lower it to the water surface, the reported altitude jumps to ~233 m, which doesn’t match reality. While the boat is stationary on calm water, the altitude varies by 7 meters, which is too unstable for localization.

Additionally, when echoing the /mavros/imu/static_pressure topic, I observe:

I’m integrating both a stereo camera and LiDAR on the BlueBoat, and I need reliable height estimation to transform point clouds into the map frame accurately.

Questions:

  1. How accurate and stable are barometer and GPS altitude readings for small USVs? Are there any recommended methods to get a more stable and reliable height signal?

Thanks in advance for any help!

Best,
Yan-Liang

Hi @andycyl
Unfortunately, your best bet is to set EK3_SRC1_POSZ parameter to none - by default it is set to barometer, but we recently noticed that this value is effectively useless as the Navigator barometer is inside a sealed hull, which has an internal pressure that can fluctuate with temperature and impacts from sea state!
GPS is a poor solution for estimating altitude with any great precision. The GPS_NAVFILTER by default is set to SEA, which assumes the GPS is located at sea level to increase X/Y position estimate accuracy! If operating above 600m altitude, this needs to be set to another mode, like automotive.

For accurate height, your best bet is RTK GPS, but even this is not likely to be terribly good…