Baselight

Classify Gestures By Reading Muscle Activity.

a recording of human hand muscle activity producing four different hand gestures

@kaggle.kyr7plus_emg_4

Loading...
Loading...

About this Dataset

Classify Gestures By Reading Muscle Activity.

Context

My friends and I are creating an open source prosthetic control system which would enable prosthetic devices to have multiple degrees of freedom. https://github.com/cyber-punk-me

VIDEO

The system is built of several components. It connects a muscle activity (EMG, Electromyography) sensor to a user Android/Android Things App. The app collects data, then a server builds a Tensorflow model specifically for this user. After that the model can be downloaded and executed on the device to control motors or other appendages.

This dataset can be used to map user residual muscle gestures to certain actions of a prosthetic such as open/close hand or rotate wrist.

For a reference please watch a video on this topic : Living with a mind-controlled robot arm

Content

Four classes of motion were written from MYO armband with the help of our app https://github.com/cyber-punk-me/nukleos.
The MYO armband has 8 sensors placed on skin surface, each measures electrical activity produced by muscles beneath.

Each dataset line has 8 consecutive readings of all 8 sensors. so 64 columns of EMG data. The last column is a resulting gesture that was made while recording the data (classes 0-3)
So each line has the following structure:

[8sensors][8sensors][8sensors][8sensors][8sensors][8sensors][8sensors][8sensors][GESTURE_CLASS]

Data was recorded at 200 Hz, which means that each line is 8*(1/200) seconds = 40ms of record time.

A classifier given 64 numbers would predict a gesture class (0-3).
Gesture classes were : rock - 0, scissors - 1, paper - 2, ok - 3. Rock, paper, scissors gestures are like in the game with the same name, and OK sign is index finger touching the thumb and the rest of the fingers spread. Gestures were selected pretty much randomly.

Each gesture was recorded 6 times for 20 seconds. Each time recording started with the gesture being already prepared and held. Recording stopped while the gesture was still being held. In total there is 120 seconds of each gesture being held in fixed position. All of them recorded from the same right forearm in a short timespan. Every recording of a certain gesture class was concatenated into a .csv file with a corresponding name (0-3).

Inspiration

Be one of the real cyber punks inventing electronic appendages. Let's help people who really need it. There's a lot of work and cool stuff ahead =)

Tables

N 0

@kaggle.kyr7plus_emg_4.n_0
  • 245.87 KB
  • 2909 rows
  • 65 columns
Loading...

CREATE TABLE n_0 (
  "n_26_0" DOUBLE,
  "n_4_0" DOUBLE,
  "n_5_0" DOUBLE,
  "n_8_0" DOUBLE,
  "n__1_0" DOUBLE,
  "n__13_0" DOUBLE,
  "n__109_0" DOUBLE,
  "n__66_0" DOUBLE,
  "n__9_0" DOUBLE,
  "n_2_0" DOUBLE,
  "n_4_0_1" DOUBLE,
  "n_13_0" DOUBLE,
  "n__18_0" DOUBLE,
  "n__30_0" DOUBLE,
  "n__119_0" DOUBLE,
  "n__45_0" DOUBLE,
  "n_17_0" DOUBLE,
  "n_6_0" DOUBLE,
  "n__1_0_1" DOUBLE,
  "n__9_0_1" DOUBLE,
  "n_27_0" DOUBLE,
  "n_20_0" DOUBLE,
  "n_91_0" DOUBLE,
  "n_71_0" DOUBLE,
  "n__26_0" DOUBLE,
  "n__1_0_2" DOUBLE,
  "n_0_0" DOUBLE,
  "n_1_0" DOUBLE,
  "n_13_0_1" DOUBLE,
  "n_20_0_1" DOUBLE,
  "n__62_0" DOUBLE,
  "n__19_0" DOUBLE,
  "n_29_0" DOUBLE,
  "n_2_0_1" DOUBLE,
  "n_2_0_2" DOUBLE,
  "n_0_0_1" DOUBLE,
  "n__23_0" DOUBLE,
  "n__1_0_3" DOUBLE,
  "n__80_0" DOUBLE,
  "n_4_0_2" DOUBLE,
  "n__7_0" DOUBLE,
  "n__6_0" DOUBLE,
  "n__12_0" DOUBLE,
  "n__27_0" DOUBLE,
  "n__11_0" DOUBLE,
  "n__16_0" DOUBLE,
  "n__67_0" DOUBLE,
  "n__8_0" DOUBLE,
  "n__27_0_1" DOUBLE,
  "n_1_0_1" DOUBLE,
  "n_1_0_2" DOUBLE,
  "n_13_0_2" DOUBLE,
  "n__8_0_1" DOUBLE,
  "n__11_0_1" DOUBLE,
  "n_21_0" DOUBLE,
  "n__28_0" DOUBLE,
  "n_61_0" DOUBLE,
  "n_4_0_3" DOUBLE,
  "n_8_0_1" DOUBLE,
  "n_5_0_1" DOUBLE,
  "n_4_0_4" DOUBLE,
  "n__7_0_1" DOUBLE,
  "n__59_0" DOUBLE,
  "n_16_0" DOUBLE,
  "n_0" BIGINT
);

N 1

@kaggle.kyr7plus_emg_4.n_1
  • 210.97 KB
  • 2902 rows
  • 65 columns
Loading...

CREATE TABLE n_1 (
  "n__7_0" DOUBLE,
  "n__1_0" DOUBLE,
  "n__1_0_1" DOUBLE,
  "n_0_0" DOUBLE,
  "n__10_0" DOUBLE,
  "n__10_0_1" DOUBLE,
  "n__1_0_2" DOUBLE,
  "n_1_0" DOUBLE,
  "n__5_0" DOUBLE,
  "n__5_0_1" DOUBLE,
  "n__4_0" DOUBLE,
  "n__2_0" DOUBLE,
  "n__17_0" DOUBLE,
  "n__17_0_1" DOUBLE,
  "n__5_0_2" DOUBLE,
  "n__5_0_3" DOUBLE,
  "n_10_0" DOUBLE,
  "n_2_0" DOUBLE,
  "n__1_0_3" DOUBLE,
  "n__3_0" DOUBLE,
  "n_8_0" DOUBLE,
  "n_5_0" DOUBLE,
  "n_0_0_1" DOUBLE,
  "n__1_0_4" DOUBLE,
  "n__3_0_1" DOUBLE,
  "n__4_0_1" DOUBLE,
  "n__4_0_2" DOUBLE,
  "n__3_0_2" DOUBLE,
  "n_15_0" DOUBLE,
  "n_24_0" DOUBLE,
  "n__1_0_5" DOUBLE,
  "n__6_0" DOUBLE,
  "n__7_0_1" DOUBLE,
  "n__3_0_3" DOUBLE,
  "n__4_0_3" DOUBLE,
  "n__4_0_4" DOUBLE,
  "n_13_0" DOUBLE,
  "n_60_0" DOUBLE,
  "n_3_0" DOUBLE,
  "n_8_0_1" DOUBLE,
  "n__7_0_2" DOUBLE,
  "n_4_0" DOUBLE,
  "n_6_0" DOUBLE,
  "n_5_0_1" DOUBLE,
  "n__36_0" DOUBLE,
  "n__56_0" DOUBLE,
  "n__3_0_4" DOUBLE,
  "n__5_0_4" DOUBLE,
  "n__6_0_1" DOUBLE,
  "n_0_0_2" DOUBLE,
  "n_2_0_1" DOUBLE,
  "n_2_0_2" DOUBLE,
  "n__4_0_5" DOUBLE,
  "n__16_0" DOUBLE,
  "n_2_0_3" DOUBLE,
  "n_6_0_1" DOUBLE,
  "n__4_0_6" DOUBLE,
  "n__3_0_5" DOUBLE,
  "n__5_0_5" DOUBLE,
  "n__3_0_6" DOUBLE,
  "n_15_0_1" DOUBLE,
  "n_11_0" DOUBLE,
  "n__4_0_7" DOUBLE,
  "n__5_0_6" DOUBLE,
  "n_1" BIGINT
);

N 2

@kaggle.kyr7plus_emg_4.n_2
  • 234.08 KB
  • 2942 rows
  • 65 columns
Loading...

CREATE TABLE n_2 (
  "n_4_0" DOUBLE,
  "n_19_0" DOUBLE,
  "n__9_0" DOUBLE,
  "n__7_0" DOUBLE,
  "n__3_0" DOUBLE,
  "n__36_0" DOUBLE,
  "n__6_0" DOUBLE,
  "n__23_0" DOUBLE,
  "n_3_0" DOUBLE,
  "n__21_0" DOUBLE,
  "n__2_0" DOUBLE,
  "n__9_0_1" DOUBLE,
  "n_15_0" DOUBLE,
  "n__23_0_1" DOUBLE,
  "n__11_0" DOUBLE,
  "n__2_0_1" DOUBLE,
  "n_11_0" DOUBLE,
  "n_27_0" DOUBLE,
  "n__3_0_1" DOUBLE,
  "n__12_0" DOUBLE,
  "n__22_0" DOUBLE,
  "n__34_0" DOUBLE,
  "n__16_0" DOUBLE,
  "n__2_0_2" DOUBLE,
  "n__10_0" DOUBLE,
  "n__9_0_2" DOUBLE,
  "n_3_0_1" DOUBLE,
  "n_5_0" DOUBLE,
  "n_41_0" DOUBLE,
  "n__33_0" DOUBLE,
  "n_19_0_1" DOUBLE,
  "n_1_0" DOUBLE,
  "n_5_0_1" DOUBLE,
  "n_0_0" DOUBLE,
  "n__2_0_3" DOUBLE,
  "n__6_0_1" DOUBLE,
  "n__12_0_1" DOUBLE,
  "n_63_0" DOUBLE,
  "n__7_0_1" DOUBLE,
  "n__3_0_2" DOUBLE,
  "n__11_0_1" DOUBLE,
  "n__15_0" DOUBLE,
  "n_4_0_1" DOUBLE,
  "n_12_0" DOUBLE,
  "n_42_0" DOUBLE,
  "n_12_0_1" DOUBLE,
  "n__14_0" DOUBLE,
  "n__20_0" DOUBLE,
  "n_1_0_1" DOUBLE,
  "n_29_0" DOUBLE,
  "n__2_0_4" DOUBLE,
  "n__7_0_2" DOUBLE,
  "n__24_0" DOUBLE,
  "n__22_0_1" DOUBLE,
  "n__8_0" DOUBLE,
  "n_9_0" DOUBLE,
  "n__14_0_1" DOUBLE,
  "n__2_0_5" DOUBLE,
  "n__3_0_3" DOUBLE,
  "n__4_0" DOUBLE,
  "n__21_0_1" DOUBLE,
  "n_7_0" DOUBLE,
  "n__8_0_1" DOUBLE,
  "n__12_0_2" DOUBLE,
  "n_2" BIGINT
);

N 3

@kaggle.kyr7plus_emg_4.n_3
  • 223.63 KB
  • 2921 rows
  • 65 columns
Loading...

CREATE TABLE n_3 (
  "n__22_0" DOUBLE,
  "n__9_0" DOUBLE,
  "n__6_0" DOUBLE,
  "n__1_0" DOUBLE,
  "n_21_0" DOUBLE,
  "n_26_0" DOUBLE,
  "n__2_0" DOUBLE,
  "n_5_0" DOUBLE,
  "n_5_0_1" DOUBLE,
  "n_0_0" DOUBLE,
  "n_1_0" DOUBLE,
  "n_2_0" DOUBLE,
  "n__20_0" DOUBLE,
  "n__51_0" DOUBLE,
  "n__8_0" DOUBLE,
  "n__9_0_1" DOUBLE,
  "n_0_0_1" DOUBLE,
  "n__3_0" DOUBLE,
  "n__6_0_1" DOUBLE,
  "n__8_0_1" DOUBLE,
  "n_12_0" DOUBLE,
  "n_7_0" DOUBLE,
  "n_1_0_1" DOUBLE,
  "n_1_0_2" DOUBLE,
  "n_6_0" DOUBLE,
  "n_2_0_1" DOUBLE,
  "n_1_0_3" DOUBLE,
  "n__3_0_1" DOUBLE,
  "n__17_0" DOUBLE,
  "n__15_0" DOUBLE,
  "n__1_0_1" DOUBLE,
  "n_9_0" DOUBLE,
  "n_15_0" DOUBLE,
  "n_5_0_2" DOUBLE,
  "n_1_0_4" DOUBLE,
  "n__1_0_2" DOUBLE,
  "n__4_0" DOUBLE,
  "n__37_0" DOUBLE,
  "n__9_0_2" DOUBLE,
  "n__7_0" DOUBLE,
  "n_4_0" DOUBLE,
  "n__6_0_2" DOUBLE,
  "n_0_0_2" DOUBLE,
  "n_2_0_2" DOUBLE,
  "n__3_0_2" DOUBLE,
  "n__2_0_1" DOUBLE,
  "n__4_0_1" DOUBLE,
  "n__3_0_3" DOUBLE,
  "n__29_0" DOUBLE,
  "n_0_0_3" DOUBLE,
  "n_3_0" DOUBLE,
  "n_6_0_1" DOUBLE,
  "n_7_0_1" DOUBLE,
  "n_12_0_1" DOUBLE,
  "n_7_0_2" DOUBLE,
  "n__10_0" DOUBLE,
  "n__15_0_1" DOUBLE,
  "n__6_0_3" DOUBLE,
  "n__3_0_4" DOUBLE,
  "n_3_0_1" DOUBLE,
  "n_20_0" DOUBLE,
  "n_25_0" DOUBLE,
  "n_1_0_5" DOUBLE,
  "n_1_0_6" DOUBLE,
  "n_3" BIGINT
);

Share link

Anyone who has the link will be able to view this.