EMG Sensor response time for prosthetic arm

Discussion in 'General Electronics Chat' started by strantor, Nov 23, 2013.

  1. strantor

    Thread Starter AAC Fanatic!

    Oct 3, 2010
    I've come up with the perfect excuse to buy a 3D printer (now I just need the money;)

    My dad is an amputee; he lost his arm 3" below the elbow 30 years ago. He has a myoelectric prosthesis that he got back in the 80's but he hasn't used it in 20+ years because it sucks, and it hurts him to wear it. With the advances in technology and the growing open source movement, I believe I have enough resources to build him an arm.

    I am looking at commercially available hobbyist-level EMG sensors, and the projects people have done with them. I have seen a lot of videos on the topic, on youtube. Here is a perfect example. In that video, I believe that the guy is not disclosing the scenario completely. He is using only one EMG sensor and the hand is mimicking his movements anyway (which should require several sensors); I believe he has hand gesture profiles stored and is cycling through them, activating them by a single flex. But that's a distraction from my question... If you notice (and watching similar videos you will notice) that there is a significant pause between when he closes his hand and when the prosthesis closes, and an even more pronounced lag when he opens his hand.

    I don't know much about EMG yet, but after watching the videos and doing a little bit of reading, my understanding is that the electromyographical signals are more a function of frequency than amplitude, and my SWAG is that whatever algorithm or filter they are using to obtain a microcontroller-friendly amplitude-based analog value for signal processing from the frequency takes a while to increase once a high frequency is input, and even longer to settle back to zero even after the frequency is 0hz.

    So, my question is if there is a way to speed things up. Does anybody here have experience with EMG? What I was thinking is maybe instead of trying to filter the frequency into a "usable" amplitude-based value, why not just amplify it and pass it straight through to a servo without any signal processing? If that EMG signal was good enough for a muscle to use without any signal processing, shouldn't it be good enough for a servo? Or is there a way to take and process frequency signals that is "instant?"

    I realize it's impossible for a time-based calculated value to be instant, but if I can get the processing time down to "indistinguishable from instant by the human brain" then that would be good enough. Can you imagine how annoying it would be if you had a 2 second lag in the action of your hand? Possibly more annoying than not having a hand.
  2. #12


    Nov 30, 2010
    I think you're focusing too much on somebody else's weak design. 50 milliseconds is fast for a human response. Electrical signals to the muscles consist of pulses that are basically constant energy. Constant voltage, constant duration, constant current. The speed of repetition of the pulses is the modulation scheme. They sound like a Geiger counter.

    Gotcha started?
    strantor likes this.