This project is awarded 1st Rank Price in these competitions.

The main purpose of this project is processing EEG signals and classifying them for different cognitive actions. I started this project as a final year project of Electronic Enginnering under advisory of Associate. Prof. Müştak Erhan Yalçın.

In this project I started acquiring data form Emotiv Epoc. We use SDK for first demos such as:

  • Mouse Emulator: Uses gyro to control mouse and cognitive or facial expression for mouse buttons.
  • Lego NXT Robot Control: I used Emotiv's SDK and AForge.NET Library
  • Communication Layer from .NET platform to MATLAB

I am working on processing live EEG data, feature selection and classification of EEG signals for different cognitive actions. There are several methods for classifying them I tried different features and methods. SVM (Support Vector Machines) is one of the method that I used for classification.



Brief Information About Emotiv Epoc

Emotiv Epoc is neuro-signal acquisition and processing wireless neuroheadset. It uses a set of sensors to tune into electric signals produced by the brain to detect thoughts, feelings and facial expressions and connects wirelessly to computer. My Advisor supplied a Research Edition of Emotiv, so I can use raw data and process it under different platforms (Matlab, .NET etc.).

SDK also includes different suites to detect different kind of EEG signals. It also gives support for saving data and play it later. I used this saved data(.edf) to work on EEGLAB.

Also it can be used to train on Control Panel and save user profile for trained action. Cognitive training takes some time for being efficient but detection of facial expression works fine. It uses to detect facial expression from muscular signals.

The Research Edition SDK includes a research headset: a 14 channel (plus CMS/DRL references, P3/P4 locations). Channel names based on the International 10-20 locations are: AF3, F7, F3, FC5, T7, P7, O1, O2, P8, T8, FC6, F4, F8, AF4. Other spesifications are liested below.


EEG (Electroencephalography)

Mouse Emulator with Gyro and Cognitive Action

Mouse emolator is the my first project using Emotiv SDKs. I tried two different method. First one is not efficient because of the resolution of the gyro sensors and screen is not equal. Each 1 degree of gyro correspond 10px in the screen so it has to be interpolated. But using replacement is also causes error because of the integration of acceleration.

I experienced this kind of problem before when I tried to make HMI using Image processing. In this case the problem sampling rates and difference between 600x400 image and my screen solution. This case also needed to interpolation of the values.

Second method that I used is working Gyro's acceleration directly to control mouse by changing the time. This method worked properly and mouse glide on the screen continuously. Windows dll is used to change mouse coordinates and also I wrote an Mouse Hook Class for these kind of projects.


NXT Robot Control

I used Emotiv to control a NXT robot. It is an sample project to show that if I can control Robot, I can also control any other complex devices. Because programmaticaly there is no difference between them.

In lego control I used 3 different cognitive action. I made training with recorded and I run my programme to control Lego Robot. My C# programme listen the Emotiv to handle cognitive actions and when it is detected signal to control robot is send.

This project can be used for controlling Wheelchair for disabled people. Also It can be used in industrial to moving dangerious materials form one place to another.

EEG Robot Control from ordinaryus on Vimeo.


EEGLAB


Recorded FFT Plotter

Frequency domain is important for determining features and dominant channel for classification of one cognitive action . So I implemented a FFT Plotter for monitoring Channels FFT Change. I wrote the MATLAB Code below, which takes 3 parametres. First two parametre is used for different EEG Data that I want to compare and last parametre is FFT Window Lenght. It should be power of two, otherwise it took longer to calculate.

EEG FFT Plotter

It is easy to add data to Matlab via .csv files or EEGLAB's Edf file importer. I used 16 channel but only 14 of them is real EEG data acquired with Emotiv Headset. Channel that we can use shown in the code. I am only interested in Channels between 3-16.



Lab Presentation 12 April 2010


BSc Thesis

Graduate Presentation