qualisys / qualisys_dotnet_sdk

C# (.NET) implementation of the real-time protocol for Qualisys Track Manager
MIT License
8 stars 5 forks source link

Channels data gets mixed up when streaming live analog data from Noraxon Ultium #24

Open cappelnord opened 3 years ago

cappelnord commented 3 years ago

During development of live feedback software we stumbled over an odd behaviour when streaming live analog data from Noraxon Ultium EMG/IMU sensors via QTM over RTClientSDK.Net. We first observed these as spikes in the analog data but then later understood that channels get mixed up for some frames. A small test program based on RTClientSDK.NET code was developed to isolate and redproduce the issue (attached).

NoraxonLiveDataTestProgram.zip

Our Environment

In order for the test program to highlight the issue clearly the sensor must lie still on the table (the issue itself is not related to this though).

Test Program (Program.cs)

The test program is requesting QTM to stream analog data for all frames. It stores the channel names in a List object. The program assumes, that the channel layout does not change. If data comes in, it will compare the last sample of the last frame with the first sample of the new frame. If in one of the channels a difference of more than 0.5 is observed then the two conflicting samples will be printed out.

Expectations

Since we do not move the EMG/IMU sensor there shouldn't be a large change in values. The program should run without finding anything suspicious.

Result

For some frames (after some seconds) the test program is printing out information like this:

** Large change detected! **
== Last Packet Last Sample ==
L_EMG_AntebrachDors: 0,011719108
Ax: 0,039063696
Ay: 1,0010072
Az: 0
Sync: 0
== This Packet First Sample ==
L_EMG_AntebrachDors: 0
Ax: 0,013672293
Ay: 0,042970065
Az: 1,0068667
Sync: 0
** Does it look like some channels are mixed up? **

From visual inspection one can see that that channel data got mixed up (or the channel layout unexpectedly changed): EMG data now is on Ax, Ax on Ay, Ay on Az. Actually this latest frame is already again in the expected channel order: Az measuring earths gravity.

Other Important Observations

I hope the issue is documented in a clear, is reproducible and can be fixed. In case you require more information please let me know.

Best wishes from Karlsruhe!

helmesjo commented 3 years ago

Hi @cappelnord, and thank you for the very detailed description (including reproducible case)! Sorry for late response. We will definitely look into this.

cappelnord commented 3 years ago

Hi @helmesjo; could you reproduce the issue and is it fixed by now or still at it?