Why are the waterlinked GPS(Loactor-A1) coordinates different from the QGC coordinates?

I use waterlinked GPS to get position and it works well. Waterlinked GPS home position and location of ROV is displayed in QGC correctly. However loacl position in QGroundContorl (and Mavproxy) is different from waterlinked GPS.Local positions in QGC use waterlinked GPS data, doesn’t it? (use the IMU data equipped with ROV2?) How do I get waterlinked GPS data (x,y,depth) in QGC?

So Position hold mode and GUIDED mode does not work well.

Hi @yuki, welcome to the forum :slight_smile:

From what I understand the Water Linked GPS sends positioning data to the vehicle, which is fed into the vehicle’s EKF (Extended Kalman Filter), which merges it with the ROV’s IMU data and determines a position estimate from that combination of sensor values. The only data that gets sent from the vehicle to the GPS is the depth data, so the position values aren’t expected to be the same.

It may be present in the GPS_RAW_INT message, which you can access from the MAVLink Inspector. If that does show the values you want then you can either plot those live, or pop out the window and look at the numbers. I don’t believe it’s possible to show the raw GPS values on the normal telemetry overlay.

If you’re interested in looking at values after a dive, you can use the Log Viewer to view the relevant .tlog file(s) from your QGroundControl telemetry folder, where you can change the displayed trajectory source between GLOBAL_POSITION_INT and GPS_RAW_INT and see if there are major differences :slight_smile:

Thank you for your reply.

I understand difference between waterlinked GPS data and QGC position data.
Are QGC(mavproxy) LOCAL_POSITION_NED and mavros /local_position/pose position the same data?(start from the origin when mavros is started, so I assume there is an offset for that.)

By the way, if position hold mode does not work as excepted, what are the possible causes?
(ex.PID control parameter, imu data difference between GPS and QGC)

When BlueROV2 I’m using switch to position hold mode, stay in place for a few second and then keep going one direction.
Originally, you use DVL to use position hold mode. However, we only use waterlinked gps to get ROV positon.

By their names it sounds like they should be, but I haven’t used mavros so don’t know for sure.

The Water Linked GPS specs state a horizontal range accuracy of 0.2%, so with a 100m range sensor that would be 20cm. The horizontal angle accuracy is stated as 1 degree, so at 100m away it could be off by ~1.4m. Given there doesn’t seem to be any information specified precision/resolution, I expect those values are in fact precision rather than accuracy, in which case that’s likely the kind of variation you can expect.

ArduSub will try to smooth out measurements, but it may still add some fluctuations to the position estimate, so it could be worth lowering the position controller xy gain, and possibly some of the others too.