Skip to main content

Progress Report 6 (2/27/19)

Posted by on Tuesday, February 26, 2019 in Notebook.

Previous Goals

We had previously strived to continue hardware addition and construction with battery pack incorporation and the identification of myoware sensor processing issues. We also aimed for translation and effective implementation of PID controller in arduino IDE. EMG testing was begun and we hoped to continue the identification of effective phantom users and become more aware regarding myoware placement and relevant data outputs. A goal to work on the understanding and development of the embedded system aspects of the project was also previously developed.  With continued difficulties in verifying the efficacy of the arm, we also hoped to continue communication with Ottobock to resolve the servicing of the arm.

 

Work Accomplished

EMG signals were acquired for extension and flexion from each of four group members. These signals are currently being processed  to calculate SNR during muscle activation for identification of phantom subjects. During this process, the raw signal output from the myoware muscle sensor was identified as containing the relevant muscle activation artifacts while the processed signals has lost these. We contacted the manufacturer to try to get advice regarding this anomaly and after some consideration it was decided that the raw signal will be used to maintain necessary artifacts. This pointed to a requirement for some preprocessing integration into the software. An LED shield that will show muscle activation in real time was ordered for each myoware sensor to allow for user and lab technician observation of actuation. A closed loop system independent from computer power was also previously established using the existing hardware.

 

Several Ottobock communications and contacts were made over the past couple of weeks. We have finally been put into contact with a US-based Ottobock firm that is requesting further information on the arm to confirm the viability of servicing the arm. In the meantime, several servo motors were purchased that will behave similarly to grasper from the ottobock arm. These motors were tested using DC voltage sources to ensure they were functional. Further research is being done to allow for integration of this servo motor into planned software landscape.

 

Following the meeting with Platon Lukyayenko, a resource in the Functional Neural Interface Lab at Case Western, the embedded software development was begun. Platform IO was chosen for interfacing with the Teensy board as this allows for easier development and microcontroller deployment. For processing the incoming raw signal, permission was received from the MediaLab Prado in Madrid, Spain to access and clone their GitHub repository and set up an environment that captures, rectifies, and smooths the raw EMG signal at a frequency of 1000 Hz. This sampling frequency was chosen based on literature suggestions and the Nyquist theorem, as the maximum EMG frequency is approximately 300 Hz. This base environment was tested with the Teensy board, but testing was halted due to infinite looping somewhere in the code. Buffer management and the EMG differential algorithm were theoretically examined, and per Platon’s suggestion, an array of 200 elements (corresponding to 200 ms) will be filled and processed using a sliding window of 50 ms. The mean absolute value will be extracted from this window and used to determine the variable speed as a simple gain and gesture classifier. The gesture classifier will be a simple machine learning nearest neighbor logarithmic equation.

 

The PID was translated into the Arduino platform through the use of a preexisting library and the control variables were manipulated until the controller showed the return back to the set point was gradual and that step inputs could easily cause disruptions in the error maintenance. This allowed for observation of proposed behavior and further work must be done with chosen phantom for specific constant determination and possible relay of setpoints.

 

Work Backlog/What Went Wrong

  • Ottobock communication continued with new contacts made with the sponsor
    • Serial number needed for further research that can not be identified
    • Because of these pauses, we were unable to move forward with servicing the arm.
  • Testing of acquisition and pre-processing code failed due to infinite looping in the code
    • Infinite loop present that causes continual true reading during signal sampling and never forces exit to single processing
    • This is being investigated further
  • EMG testing was slowed due to the artifact loss in myoware preprocessing causing a bit of backlog in phantom testing that has been overcome

 

Plans for Next Week/How to Accomplish

  • Test and finalize acquisition and pre-processing code
    • Troubleshoot infinite loop error to allow for pre-processing incorporation
  • Implement and test EMG differential and buffering code
  • Finish SNR analysis
    • Matlab based calculation of average amplitude across flexion and extension compared to rest average amplitude
    • Choose main test subject – based off of SNR
    • Do further EMG testing, confirm permanent placement of electrodes on test subject of choice
      • Document placement, confirm plan of how to maintain consistency of electrode placement
  • Incorporation of LED shields into the hardware landscape to allow for more intuitive user and lab technician experience.
  • PID implementation with phantom signal following identification of subject for exact constant identification
    • Research possible sliding setpoint for more effective implementation in software platform
  • Output generic signals and associate pulse widths with angle actuation for integration into arduino platform using the servo-motor
    • Further research communication methods and relationship between motor behavior and prosthetic actuation