Using data out of the dataset recording mode in Tango - google-project-tango

Would it be possible to utilize the data that comes out of the Tango on a computer? I noticed that the datasets that are recorded are just ROS bags, but I'm not sure what the message types contain in each topic. Is there a resource that allows us to access the information contained in the bag?
EDIT: I'm talking about using the key: TANGO_DATASETRCORDING_MODE_ALL (https://developers.google.com/tango/apis/java/reference/TangoConfig.html#TANGO_DATASETRECORDING_MODE_ALL)

I don't know about recording the data on the Tango and exporting the dataset to a computer afterwards, but it's very much possible to stream the data to a .csv file over a WiFi connection.
As a simplified example, in the Tango's onPoseAvailable() callback, you can build a string that contains the x, y and z position of the Tango and fire off an ASyncTask class to write the position string to a WiFi port on your computer. On your computer you can have a simple script listening to that port which then writes whatever it receives into a .csv file. The WiFi write from the Tango's side will be triggered whenever onPoseAvailable() is called so you are effectively streaming the Tango's position in real-time.

Related

Neo 6M GPS Module request Data

Is there a way to request Data from this Sensor, at the moment it continuously sends the data and I can't change anything (and don't know how to change). I tried with the ublox Software but that did not help me. I found the Datasheet with the list of commands but did not find the right one and don't know how to use them either.

Is it possible to stream a data produced by DAQ in real time to somewhere else?

Simply put, I need to take results from a DAQ and display them visually in a UI (no interaction needed) that gets information updated in real time. The DAQ I am using has an "utility" to plug into Labview, so it seems that the easiest way is to grab this data from Labview and then transmit that data to some UI using one of these methods.
I am using Windows 10 (although I could boot to Ubuntu), just not sure what UI application would be best / easiest to use.
You can use this National Instrument's tool for DAQ UI visualization. As it is native it should be quite straightforward to use.
You may want to use the DAQExpress VI in LabVIEW as #MateoRandwolf suggested. The neat thing about it is that it almost creates your first programm automatically -- besides the configuration of your NI modules.
There are just two things missing:
a waveform chart, and
a write to a TDMS file
Here is a snippit of a simple program doing this (the stop button is important to actually close the TMDS file before aborting the program)
If you really want to stream the data to a different device, you I suggest to use TCP/IP. There exist good examples in the documentation from which you can start (Help > Find Examples... > Search-tab). If you cannot accept the roughly 40ms buffer that TCP/IP has (because of shake-hands etc.), have a look on UDP.
You can use Dewesoft's DAQ systems which use dual mode capability. They use dual data buses (EtherCAT and USB). USB for high-speed buffered data storage to the PC's SSD hard drive and the EtherCAT bus for low latency real-time stream to any 3rd party EtherCAT master.
The DAQ systems are also capable of visualising data in real-time on the display using various pre-build visual displays like recorders, XY graphs, 3D graphs, osciloscopes, FFTs, GPS, video, and numerous other...

Obtain GPS Coordinates from A3 Flight Controller using SDK

I am having a hard time finding any documentation on what I am trying to accomplish.
Basically, all I need to do is set up the A3 flight controller to output the GPS coordinates every defined interval through the local SBus port. When connected in Assistant 2, it looks like you can map the A3 output to a number of different functions, including SDK 1-8 which can be defined through code using the onboard SDK.
Here's where I am a bit confused, however. In the same software, if you click on the SDK tab, you can get to a window where you can define what is output, baud rates, etc..:
So my question is, when you define all the output frequencies and settings in the SDK tab, does this information automatically get output to all of the F5-F8 ports that are set to SDK? Basically, I am simply trying to obtain the coordinates so if there is a way to do it without writing code, this would be ideal.
Thank you in advance.
Based on some trial and error, I was able to determine that the parameters defined in the Data and Transmission Rates page are sent through the API port on the A3. After defining the desired frequency, I am able to get the position directly from this port without having to write any code. Hopefully this helps someone else that has the same question.

Collecting two sensors simultaneously android wear

Is it possible to send multiple sensors data (accelerometer + gyro +magnetomer) simultaneously using android wear? I understand that we can send multiple sensors data but not at the exact same timestamp. Any suggestions are welcome!
If your problem is that you have a collection of data points (sensor data in this case) and you want to sync them across all connected devices in one shot, then can't you simply use a DataMap to put all the data points in there and then use PutDataMapRequest to sync that data as shown here? If you don't want to sync across all the nodes on your network and only want to target a subset of devices (phone seems to be your target in this case), then you can actually use MessageApi to do that; you define a capability for the target node and then on any other node, you first search for the node(s) that have the desired capability and then you send a message to them. The payload for a message is a byte array so you can have all the data points that you want put together in a su=ingle byte array (for example, create a simple json like string from your data points and convert the string to a byte array).

Tips to debug serial COM sensor data on VB (exe)

I have a chinese charge controller reporting data to a windows software via a serial cable.
I have managed to sniff the COM port and successfully isolated the data being sent by the software to request the controller to transmit sensor data.
The data being returned by the controller is a single line:
(for example)
..p...............!............ª.x
Somehow the damn thing is updating at least 4 numerical values in the software with that single line. Each second a line like that is returned, but I'm very confused because the data shown in the app is sometimes the same but the serial data received to represent such data is different. As if it was encrypted somehow (which is stupid).
Here is an example of 10 different lines being reported back from the controller. These are received one each second.
..p€...........................ª.Ï
..p...................!........ª.w
..p€...........................ª.Ï
..p............................ª.O
..p............................ª.Q
..p............................ª.P
Funny thing is each one of those 6 lines is representing EXACTLY the same data values on the receiving software (measuring voltage and amps).
The windows software is a very crappy VB.6 exe which i was able to decompile, but it seems to rely heavy on p-code, PCOMM.DLL, MXTOOL and other crap.
To anybody with serial expertise:
is this controller encrypting its sensor data?
if so, what technique should i use to figure out how it is encrypting its 4 values?
Finally, do you suggest any serial apps or decompilers that will aid in this?
Pedro
Are you sure you are using the correct baudrate to read in the data?
Are you using the correct parity and data bits and stop bits ?
Do you have any documentation of the device?
Do you know what the data should look like?
Does the data consist of normal ascii characters or is it some chinese script?

Resources