LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How do i use EMG signal to control a servo motor Smoothly

hello all,

 

I am still fairly new to labview and this is my first time posting on this board so please bear with me.

I am working on getting the EMG signals from the arm to control a simple robotic arm with servos being the joints.

 

first off, i am using Labview 8.0 along with a Clevemed bio radio and an FPGA from Servocenter v3.1usb servo board.

I am acquiring EMG data from the bicep, tricep, wrist flexors, and several other places.  but for now, lets just stick to the bicep muscle.

the signal which i get is extremely variant.  my problem is that when there is muscle contraction, the signal is Very unsteady which causes the servo motor to shake and move around the desired position.

as you hold the position flxed with the arm, the amplitude of the signal will start fading down as well.

if anybody could help me with some suggestions on how i can control the motor smoothly with my EMG signals i would Really appreciate it.  this is the only thing that i have been stuck on for the past week or so.

thank you all!

-Yuri

0 Kudos
Message 1 of 7
(4,671 Views)

Yuri,

 

Many researchers are working on that problem or very similar ones.  From what I have read in the literature, I do not believe that any established standard protocol for this exists yet.

 

Variation is one of the most difficult things for researchers working on biological signals.  Many articles have been published on filters, adaptive filters, curve fitting, modeling, transformations, and other techniques.

 

I think physiologists have reported on the "fading down" phenomenon as well.

 

Now to your problems: Rather than trying to track the EMG signal directly, use the signal to estimate where the arm should go and send it there.  Without seeing your data I can only make some guesses.  Suppose that a 10% increase in amplitude for 50 ms usually results in a 30 degree arm motion and 20% for 80 ms give 90 degrees.  If you measure 15% for 70 ms, you might move the robot 60 degrees.

 

Lynn

0 Kudos
Message 2 of 7
(4,659 Views)

Thank you, i will kep this for a later project.

 

for now i will just give it stages using threshold values, even then though the signal is very noisy and fluctuates.  it will pass the threshold and then jump higher and below the threshold value.

To try and smooth this out, i have taken the abs value of the signal, then evaluated the pt by pt RMS then sent That signal into the threshold peak detector pt by pt. using the boolean signal from that, i activate a switch for 2 positions using a Select.

this gives me a very big delay, even when the muscle is held contracted, the RMS will fade down below my threshold and may go back up once the contraction is released.

i need a steady and concrete method for determining on/off for my 2 stages using the EMG signal from muscle.

if anyone has any ideas i would love to hear them.

 

Thank you!

-Yuri

 

attached is the process that i have described, please keep in mind this is with Labview 8.0

 

0 Kudos
Message 3 of 7
(4,632 Views)

If your primary interest in in servo motor contol, maybe you could consider using the Wii MotionPlus remote with the drivers found here instead of the CleveLabs hardware.

 

You might be able to use data from the CleveLabs device together with the MotionPlus data...


Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
If you don't hate time zones, you're not a real programmer.

"You are what you don't automate"
Inplaceness is synonymous with insidiousness

0 Kudos
Message 4 of 7
(4,621 Views)

unfortunately i dont have access to wii controllers...

this is for school so i have to work with what i am given.

but that is a neat concept of using the Wii remote to control objects

0 Kudos
Message 5 of 7
(4,608 Views)

You may also want to post this question on our Biomedical User Group located HERE

0 Kudos
Message 6 of 7
(4,599 Views)

Many researchers are working on that problem or very similar ones.  From what I have read in the literature, I do not believe that any established standard protocol for this exists yet.

 

Variation is one of the most difficult things for researchers working on biological signals.  Many articles have been published on filters, adaptive filters, curve fitting, modeling, transformations, and other techniques.

 

I think physiologists have reported on the "fading down" phenomenon as well.

 

Now to your problems: Rather than trying to track the EMG signal directly, use the signal to estimate where the arm should go and send it there.  Without seeing your data I can only make some guesses.  Suppose that a 10% increase in amplitude for 50 ms usually results in a 30 degree arm motion and 20% for 80 ms give 90 degrees.  If you measure 15% for 70 ms, you might move the robot 60 degrees.

 

Lynn

 

 

 

can u please tell me some tips on how to do this as i am trying to do the exact same thing on labview....i think i need to use fuzzy logic... not sure of this though

any  piece of advice on this topic is welcome

thanks

0 Kudos
Message 7 of 7
(3,960 Views)