Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
cappelnord opened this issue Mar 3, 2021 · 2 comments

Comments

@cappelnord
Copy link

cappelnord commented Mar 3, 2021

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

  • QTM 2020.3 Build 6020
  • MyoResearch MR3.3 16.68 (same issue with an older version)
  • Two Windows 10 computers connected via Ethernet (one running QTM, the other the test program)
  • Latest RTClientSDK.NET (Jan 18 2021) (same issue with an older version)
  • One EMG/IMU sensor setup with EMG data and Accelerometer data setup in QTM/MyoResearch, sending live data out on 5 Channels: The EMG channel, Ax, Ay, Az and Sync. QTM runs at 100 Hz
  • No EMG electrodes connected (same issue when electrodes are connected)
  • Built as .NET Core 3.1 Console Application with VS 2019

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

  • This behaviour could not be reproduced when streaming the data from a recording - it seems to be a problem only when streaming live data.
  • Inside of QTM the data does not seem to be mixed up.
  • We are not totally sure if the issue is related to the IMU data or if it is also present when only streaming EMG data.

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!

@cappelnord cappelnord changed the title Channels data gets mixed up when streaming live analog data from Noraxon Ultimus. Channels data gets mixed up when streaming live analog data from Noraxon Ultium Mar 3, 2021
@helmesjo
Copy link
Contributor

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

@cappelnord
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants