Biomedical User Group Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Robotic Arm Control using EMG & Fuzzy Logic

Dear all,

I am doing my final Bachelor thesis about controlling the robotic arm using EMG signal.

I have done EMG circuit and recording EMG to LVM file. For the robotic arm, my teacher gave me a completed arm from previous student. It was made from several servos dynamixel AX-12+. I am able to control it by LABVIEW now but stuck at connecting those two parts.

Could someone please help me the following issue?

1) How to record and display EMG in real time? The signal displays on the graph quite slow after the muscle action.

2) Before controlling a single servo, I am trying to turn on and off the Boolean when the RMS go up and down the threshold. Could you please help me how to do it.

Thank you.

Regards,

Phuong NGUYEN

Download All
0 Kudos
Message 1 of 5
(7,474 Views)

Hi,

Here is a document about how to log biosignals in real time: https://decibel.ni.com/content/docs/DOC-23855

You can also find an example by clicking Help->Find Examples in LabVIEW, and then search for Biosignal Logger.

To change the status of the Boolean control, you can add a "Convert from Dynamic Data" Express VI, and select Single scalar in the dialog, and then determine whether the value is greater than 0. (See the following image)

If you want to use this method to indicate the EMG activation status, you must make sure the block size is small enough (0.02s, for example), because the boolean control will be updated only once in every loop. A small block size makes the updating more faster.

Capture.PNG\

Xuesong Liu

Message 2 of 5
(3,369 Views)

Hi, thank you for your reply.

I inserted the Biosignal DAQ into my VI, similarly as in Biosignal Logger example. It works several times, and I can control the Boolean perfectly. There is only problem that the graph displays only one short block changing during time, as in figure below. I want to display all signal continuously.

Then without doing anything else, the VI stops working and gives error 200284. I really don't know why this happen.

I am trying to control servo Futaba 3003 by PWM subVI. If the Biosignal DAQ worked perfectly like before, I would be able to control the servo.

Phuong

0 Kudos
Message 3 of 5
(3,368 Views)

Oh,

Error 200284 only occurs after inserting the subVI PWM.

How can I solve this?

0 Kudos
Message 4 of 5
(3,369 Views)

Hi,

You can use a waveform chart instead of waveform graph to display continuous signal.

About the error, it seems that your "PWM.vi" is copied from a LabVIEW example.This is an example for direct run and you can't call it in your main VI like this. It contains a initializing part (before the while loop) and a finalizing part (after the while loop). When calling this VI in the loop of your main VI, it will do initializing and finalizing work again and again...

You need to merge this example to your main VI. Only the part inside the loop (signal output) can be called in the loop of your main VI, and the initializing and finalizing work must be done outside the loop.

Xuesong Liu

0 Kudos
Message 5 of 5
(3,369 Views)