LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to use labview to control a robotic arm by EMG signal

Hello,

 

I am working on simulation of an active Exoskeleton (wearable robot) for the upper limb using LabVIEW for my senior project. I need to use the EMG signal as an input to move the elbow joint (flexing and extending). I downloaded labview biomedical toolkit to take a ready simulated EMG signal but have a weak experience in LabVIEW.

 

The design criterial I am planning to use is to establish a threshold for the EMG signal using a comparator (above 0 for example) and set a counter for everytime the signal passes the threshold as(+1) in every count. Then, specify a degree value for the counter (for example when the counter reaches 10000) and feed this value of the counter to a simple simulated structure for the joint (simple angle of 2 lines) or a meter to represent the movement.. e.g. every 10000 count = 1 degree of movement. Zero crossing can also be used instead of the comparator and the signal will be filtered and that is easy to do. However, my problem is in converting this logic into LabVIEW. I don’t know how to set a counter for the signal and make every number of counts refer to a specific degree of movement and I also don’t know how to form the simulated joint structure in LabVIEW or even how to transfer this into a simple meter device in LabVIEW.

 

I have only one month to do this project so any help or ideas you provide are highly appreciated

 

Thank you ,

0 Kudos
Message 1 of 10
(5,404 Views)

I "feel your pain" (but from the other side of the coin).  I have been struggling to be "allowed" to give a 2-hour "Introduction to LabVIEW" followed by a 2-hour "Hands-on Lab" where we build a Touch Sensor out of a USB-6009 and a resistor to our undergraduate BME majors.  No time in the first three years, nor in the first semester of their Senior Year (because they are busy with Senior Design).  So I give it in the final semester, when they also "have only one month to complete this project".

 

Find a local LabVIEW Guru and "apprentice" yourself to him/her for a few days.  You should also avail yourself of all of the on-line material you can find:

http://www.ni.com/getting-started/labview-basics/ ,  http://www.ni.com/getting-started/labview-basics/, and others.

 

Bob Schor

0 Kudos
Message 2 of 10
(5,397 Views)

Hi Nasso,

 

I've attached a very simple concept of a counter code in LabVIEW that increments a numeric value every time a certain boolean condition is true. Then, when the counter grows large enough, it enables some other functionality that also needs to be implemented. The arrows on either side of the While Loop are the input and outputs of a Shift Register.

 

However, Bob Schor is right. You should (and I hope you have had the chance to) find someone who can teach and/or assist you with the project. Some of the example VIs in LabVIEW (go to "Help" >> "Find Examples...") can give some starting ground for working out a functioning code relatively quickly, if you know what you're looking for.

 

My feedback may come somewhat late, but I wish you all the best with your project!

0 Kudos
Message 3 of 10
(5,287 Views)

Bob_Schor

 

I did all of these basic  tutorials . Thanks for helping 🙂 

0 Kudos
Message 4 of 10
(5,267 Views)

CarlFHellwig 

 

Thank you for providing this example I just implement  it in the software to check the counter results.

 

In fact, the design criteria I desided to use latly is to use is to establish a threshold for the EMG signal using a comparator and correlate the EMG signal with the angles of movement of a simple simulated structure "motor" for a single joint (simple angle of 2 lines) eg. 30,60,90,120,150 degrees for flexing and extending. Zero crossing can also be used instead of the comparator and the signal will be filtered and that is easy to do. 

 

In other words, the idea is to drive a motor for different angles based on the input EMG signals. I am now stuck with developing the algorithm of how the angles are related to the RMS value of the signal while flexing and extending and how to convert this RMS into angular velocity and angular position to form the simulation. 

 

I will be grateful if someone guided me to a person did a similar project to discuss some issues. 

 

 

0 Kudos
Message 5 of 10
(5,261 Views)

How you want to control your specific motor depends on the connection interface of the engine.

 

I'm afraid I haven't seen many these projects being worked on, but I was able to locate this page: http://sine.ni.com/psp/app/doc/p/id/psp-1141/lang/no

It provides some manuals, tutorials and example code that I hope can be of use; among them is an "EMG Analysis using LabVIEW Biomedical Toolkit" https://decibel.ni.com/content/docs/DOC-23510

 

I hope this helps!

0 Kudos
Message 6 of 10
(5,225 Views)

hey,,, am doing my final year project on detection and processing of Emg signals using labveiw ... actually i am so confused that how can i come into llabview fro hardware because using all components and making my own device using instrumentation amplifier and filters along with elctrodes so when we attched elctrodes on the surface of ur skin the signals generated by this are so noisy ,, is this thing is poosible using biomedical kit or we have to design that whole hardware circuit on labview ,, kindly reply meSmiley Happy

0 Kudos
Message 7 of 10
(5,089 Views)

I'm sorry you are having so much trouble with this project.  However, you have not provided much information for us to be helpful to you.  You want to control a robotic arm using EMG signals.  Here are some questions:

  • How are you acquiring the EMG signals?  Do you have suitable EMG amplifiers that can give you signals of sufficient size and stability to be acquired (sampled) by a computer?  Have you thought about filtering, rectification, etc.?  Do you have an idea what you want to measure in the signal?
  • What sampling rate are you using to acquire the signal?  What sort of pre-sampling and post-sampling processing (filtering) are you doing?
  • Have you been able to look at EMG signals and come up with a "measure" that you can use to derive a Control Signal for a robotic arm?
  • How will you control the Robotic Arm?  Are you hoping to actually drive a physical system?  With what components, and what hardware?  At what frequency rate?

LabVIEW can be useful "glue" in tying together these various pieces.  Depending on the hardware, LabVIEW can sample the EMG signal, do some processing, derive a "drive" signal, present that signal to an output device, and provide a Front Panel that the user can use to control and visualize the signal paths, set gains, adjust filters, etc.  However, before you start worrying about how you will map details of the EMG signal into degrees of movement of a Robotic Arm, you first need to be able to acquire the EMG data and look at it.  Biological signals can be tricky to handle, EMGs in particular.

 

Bob Schor

0 Kudos
Message 8 of 10
(5,065 Views)

 Hi,

I am designing a robotic arm controlled by emg signal but i have no idea what you all are talking about and i have to do a presentation in about 5 days.Could you guys please suggest where should i start from i have no basic idea of programming even....

please helppppp

thanks

 

0 Kudos
Message 9 of 10
(4,096 Views)

It sounds like you are possibly part of a student team proposing a Biomedical Engineering "Capstone" Project.  I recall hearing a similar presentation at the start of the school year several years ago -- the Team said they were planning to use LabVIEW to handle the data acquisition and control for their Project.  I commented that I thought LabVIEW was a good choice, then asked which team member(s) had experience or "knew" LabVIEW.  The answer was "None of us, but it looks pretty easy ...".  My response was that they should find a LabVIEW "guru" on campus and plan to apprentice themselves to him/her for a few weeks, with regular visits, and I even volunteered myself.

 

We had about 2 one-hour meetings.  They were unable to successfully complete their project (everything worked, but there was absolutely no software).

 

Ask your teammates the same question -- "Who knows LabVIEW?".  If, like yourself, the answer is "No-one", find a Guru, and be prepared to apprentice yourself for a few weeks (meaning 2-3 hour-long meetings per week, between which you work like mad, do Examples, write lots of little programs, follow your guru's suggestions, and learn LabVIEW.

 

Bob Schor

0 Kudos
Message 10 of 10
(4,085 Views)