I’m looking for a way to inject positional data into QGC/Cockpit so that it is displayed on the overlay and in subtitle files during video recording.
From our navigation computer (Hypack), I can output the ROV’s position as UTM coordinates in ASCII format via either a serial or UDP port. I’d like to display this positional data on the video overlay.
I noticed there’s an option to inject NMEA strings into the navigator, but that only shows Lat/Lon values. My goal is simply to display the X and Y UTM coordinates on the recorded video—no further integration is needed.
Is there any possibility to display a custom data string like this for real-time video recording in QGC/Cockpit?
There isn’t a direct way of doing exactly this at the moment, although if you want to avoid modifying the display program then Cockpit can display (and record into subtitles) any variables that exist in its Very Generic Indicator widget, which includes received MAVLink messages, so one option would be to send NAMED_VALUE_INT messages into the MAVLink telemetry stream, and then add generic indicators for them.
For some extra context, ideally your use-case would be fully supported by the Very Generic Indicator mini-widget, which there are a few relevant GitHub Issues about...
If modifying control station software is ok then the most reasonable approach I can think of (for sharing the results of) would be to develop a Cockpit mini-widget for “location”, which I’ve just raised an Issue for.
Depending on your data input and requirements it may be simpler to develop a custom mini-widget that directly receives and displays your specific data, although that would likely need to be maintained in a custom version of Cockpit until we support dynamic loading.
If you’d prefer to use QGC then I have some old notes here, but be aware that modifying and building QGC can be a pain, and you’d need to look into how to also add it to the subtitle recording, since QGC doesn’t provide user control over that.