Electromyography (EMG) is defined as the discipline related to the detection, analysis and use of the electrical signal that is generated at a muscle’s contraction. On many occasions, generating a database that allows a comprehensive study of measurements is complicated due to the lack of automation of this type of system. The implementation of this type of system in low-cost portable devices is the key to making its use on a large scale feasible.
This work contains the entire development process of an automated 4-channel EMG signal acquisition system. The developed application is based on an ARM Cortex M4 platform internally developed by the B105 Electronic Systems Lab, which suposed a challenge since it is an economic platform with limited resources. Other device used were the signal acquisition board with its amplified probes and the communications module capable of transmitting data in the 434, 868 and 2,400 MHz radio bands.
The application created for this project is divided into modules. The main ones are: the FSM control, the configuration component, the acquisition system and the communications complex. Partitioning the development helps to improve the quality of the code, reduces the time to detect errors and keeps the program simple. One key aspect of the final system is the use of a wireless link for augmented usability and galvanic protection. Additionally, a graphical user interface is stablished which offers live data representation. All the code regarding the application is available via the following link: https://bitbucket.org/repoB105/tfmdmolina/src/master/
The project also contains a section of analysis including performance information about the final solution. The resulting performance analytics show a portable system capable of running on batteries with room for improvement via software optimizations. Furthermore, every developed module is independently evaluated using an exclusively matured testing program. The purpose of this segment is to eliminate all bugs introduced in the code and strengthen the robustness of the system.
On July 15, 2020, the master student Pablo Sarabia Ortiz read and defended his master thesis entitled “Design and evaluation of electromyography signal processing techniques using resource-constrained devices”. This master thesis is enclosed in the current B105 Electronic Systems Lab research topic of acquiring and processing electromyography (EMG) signals on the human body to achieve a wearable health device based on EMG signals.
Surface electromyographic (sEMG) is an acquisition technique based on recording muscles potential over the skin. sEMG based devices have a wide range of application: early diagnose and treatment of neurodegenerative diseases, tracking of daily activities, rehabilitation, and adaptive training. sEMG signals are complex and present different challenges like great amount of data, complex signals, and significant variations between subjects and days. For most of these applications is required to identify and classify the gestures or movements that the user is doing. This classification is a task that requires great amount of resources (memory and CPU). This thesis is focused in understanding the sEMG signal characteristics and designing a classifier for hand gestures, by using the custom acquisition board.
First, a quantitative analysis of the sEMG data was carried out by using parallel factor analysis (PARAFAC). The dataset used was NINAPRO, because it contains numerous different hand gestures performed by different subjects in different days. This PARAFAC analysis showed that is possible to reduce the number of channels from 16 to 4 without significant loss of information, as shown in the figure below. It also showed that most of the information is under the 350 Hz range. PARAFAC proved to be an interesting method for choosing the most significant channels in the dataset.
Second, an acquisition system to log the data to the computer was established. This acquisition system had 4 channels at a sampling rate of 500 Hz each. The data once logged was formatted and stored using MATLAB. Eight different gestures were performed, as shown in the figure. Then a support vector (SVM) machine classifier was trained obtaining an 99% accuracy in cross validation.
Third, a two level three variables factorial design was
carried out to model the influence of the design variables in three features of
the classifier (execution time, memory footprint and accuracy). The three design
variables studied were: codification of the SVM, data precision (float32 or
float64) and length of the sample. The results shown that float64 should never
be used, and that there is always a tradeoff between classifier accuracy versus
the memory footprint and speed of the classifier. It was also identified the
memory footprint as the bottleneck for the use of the classifier in a resource-constrained
device. It was achieved a reduction of 1/14 of the original memory footprint
and a speedup of 233 times, however accuracy of the classifier lowered to 85%.