You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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).
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!
The text was updated successfully, but these errors were encountered:
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
Hi @cappelnord, and thank you for the very detailed description (including reproducible case)!
Sorry for late response. We will definitely look into this.
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:
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!
The text was updated successfully, but these errors were encountered: