Home        Store        Docs        Blog

Data string output


(Etienne Demers) #1

It would be good to have the sensors like depth, heading etc output from qgroundcontrol directly.

Should have an option to send to UDP and/or serial port and select which data to be included.

I know Jacob has come up with a backdoor solution but it is not obvious for those who are not used to the tools you are using for programming.


(Luis Gamez) #2

Yep Im agree with that! would be nice


(Jacob) #3

Can you provide a use case or two?


#4

I would use the data string for several purposes:

-Data string to external video overlay
-Data string to Survey Software
-Data string for logging purposes.

A string output would be very nice…


(Jacob) #5

These external applications will typically have a data format requirements. Is this the case, or am I free to push the data out however I see fit?


#6

May I suggest comma separated serial ASCII string with Carriage Return and line feed at the end. 9600 Baud and 1 Hz update?

The data sentence I consider must have:
Date, Time, Depth, Heading,

This is the nice to have:
Roll, Pitch, Latitude, Longitude, camera tilt,
Lat / Lon if available into system (surface GPS or "Underwater GPS)

Any comments @etienne ?


(Etienne Demers) #7

Sounds good to me.

Any string will do really. Most software will allow users to parse the string. I would maybe add an option for frequency. 1Hz can be a bit limiting.

I would also add altitude since this provision is already in the works…

Video overlay and connectivity with survey are the most common applications. But I would also use it to display these values outside QGC. IE make them BIGGER!! :grin:


(undersearobotics.com) #8

May I recommend using either an existing NMEA 0183 sentence or format the sentence(s) similar to NMEA 0183?


#9

It could be challenging to find an existing NMEA 0183 Sentence that will fit the various data fields to be included but a custom header in the string would be useful. For example:

$BROV, field1, field2, field3, etc

That will make sentence decoding even easier since it is a fixed field at the start of each line.


(Etienne Demers) #10

Most software detect the line feed and parse in between commas.

This is because most programming languages can fill a stringlist component with the comma as a delimiter automatically.

In the end, it really doesn’t matter as long as they provide something…

On my last survey I was unable to provide overlay because of this which was a bit of a let down.


(Aditya Tandon) #11

Frankly, I think a simple JSON string with multiple parameters would do the job. Advantages of using JSON are innumerable, especially the fact that there are a host of JSON parsers readily available for use.


(Jacob) #12

So far there have been requests for 3 different output formats. I will point out that all of the data is already accessible via udp and can be sorted however the user wants with existing software and parsers. If it is a matter of putting the data into a different format for a specific application, then the user can already do that with available tools.


(Jacob) #13

Both csv and json can be produced in post with mavlogdump.py. It might be easy to bring this same functionality to a real time stream in MAVProxy, or add a --stdin option to mavlogdump.py to feed it a live stream rather than a log file.


(Luis Gamez) #14

@mjhl96 take a look at this


#15

So, if I understood correctly, I need to add the stdin option to produce an output that would update contiuously right? If so, how can I go about doing this? Or can I just use mavlogdump.py as it is to generate that continuous output?

Thanks for your help.


#16

So… I’ve got yet another error, and no real clue of how to solve it. Do you guys have any ideas of what this is?


(Jacob) #17

It is looking for a file name “LOG”, and there is no such file. You are supposed to supply the log file you are interested in. @patrickelectric has done some work on json output with mavproxy. You can see it here.


#18

I’ll take a look at it. Thanks!


(Matt) #19

Hi Guys

How far we all get with Data Output abiliity?
I would like to be able to send multiple serial data strings through the pi, or a ethernet string, to surface and be able to pull it out for display on additional software for the likes of live graphing of sensors etc either house sensors like depth and heading or external sensors like for a pH or CP meter.

Does anyone have suggestions or recommendations for graphing software that has been used and works simple and well?

~Matt


(Jacob) #20

Hi Matt, we are working on a html/REST api to pull mavlink data from the ROV. This appears to be the most straightforward and universally applicable technique.

Meanwhile, re the graphing, see here.