Human-Robot interface using EMG Sensor
Updated: Jun 29, 2020
WallySci's EMG sensor is used to capture the electrical activity of skeletal muscles via three electrodes. The captured signals are filtered and amplified which is then presented in the form of Analog Output. An EMG sensor can be used for prototyping devices which function on muscle signal, e.g, prosthetic arm or leg, and physiotherapy devices.
Disclaimer: Not for clinical use. Only for educational purposes
What is Electromyography (EMG)?
Movement of various body parts is caused due to contraction of “Skeletal muscles” connected to the bones. The skeletal muscles come under the voluntary control of the somatic nervous system. When you decide to move a muscle, your brain (or spinal cord) activates a motor neuron that is connected to that group of skeletal muscle fibers via a neuromuscular junction (synapse). Once a motor neuron is activated, electrical impulses (also known as action potentials) travel along the motor neurons to each neuromuscular junction (synapse). This action potential stimulates the muscle cell causing the contraction of the muscle, thereby moving the bone attached to it. The following figure shows the basic anatomy of skeletal muscle.
Basic anatomy of skeletal muscle
Electromyography (EMG) is a technique to capture and analyze electrical signals of the muscle by using electrodes. To measure the electrical activity of a muscle group, 2 electrodes (separated by an approx 2" distance) are placed on the surface of the skin near the muscle group. A third electrode (referred to as a reference electrode) is placed on the surface of the skin close to a bone, E.g., elbow. The sensor measures the difference in potential between two electrodes w.r.t. the reference electrode. This signal is amplified and filtered at multiple stages before it is sent to the DCPU module. This signals can further be analyzed for interpreting the muscle activity. Many applications can be built utilizing this signal.
One of the applications of EMG signals is in controlling prosthetics. By accurately measuring these signals at the right position on the body can enable an amputee to control a prosthetic limb .
In this experiment, we will learn how to capture the muscle activation signals of wrist movement, process it, and actuate an Origami based griper.
WallySci E3K DCPU
WallySci E3K EMG Sensor
2x Thick A4 sheets
Connections between DCPU, EMG Sensor and Servo motor
The first step is to capture the EMG signals. This will be achieved by connecting the EMG sensor with the DCPU which have 6 Analog input channels. The reference electrode will be placed at the back of the palm ( or somewhere close to the bone with least muscle activity). The other two electrodes will be placed just above the flexor carpi radialis muscle in order to capture the wrist movements. (See download section for the codes)
Flexor carpi radialis muscle on left forearm (credit: Wikipedia.com)
Sample EMG Data as seen on Arduino IDE Serial Monitor
The next step is to send the Arduino data to the Python program running on a computer and filter the data. The following images show the various stages of filtering done in Python.
You will require matplotlib and Pyserial Library. Install them by executing following command in Terminal > pip install matplotlib > pip install pyserial
1. Scaled EMG data based on the Datasheet and visualized in Python using matplotlib
2. Rectified data
3. Applied moving average filter with 25 window size
4. Binarization of the signal based on a threshold value
5. Complete waveform
The next step is to send the binarized data back to DCPU in order to actuate the gripper
Once the signals are received by the DCPU, it can command the servo motor to rotate thereby moving the Kirigami based gripper.
Kirigami based gripper
Codes will be added soon
Johannes, M.S., Bigelow, J.D., Burck, J.M., Harshbarger, S.D., Kozlowski, M.V., and Van Doren, T., 2011. An overview of the developmental process for the modular prosthetic limb.Johns Hopkins APL Technical Digest,30(3), pp.207-216.