Displaying both Waterlinked UGPS and BlueBoat position on the map during mission

Hello everyone,

As part of an underwater acoustic positioning project, I have integrated a Waterlinked UGPS system into a BlueBoat.
The objective is to localize a diver or a ROV by equipping it with a Waterlinked Locator U1.

The GPS position of the diver/ROV is computed by combining:

  • the GNSS position of the BlueBoat

  • the relative position of the locator U1 with respect to the BlueBoat

During missions, the BlueBoat is intended to automatically follow the diver or the ROV by sending dynamic waypoints generated by a Python algorithm.

For operational validation, I would like to visualize both positions simultaneously on the map:

  • the GPS position of the BlueBoat

  • the computed GPS position of the diver or ROV (from the Waterlinked system)

This would allow us to verify in real time that the UGPS system is working correctly during the mission.

My questions are:

  1. Is it possible, during a mission, to display both GPS positions simultaneously in QGroundControl or in Cockpit?

  2. If this is not directly supported, are there other mission planning or monitoring applications that would allow displaying multiple dynamic positions (e.g., vehicle + tracked target) on the same map?

Hardware setup

  • Vehicle: BlueBoat

  • External GNSS: EMLID Reach M2 with its own antenna

  • Acoustic positioning: Waterlinked UGPS mounted on the BlueBoat

  • Locator: Waterlinked Locator U1 (on diver or ROV)

  • Connection: Waterlinked connected to the BlueBoat via Ethernet

  • Communication: Topside computer connected to the BlueBoat via BaseStation

Software setup

  • Mission planning: QGroundControl v5.0.8

  • Autopilot : ArduPilot 4.6.3

Hi @Mravitch,

QGC says that it supports displaying all connected vehicles, so as long as the locator is being presented as an additional vehicle in a way that is reachable by QGC it should appear. I’m unsure what’s required for that - it would need its own MAVLink system ID, and would need to send position values (likely via the GLOBAL_POSITION_INT MAVLink message), but it’s possible it also needs to send regular HEARTBEAT messages.

Cockpit does not yet support this, but its intended support will be straightforward, as long as Cockpit somehow receives the position info. We’re currently hoping to add it some time this quarter (1.18 is undergoing release testing at the moment, so it likely won’t be until at least 1.19).

Thank you for your feedback. I finally managed, thanks to your advice, to display the position of an additional system in QGroundControl.

I wrote a small piece of code to test MAVLink communication with QGroundControl, where I simulate a vehicle with id = 3 having a fixed position close to the BlueBoat.

In QGroundControl, I can correctly see both the simulated position (vehicle 3) and the Blueboat position (vehicle 1).

The blocking point was that I did not specify source_component = 1 in my Python code. In that case, source_component had the default value of 0, while QGroundControl expects source_component IDs between 1 and 255.

This is still a very minimal starting point, but it confirms the possibility of displaying multiple vehicles.

Cheers

Hey @Mravitch!

As @EliotBR mentioned we don’t support multiple dynamic positions in the map yet, but that is in our list of goals for this quarter.

We have a draft PR for it already and as it would be super cool to have you guys on board, I will put some priority on finishing it and have the feature working for you to test on Cockpit as well.