Emotiv EPOC Headset

Emotiv EPOC headset is a brain-computer interface based on electroencephalography (EEG) technology developed by Emotiv Systems company.

EPOC headset is able to report conscious thoughts, emotions, facial expressions and head rotation.
Electrodes Position



The device has 14 electrodes and two-axis gyro for measuring head rotation. Electrodes are situated and labeled according with the CMS/DRL configuraction [1][2].


Logger Systems

Our team developed two loggers systems for this device: one that is able to collect the affective information from the headset and other that collects the raw data coming from the 14 electrodes in the headset. It is recommended to use both in Windows platform (Windows XP is recommended). Both was developed in C++ using Emotiv SDK Developer Edition.

  • jEmotivLogger allows to record affective data (facial gestures and emotions).

  • jEEGLogger allows to record raw data from the 14 electrodes.

jEmotivLogger version 2.0

Sept 22th, 2011


This version is a console application for Windows. It reads the data from the headset and generates a csv file with the affective data (facial gestures and emotions).
Installation

  1. Download/Get the application.
  2. Unzip the file, this will create a folder called jemotivlogger.
  3. And you are done! with the installation.


Running jEmotivLogger

  1. Open a Console window.
  2. Change to the folder jemotivlogger.



  3. Type in jemotivlogger.exe <output_file_name>. Where output_file name is the name of the file where all the data would be stored. Notice that this file would be automatically generated on the jemotiveLogger folder.



  4. The system would be loaded and it shows two options:

    • Press “1” to start and connect with the EmoEngine, which means getting the data from the headset.
    • Press “2” to connect to the EmoComposer, which means getting the data from a simulator.



  5. Press 1, to get the data from the headset.

  6. You will see the word Running, meaning the logger is up and running.



  7. Once you want to stop recording data, Press any key.
The output file from jEmotivLogger

The output file is a CSV file, so it can be read as a plain-text file or using some spreadsheet application such as Excel. The file contains the following columns:

Field Description Values
Timestamp It is the timestamp (date and time) of the computer running the system. It could be used to synchronize the data with other inputs. The value is a combination of the date and time on the computer, with the following format "yymmddhhmmssSSS" (y - year, m - month, d - day, h - hour, m - minutes, s - seconds, S - milliseconds).
UserID Identifies the user. An integer value.
Wireless Signal Status Shows the strength of the signal. The value is from 0 to 4, being 4 the best one.
Blink Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Wink Left Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Wink Rigth Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Look Left Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Look Rigth Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Raise Brow Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Furrow Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Smile Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Clench Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Smirk Left Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Smirk Rigth Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Laugh Part of the expressive states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Short Term Excitement Part of the affective states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Long Term Excitement Part of the affective states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Engagement/Boredom Part of the affective states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Meditation Part of the affective states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.
Frustration Part of the affective states Values between 0 and 1, being 1 the value that represents the highest power/probability for this emotion.


Time Rates.

To generate this estimates we use data coming from our studies, having files with around 15k entries.

The information generated for this sensor is variable and it is about one value every 160 milliseconds, in other words 6 values per second.

  • Minimum time to get a reading from the sensor: 1 ms.
  • Maximum time to get a reading from the sensor: 960 ms.
  • Average time to get a reading from the sensor: 168 ms.
  • Mode time go get a reading from the sensor: 125 ms.


jEEGLogger version 2.0

Sept 22th, 2011


This version is a console application for Windows. It reads the data from the headset and generates a csv file with the raw data from the 14 electrodes of the headset.
Installation

  1. Download/Get the application.
  2. Unzip the file, this will create a folder called jEEGLogger.
  3. And you are done! with the installation.


Running jEEGLogger

  1. Open a Console window.
  2. Change to the folder jEEGLogger.



  3. Type in jEEGLogger.exe <output_file_name>. Where output_file name is the name of the file where all the data would be stored. Notice that this file would be automatically generated on the jEEGLogger folder.



  4. The system would be loaded and it shows two options:

    • Press “1” to start and connect with the EmoEngine, which means getting the data from the headset.
    • Press “2” to connect to the EmoComposer, which means getting the data from a simulator.



  5. Press 1, to get the data from the headset.

  6. You will see the word Running, meaning the logger is up and running.



  7. Once you want to stop recording the data just Press any key.
The output file from jEEGLogger

The output file is a CSV file, so it can be read as a plain-text file or using some spreadsheet application such as Excel. The file contains the following columns:

Field Description Values
Timestamp It is the timestamp (date and time) of the computer running the system. It could be used to synchronize the data with other inputs. The value is a combination of the date and time on the computer, with the following format "yymmddhhmmssSSS" (y - year, m - month, d - day, h - hour, m - minutes, s - seconds, S - milliseconds).
AF3, F7, F3, FC5, T7, P7, O1, O2, P8, T8, FC6, F4, F8, AF4. Raw data coming from each of the 14 sensors/channels. The name of this fields where defined according with the CMS/DRL configuration [1][2]. These values are in unsigned INT form. DC level is offset at around 4000 points, one point is one microvolt, or keep a running average and subtract it off the data to get the actual level as measured [3]. For more details regarding the position of each sensor please see the picture in the section above. Values from 4000 and higher.
GYROX Information about how the head accelerates when leaning according with X axis. Values between XXXX and YYYY.
GYROY Information about how the head accelerates when leaning according with Y axis. Values between XXXX and YYYY.


Time Rates.

To generate this estimates we use data coming from our studies, having files with around 300k entries.

The information generated for this sensor is about one value every 7 milliseconds, in other words 128 values per second.
References
[1] Sharbrough F, Chatrian G-E, Lesser RP, Lüders H, Nuwer M, Picton TW. American Electroencephalographic Society Guidelines for Standard Electrode Position Nomenclature. J. Clin. Neurophysiol 8: 200-2.
[2] 13 Electroencephalography. Retrieved November 14th, 2010, from Electric and Magnetic Measurement of the Electric Activity of Neural Tissue: http://www.bem.fi/book/13/13.htm
[3] Forum 15 - topic 839. Retrieved November 14th, 2010, from Emotiv Main Forum - Emotiv SDK: http://www.emotivsystems.com/forum/forum15/topic839/
Other References
[1] Javier Gonzalez-Sanchez, Maria Elena Chavez-Echeagaray, Robert Atkinson, Winslow Burleson, "ABE: An Agent-Based Software Architecture for a Multimodal Emotion Recognition Framework," wicsa, pp.187-193, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture, 2011.
[2] Javier Gonzalez-Sanchez, Robert M. Christopherson, Maria Elena Chavez-Echeagaray, David C. Gibson, Robert Atkinson, Winslow Burleson, "How to Do Multimodal Detection of Affective States?," icalt, pp.654-655, 2011 IEEE 11th International Conference on Advanced Learning Technologies, 2011.