implementation av ett interface till emotiv epoc...emotiv epoc headset. the result is meant to be a...

47
Implementation av ett interface till Emotiv Epoc Nicklas Hansson 28 september 2011 Examensarbete f¨ or kandidatexamen i datavetenskap, 15 h¨ ogskolepo¨ ang Handledare p˚ a CS-UmU: Daniel Sj¨ olie Examinator: Pedher Johansson Ume ˚ a Universitet Institutionen f¨ or datavetenskap 901 87 UME ˚ A SVERIGE

Upload: others

Post on 11-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Implementation av ett interfacetill Emotiv Epoc

Nicklas Hansson

28 september 2011

Examensarbete for kandidatexamen i datavetenskap, 15 hogskolepoang

Handledare pa CS-UmU: Daniel SjolieExaminator: Pedher Johansson

Umea UniversitetInstitutionen for datavetenskap

901 87 UMEASVERIGE

Page 2: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history
Page 3: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Abstract

The field of Brain-computer interfaces (BCI) concerns linking together an external de-vice with the brain of a human or an animal. By doing this the conventional use of a mouseor keyboard can be circumvented, which can greatly benefit people with different types ofdiseases that cause paralysis or other loss of motor control, such as Amyotrophic lateralsclerosis (ALS). A BCI can also be used for cognitive training of either healthy or mentallyimpaired subjects to increase cognitive capabilities.

In this thesis an implementation of an interface is made against such a device, theEmotiv EPOC Headset. The result is meant to be a stable basis for further study using thedevice. An in-depth study of the history of EEG and its current use in clinical work andresearch in the topics of BCI as well as Human-computer interaction (HCI) is presented. It isalso examined how a user’s cognitive state can improve computer applications for cognitivetraining.

Related work concerning different BCI tools and other implementations of the EmotivEPOC is studied as well as future work. The actual implementation is described togetherwith possible limitations to the solution.

Page 4: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Sammanfattning

Faltet hjarna-dator interface, eng. Brain-computer interfaces, (BCI) handlar om attkoppla samman en extern utrustning med hjarnan av ett djur eller en manniska. Genomatt gora detta kan man kringga den konventionella anvandningen av exempelvis mus ellertangentbord, vilket kan gynna personer med olika typer av handikapp och sjukdomar somorsakar forlamning eller annan nedsattning av muskelkontroll, sasom Amyotrofisk lateralsk-leros (ALS). En BCI kan aven anvandas for kognitiv traning av antingen friska eller mentalthandikappade personer for att oka dennes kognitiva formaga.

I det har examensarbetet implementeras ett interface mot en sadan utrustning, Emo-tiv EPOC Headset. Resultatet ar menat att vara en stabil grund for fortsatta studier meddenna utrustning. En fordjupningsstudie gors over historiken bakom EEG och dess nuva-rande anvandning i kliniskt arbete samt inom forskningsomradena BCI och MDI (Manniska-datorinteraktion, eng. Human-computer interaction, HCI). Det undersoks aven hur en anvandareskognitiva tillstand kan anvandas for att forbattra datorapplikationer for kognitiv traning.

Relaterade arbeten kring olika BCI-verktyg och andra implementationer av EmotivEPOC studeras samt framtida arbeten. Den faktiska implementationen beskrivs tillsammansmed eventuella begransningar pa losningen.

Page 5: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

ii

Page 6: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Innehall

1 Introduktion 1

1.1 Relaterat arbete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Emotiv Epoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.2 Ramverk for Brain-computer Interfaces . . . . . . . . . . . . . . . . . 2

1.1.2.1 BCI2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.2.2 OpenViBE . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Problembeskrivning 7

3 Fordjupningsstudie 9

3.1 Historiken bakom EEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2 Vad ar EEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2.1 Signaltyper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2.1.1 Delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2.1.2 Theta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2.1.3 Alpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2.1.4 Mu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.1.5 Beta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.1.6 Gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.2 P300 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.3 EEG elektrodpositioner . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3 Vad anvands EEG till . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3.1 Kliniskt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3.2 Forskning och utveckling . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4 Hur anpassad interaktion kan forbattra datorapplikationer for kognitiv traning 18

4 Resultat 21

4.1 Utforande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.1.1 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1.2 Klient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1.3 Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

iii

Page 7: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

iv INNEHALL

4.1.3.1 EEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1.3.2 Expressiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.1.3.3 Ovrigt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5 Slutsatser 27

5.1 Utforande av mal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.2 Losningens begransningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.3 Framtida arbete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6 Tacksamhetsbetygelser 31

Referenser 33

A Anvandarhandledning 37

A.1 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

A.2 Klient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Page 8: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Figurer

1.1 Startfonstret som visas vid start av BCI2000 . . . . . . . . . . . . . . . . . . 4

1.2 EEG representeras i BCI2000 fran en signalkalla . . . . . . . . . . . . . . . . 4

1.3 Ett scenario konstrueras i OpenViBE . . . . . . . . . . . . . . . . . . . . . . 5

3.1 Den forsta manskliga EEG inspelningen av Hans Berger 1924 . . . . . . . . . 9

3.2 Epileptiska topp- och vag-utslapp overvakas med EEG . . . . . . . . . . . . . 10

3.3 Deltavagor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4 Thetavagor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.5 Alphavagor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.6 Muvagor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.7 Betavagor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.8 Gammavagor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.9 Elektrodpositioner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.1 Interaktion mellan de olika komponenterna i systemet. . . . . . . . . . . . . . 22

v

Page 9: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

vi FIGURER

Page 10: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Kapitel 1

Introduktion

Arbetet syftar till att skapa en koppling mellan ett headset (Emotiv Epoc) [42] som avlaserElektroencefalografi-signaler (EEG) fran hjarnan till ett befintligt spel. Losningen som kon-strueras skall kunna paverka applikationen pa nagot vis, dar minimum ar att nagon anpass-ning av svarighetsgrad genom att byta niva i spelet och att kunna forandra interfacet sasom exempelvis font storleken pa text som visas. Arbetet skall producera en losning somenkelt kan byggas vidare pa och lagga till mer funktionalitet till.

I en fordjupningsstudie tas begrepp sasom brain-computer interface (BCI) och human-computer interaction (HCI) upp, samt hur dessa anvands i samband med EEG och huraktuell forskning i dessa omraden fortskrider. Det ges aven en oversikt av EEG; hur dettaanvands inom forskning och i praktiken.

1.1 Relaterat arbete

1.1.1 Emotiv Epoc

Det finns flera arbeten som ar relaterade till den implementation som genomforts for dethar examensarbetet och finns beskrivna nedan. Det som ar gemensamt for dessa arbeten aratt de ar implementationer till Emotiv Epoc pa nagot vis.

– EmotivSharp [48] ar ett open source projekt under utveckling som implementeratEmotiv SDK i C# och har ett enkelt GUI for att visualisera vissa matvarden som fasfran headsetet. I paketet finns aven nagra simpla spel som kan anvandas tillsammansmed Emotiv headsetet.

– Ett verktyg for att mata hjarnvagor i barn med cerebral pares (forkortat CP) [49] [50].

– Styra en robotarm som forflyttar en pingpongboll fran en plats till en annan [51].I den har implementationen ger Epoc headsetet knapptryckningar som utdata (ochanvandarens tankar som indata) som ar mappade till robotens forflyttning.

– Kontrollera en robot som ska soka sig genom en simpel labyrint [52].

– Kontrollera en fjarrkontroll till en TV [53].

1

Page 11: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

2 Kapitel 1. Introduktion

Det finns manga fler arbeten som involverar Emotiv Epoc headsetet, varav manga garatt finna via deras officiella forum (se ref [57]).

1.1.2 Ramverk for Brain-computer Interfaces

Det finns ett antal ramverk for att hantera EEG matvarden och implementera universellaBCI losningar, och nagra av dessa beskrivs nedan. De flesta BCI system anvander EEGsignaler fran en eller flera kanaler pa grund av dess portabilitet. Det finns flera krav pa ettramverk av denna typ: [1]

– Flexibelt. BCI ar ett standigt utvecklande omrade och ett ramverk maste kunna han-tera detta pa ett bra vis. Ramverket bor darfor erbjuda flexibilitet i utbyggnad avmetoder och omdefinitioner.

– Enkelt att anvanda. BCI forskare kommer fran manga olika falt sasom psykologer,interaktionsdesigner, signalhanteringsingenjorer, datavetare, etc. Alla dessa kommerinte ha samma baskunskaper och BCI ramverket bor darfor ha rigoros dokumentationover praxis, rimliga default varden, markera och forklara vanliga fel i anvandning samtgora vanliga uppgifter latta att utfora.

– Effektivitet. Vilka algoritmer som kan appliceras pa olika problem ar ofta begransatav den datorkraft som behovs och finns tillganglig. Det ar darfor viktigt att denberakningsmassiga effektiviteten i ramverket ar god. Pa samma satt ar det viktigt attdet ar enkelt att testa och utveckla nya metoder, da det kan ta manga iterationer attfaststalla en design.

– Robust. BCI forskning handlar manga ganger om att gora empiriska studier av engiven BCI design fran ett begransat set med matvarden och tester, vilket gor riskenfor slumpmassiga fel standigt narvarande. Pa grund av detta ar det mojligt att nu-varande designer inte korrekt modellerar och kompenserar for den stora skillnaden iicke-stationara EEG signaler, dvs. signaler vars (statistiska) egenskap forandras medtiden. Pa grund av begransad traning tenderar BCI system fungera bast i specifikaamnen och situationer som de var utvecklade i och kan visa sig icke-robust nar inspel-ningssituationen forandras. Darmed reflekterar nastan alltid prestandan den specifikainspelningssituationen, men palitligheten hos BCI system maste vara viktigt for atthitta anvandningsomraden utanfor forskningssammanhang. Saledes bor ideala BCIramverk underlatta rutinmassiga insamlingar av stora mangder av traning och test-data.

Page 12: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

1.1. Relaterat arbete 3

1.1.2.1 BCI2000

BCI2000 ar ett allmannyttigt ramverk designat for BCI forskning [33]. Den kan ocksaanvandas for datainsamling, stimulipresentation och applikationer for att overvaka hjarnaktivitet.Sen det slapptes 2001 har BCI2000 haft stor inverkan pa BCI forskning runtom i varlden.Ar 2009 anvands BCI2000 av nara 500 forskningslaboratorier. Eftersom det ar gratis forforsknings- och utbildningsinstitutioner ar det manga som bidragit till projektet [1].

BCI2000 utvecklades primart for allmannyttig utveckling men kan aven anvandas for attstudera HCI. BCI2000 kan lagra och visa ljud och video med hog upplosning, samtidigt somhjarnvagor och anvandarens svar, sasom fran joystick, knapptryckningar, och ogonrorelserkontinuerligt spelas in och lagras i ett generellt format. Att kunna logga matvarden franall mojlig utrustning synkroniserat med stimuli utan att krava mycket programmering borvara anvandbart for manga BCI laboratorier [1].

BCI2000 ger en karna med vanliga BCI implementationer i ett standardiserat BCI-ramverk. BCI2000 kommer fullt med dokumenterade komponenter som visat sig robusta ien rad olika BCI arbeten. BCI2000 ar modulart och saledes ateranvands kod i olika modu-ler. Detta gor felsokning lattare och fel kan atgardas pa en plats istallet for flera. EftersomBCI2000 ar modulart och flexibelt ar det enkelt att kombinera med olika mjukvarukompo-nenter, samt forandring eller skapande av nya moduler [1].

Icke vinstdrivande foretag samt anvandare i forskning- och utbildningssyfte kan erhallaBCI2000 tillsammans med kallkoden. Den fardigkompilerade versionen kommer med enmangd moduler, fardiga att anvandas. Vissa moduler maste daremot kompileras manu-ellt [59], daribland modulen for Emotiv Epoc. Detta gor att det kravs viss erfarenhet avhur program kompileras direkt fran programkod. Vidare fas kallkoden till de moduler sombehover kompileras genom ett versionshanteringssystem som inte alltid har en fungerandeversion av programmet. Detta uppdagades efter att en version av Emotiv Epoc modulenladdades ner, kompilerades men inte fungerade. En tidigare version anvandes istallet som vi-sade sig fungera. Under samma handelseforlopp forsoktes hela programmet kompileras menkompileringsfel upptacktes. Ett inlagg gjordes pa BCI2000 forumet dar det bekraftades attkallkoden inte fungerade och att en ny version lagts upp, vilken gick att kompilera.

BCI2000 kan spara resultat i ett generiskt filformat vilket gor att resultat kan granskasi efterhand. Det gar aven att skicka matvarden via TCP, vilket gor att matvarden kanbehandlas i BCI2000 for att sedan skickas vidare till ett annat program som tolkar dessa.Exempelvis kan BCI2000 anvandas for att lasa in matvarden, bearbeta dessa och skickavidare dem till ett program som anvands for att styra en robotarm eller annan utrustning.

Page 13: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

4 Kapitel 1. Introduktion

Nar man startar BCI2000 fas ett startfonster upp dar det gar att valja vilka modulersom ska anvandas. Se figur 1.1. Dar finns det moduler for signalkallor, signalhantering samtprogram. Program i det avseendet kan exempelvis vara att flytta en kula (sfar) i en 1D,2D eller 3D miljo sa kulan placeras inuti en kub. Det finns aven flera moduler placerade i“Other”, dessa ar moduler som BCI2000 inte kunde placera automatiskt i relevant sektionutan anvandaren far sjalv avgora var de passar in.

Figur 1.1: Startfonstret som visas vid start av BCI2000

Nar modulerna ar valda kan installningar goras, baserat pa vilka moduler som val-des och vilka installningar som kan goras i dessa. Manga moduler har stora mangder in-stallningsmojligheter och eftersom projektet ar open source kan ytterligare funktionalitetlaggas till om den saknas, forutsatt att tillracklig programmeringserfarenhet finns. Nar in-stallningarna ar gjorda sa satts dessa och programmet kan koras igang. I figur 1.2 syns hurEEG kan representeras i BCI2000.

Figur 1.2: EEG representeras i BCI2000 fran en signalkalla

Page 14: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

1.1. Relaterat arbete 5

1.1.2.2 OpenViBE

OpenViBE [60] ar ett BCI-ramverk utvecklad med oppen kallkod i C++ och ar darforgratis och utbyggnadsbar for utvecklare. OpenViBE ar byggt for att anvandaren ska kunnadesigna, testa och anvanda olika typer av BCI losningar. Det kan anvandas for att erhalla,filtrera, bearbeta, klassificera och visualisera hjarnvagor i realtid. Programmet riktar sig tilldels personer med erfarenhet av programmering, sasom programmerare, spelutvecklare, olikatyper av forskare, etc, men aven personer utan sadan erfarenhet sasom lakare. Erfarenhetav programmering behovs saledes inte.

I OpenViBE designar anvandaren olika scenarion i ett grafiskt granssnitt genom attkoppla samman funktioner. En lista med funktioner tillhandahalls som anvandaren kan tadel av och koppla samman pa det vis som onskas. OpenViBE ar i grunden ett bibliotekav C++ funktioner som kan integreras genom att anvanda moduler [60]. OpenViBE arkompatibelt med manga EEG och MEG utrustningar och kan visualisera dels 2D och 3Dbilder som representerar hjarnaktivitet i realtid. I figur 1.3 visas hur designern ser ut.

Figur 1.3: Ett scenario konstrueras i OpenViBE

OpenViBE erbjuder aven funktionalitet for att skriva och lasa fran filer sa resultat kananalyseras i efterhand. Filerna kan dels sparas i ett generiskt filformat, som GDF (GeneralData Format for biomedical signals) [39], eller som CSV (Comma-separated values). Om filerskapas med det generiska filformatet sa tycks varden serialiseras till en fil som det sedangar att lasa fran med openvibe. Det finns ingen dokumentation om hur detta gar till, ellerom det faktiskt ar en serialisering, men en snabb kontroll visar pa det. Om filen sparas somGDF eller CSV kan matvarden anvandas i andra program som kan lasa dessa filformat.

En funktion som tycks saknas ar att kunna skicka vidare matvarden via TCP eller UDP

Page 15: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

6 Kapitel 1. Introduktion

till ett tredje-parts program. Detta skulle kunna vara intressant for att skapa scenarioni OpenViBE for att utfora nagon signalhantering, filtrering och/eller liknande pa EEGsignalen, och sedan vidarebefordra denna till ett annat, separat program som presenterareller ytterligare manipulerar varden pa nagot vis. En programmerare kan dock utveckla enmodul for att gora detta.

En viktig funktionalitet som finns i OpenViBE ar VRPN (Virtual-Reality PeripheralNetwork) som ar en modul som skapar ett interface mellan program och den utrustning somanvands i ett virtual-reality system. Se ref [41] for mer info om detta.

Page 16: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Kapitel 2

Problembeskrivning

Arbetet ar uppdelat i tva delmal som beskrivs nedan.

Det forsta av dessa ar att kontrollera vilka signaler som det gar att fa fran headsetet,och hur dessa kan kopplas till olika kognitiva faktorer med betydelse for hur man interagerarmed en datorapplikation sa som t.ex. stress, upphetsning, frustration, osv. Det skall gorasen oversyn av EEG-signaler och relaterade kognitiva tillstand med hur dessa fungerar i detaktuella headsetet och hur de kan anvandas for att anpassa manniska-dator interaktion(MDI). Ett sarskilt fokus laggs pa hur sadan anpassning kan anvandas for att forbattradatorapplikationer for kognitiv traning genom att exempelvis anpassa svarighetsgraden.

Det andra ar att ga igenom headsetets application programming interface (API), sombeskriver hur headsetet kan anvandas rent programmeringstekniskt, for att ta reda pa hurden kan kommunicera med det givna spelet. Spelet ar konstruerat i programmeringsspraketPython [35], sa en modul konstrueras till Python for att lasa matvarden fran headsetet ochanvandas tillsammans med spelmotorn Panda3D [36] som spelet anvander. Matvarden franvarje kanal skall kunna lasas som radata fran varje kanal for sig samt fran var och en avde fordefinierade variablerna i headsetets software development kit (SDK). Denna modulanvands sedan for att implementera en dynamisk anpassning av interaktion och granssnitti spelet.

Arbetet kommer producera en implementation och fordjupningsstudie som uppfyllerkraven ovan. Implementationen kommer goras i .NET [34] och Python, se sektion 4.1 fordetaljer om detta. Dokumentation produceras med LATEX[54].

7

Page 17: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

8 Kapitel 2. Problembeskrivning

Page 18: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Kapitel 3

Fordjupningsstudie

3.1 Historiken bakom EEG

Thales fran Miletos ar den som blivit tillerkand for upptackten av statisk elektricitet skapadav att gnugga exempelvis palsar med siden [2]. Darmed blev friktion erkant som en generatorav fenomenet som fick sitt namn fran det Grekiska arbetet “elektron” som betyder barnsten.Efter den upptackten gjordes inget mer arbete pa mer an tva artusenden. Han levde omkring620-550 f.kr och ansag att vatten var ursprung till allting.

Det var 1929 som den Tyske forskaren Hans Berger gjorde en historisk upptackt medEEG [3]. Utan den upptackten skulle inte existerande diagnostik som anvands idag existera,sasom DT (Datortomografi, engelska CT for Computed Tomography), MRT (Magnetiskresonanstomografi, engelska MRI for Magnetic resonance imaging), etc, som anvands for attbland annat planera neurokirurgiska operationer. Den 6e juli 1924 gjorde Berger den forstaEEG inspelningen under en neurokirurgisk operation pa en 17-arig pojke som genomfordesav neurokirurgen Nikolai Guleke. Han rapporterade om amnet 1929 och anvande termernaalpha och beta vagor. Kort darefter beskrevs kurvans utseende av en Amerikansk grupp EEGpionjarer, aven om Berger ocksa hade upptackt dessa men avfardat dem som artefakter.

I figur 3.1 aterfinns den forsta EEG inspelningen gjord av Berger 1924.

Figur 3.1: Den forsta manskliga EEG inspelningen av Hans Berger 1924. Den ovre linjen arEEG och den undre ar en 10 Hz timingsignal.

9

Page 19: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

10 Kapitel 3. Fordjupningsstudie

3.2 Vad ar EEG

EEG ar ett satt att mata hjarnans elektriska funktion, aven kallat hjarnvagor. Det ar skill-naden i spanningen mellan tva punkter av hjarnan inspelat over tid, matt i µV (mikrovolt).Det finns tva satt att mata dessa varden, utanfor och innanfor kraniet. Matningar innanforkraniet gors genom att operera in elektroder pa specifika omraden. Utanfor kraniet brukarmatas genom att ett antal elektroder placeras pa harbotten [4]. Detta beskrivs i mer detalji sektion 3.2.3.

I figur 3.2 syns hur EEG kan se ut hos en patient med epilepsi.

Figur 3.2: Epileptiska topp- och vag-utslapp overvakas med EEG

Eftersom EEG signalen representerar spanningen mellan tva elektroder sa kan manmata dessa pa flera olika satt. Denna representation av EEG kanalerna kallas ett montage[31].

– Bipolar. Varje kanal representerar skillnaden mellan tva narliggande elektroder. Hela

Page 20: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

3.2. Vad ar EEG 11

montaget bestar av en serie av dessa kanaler. Exempelvis ar kanalen Fp1-F3 skillnadeni spanning mellan elektroderna Fp1 och F3 (se sektion 3.2.3 for mer om elektrodposi-tioner).

– Refererande. Varje kanal ar skillnaden mellan en elektrod och en sarskild referense-lektrod. Det finns ingen direkt standard for var referenselektroden sitter, men brukarplaceras vid A1, A2 eller vid oronen.

– Genomsnittlig referens. Alla elektroders matvarden summeras och genomsnittet beraknas.Detta varde anvands sedan som referens for alla kanaler.

3.2.1 Signaltyper

EEG brukar beskrivas med den rytmiska aktiviteten som delas upp i band baserat pa fre-kvens. Dessa frekvenser anvands som ett system for att namnge egenskaper. Exempelvis kanden rytmiska aktiviteten mellan 8-12 Hz beskrivas som “alpha”. Denna uppdelning ar gjordda vissa typer av rytmisk aktivitet i olika frekvenser visar sig vara distribuerad olika overskalpen eller ha olika biologiska egenskaper.

Det finns definierat ett stort antal frekvenser av olika forskare [26]. I vilka frekvensbandsom olika signaler ar uppdelade i ar ocksa olika fran en forskare till en annan. I den har rap-porten fokuseras det pa foljande frekvenser, som alla hittas i sektioner nedan: Delta, Theta,Alpha, Beta, Gamma och Mu. I varje separat sektion aterfinns en figur som visualiserar denrelevanta frekvensen under en sekunds tid. Skalpen ar indelad i olika regioner som refererasi sektionerna nedan. Se figur 3.9 och sektion 3.2.3 for positionerna av dessa.

3.2.1.1 Delta

Deltavagor ar definierade att ligga pa < 4 Hz av den da unge fysiologen W. Gray Walter1936 [12]. Han deltog i en neurokirurgisk operation pa en patient som opererade bort enelakartad tumor, och Walter placerade elektroder pa det paverkade omradet. Han speladein EEG signaler med hog spanning och lagre frekvens an vad som tidigare spelats in. Handopte dessa till deltavagor. Sedan dess har centralt lokaliserad deltaaktivitet visat sig vara enpalitlig indikator for lokaliserade sjukdomar i hjarnan. Deltavagor kan antingen forekommasom oklara rytmiska vagor i frontala delar av huvudet, eller i andra delar. Om delta har hogspanning implicerar det kraftig eller akut funktionsnedsattning. Lag spanning forekommerbland annat i patienter med hamnat medvetande.

Som regel sa aterfinns inte deltavagor hos en person under vaket tillstand, och dessforekomst implicerar cerebral funktionsrubbning [12]. Daremot ar det en viktig komponenti somn och kan aven forekomma hos aldre personer, sarskilt i narheten av temporalloben.Deltavagor syns aven hos nyfodda och yngre barn, samt tonaringar i bakhuvudet.

Experimentella studier har visat att deltabandet har relevans till vissa kognitiva faktorer[27]. Amplituden hos delta ar markant hogre under experiment med avvikande stimuli, vilketleder till slutsatsen att delta relaterar till signaldiagnostisering och beslutsfattning. Man haruppmarksammat att deltabandet framhavs vid stimuli av horseltroskeln vilket bekraftar attdeltasvar skulle ha ett samband med ovanstaende. Det finns aven resultat som visar pa attdelta ar en signifikant bearbetningssignal for sovande katter och den manskliga hjarnan.

Page 21: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

12 Kapitel 3. Fordjupningsstudie

Figur 3.3: Deltavagor

3.2.1.2 Theta

Thetafrekvensen ar definierad att ligga fran 4-7 Hz. Vanligtvis finns sma mangder thetafre-kvenser representerade hos en vaken vuxen manniska [12] [26] och inte som nagon organiseradthetarytm, dvs. att forekomsten kan observeras att vara spontan. Bade rytmen och frekven-sen har daremot en storre roll fran barndomen eller om personen ar nagot slo, vilket gor detviktigt att faststalla att subjektet ar helt vaket.

Experimentell data visar att thetaoscillationer har en grundlaggande funktion i kognitivbearbetning [27]. Theta ar en stabil komponent i P300-liknande signaler (se sektion 3.2.2for mer om detta). Handelserelaterade oscillationer i thetabandet forlangs och/eller har ettandra tidsfonster i ungefar 300 ms efter subjektet blivit utsatt for experiment med avvikandestimuli. Detta tolkas som att vara relaterat till selektiv uppmarksamhet.

Det har uppmarksammats att thetaaktivitet okar i relation till minnesbelastning undersarskilda aktiviteter som utfors bade verbalt och fysiskt [28]. Dessa aktiviteter (eng. n-back) involverar att objektet presenteras en rad med foremal och maste identifiera omdet nuvarande foremalet ar samma foremal som presenterades for n foremal sedan. Dettainvolverar simultan kodning, bevarande av foremalen i minnet och hamtning av information.

Figur 3.4: Thetavagor

3.2.1.3 Alpha

Alpharytmen ar definierad att ligga fran 8-13 Hz och uppstar under vaket tillstand, generelltmed hogre spanning over occipitalregionen [25]. Amplituden kan variera, men ligger oftastunder 50 µV hos vuxna. Alphavagor ar lattast att upptacka med ogonen stangda under av-slappning och relativt lag mental aktivitet och dampas eller blockeras av uppmarksamhet,sarskild visuell och mental anstrangning. Det har aven konstaterat att termen “alpharytm”enbart bor anvandas for rytmer som uppfyller alla kriterier som beskrivs ovan [26]. Muryt-mer, se sektion 3.2.1.4, kan ha samma frekvens, men har andra skillnader.

Page 22: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

3.2. Vad ar EEG 13

Det finns studier som visar pa att oscillation i alpha och theta banden reflekterar kog-nitiv prestanda, sarskilt minnesprestanda [12]. God prestanda ar framst relaterat till tvaEEG fenomen: (1) att amplituden i alpha langsamt okar samt i theta minskar och (2) enstor, snabb, handelsebaserad minskning i alpha men okning i theta, beroende pa typen avminneskrav. Man kan aven se att ovre alpha effektokningar sker fran tidig barndom tillmogen alder, och theta minskar, men det motsatta ar sant for den senare delen av livet.Alpha effekten okar och theta minskar hos personer med olika neurologiska sjukdomar.

Figur 3.5: Alphavagor

3.2.1.4 Mu

Murytmen aterfinns i de centrala delarna (kring C3/C5, se figur 3.9) och kan vara ensi-dig eller omsesidig [8]; om omsesidig sa kan den vara synkron eller asynkron. Dess namnharstammar fran vagformen - den har skarpa konturer och liknar den grekiska bokstavenmed samma namn. Den ar definierad att ligga fran 7-11 Hz. Murytmen ar ibland mer tydligunder somnighet och under inspelning med oppna ogon. Murytmen anses vara relaterad tillbetaaktivitet, mojligtvis som en underton. Mu dampas med rorelser fran ovre kroppen, tilloch med nar en sadan rorelse forestalls. Inom BCI kan murytmen anvandas for att styraen muspekare pa en datorskarm i en eller tva dimensioner [19]. Anvandare kan med > 95%sakerhet svara ratt pa ja/nej fragor efter 40-minuters sessioner 2-3 ganger i veckan i 2-3veckor. Vanligtvis anvander sig personen av nagon form av mental traning med imaginararorelser (vanligtvis kallat motor imagery), dvs. att inbilla sig handrorelser eller liknande, foratt flytta muspekaren.

Figur 3.6: Muvagor

3.2.1.5 Beta

Beta ar definierat till att ligga over 13 Hz [26] och var den andra vagen som beskrevs avBerger [8]. Beta syns hos de flesta vakna vuxna personer och avsaknaden av den kan vara

Page 23: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

14 Kapitel 3. Fordjupningsstudie

abnormalt beroende pa vilka andra egenskaper EEGt har. Man har noterat att beta delsokar av kokain [6] samt att beta okar under abstinens [7].

Figur 3.7: Betavagor

3.2.1.6 Gamma

Gamma ar definierat att ligga over 30 Hz utan ovre grans [26]. Det har visats att gamma-svangningar kan relateras till manga olika kognitiva processer, men det ar svart att hittanagon direkt koppling mellan dessa och en funktion [22]. Gamma har aven gatt att observeradar en person minns objekt, ljud eller kansel [23].

Figur 3.8: Gammavagor

3.2.2 P300

P300 ar en handelserelaterad potential (eng. Event-related Potential, ERP) vilket innebaren andring i den elektriska potential som EEG registrerar direkt relaterade till en handelse.P300 har fatt sitt namn fran att det gors en positiv matning 300 ms efter handelsen. P300kan anvandas pa flera olika vis och en implementation av P300-speller ar en matris somar 6 x 6 stor och visar bokstaverna i det engelska alfabetet foljt av siffrorna 0-9 i ordning.Personen som overvakas far i uppgift att fokusera pa en av dessa 36 celler. Sedan lysesslumpmassigt valda rader och kolumner upp, dar varje rad och kolumn kan framhavas engang (vilket ger 12 framhavningar). Nar raden och kolumnen som subjektet fokuserar palyses upp kan man se P300 potentialen [29].

Det ar viktigt att ta hansyn till antalet val som finns i studien man applicerar P300 pa.Ovan finns det 36 olika val som personen kan gora, sa sannolikheten att korrekt val gors ar1/36. Om man skulle ha ett binart val, tex JA eller NEJ, sa blir sannolikheten 0.5, vilketskulle minimera skillnaden i P300 mellan ratt och fel svar [29]. Man bor darfor ta hansyntill hur manga val som finns i implementationen sa P300 potentialen kan uppmatas. Studier

Page 24: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

3.2. Vad ar EEG 15

har visat att det ar viktigt att ta hansyn till ett flertal parametrar nar en BCI med P300optimeras for en enskild anvandare [30].

Page 25: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

16 Kapitel 3. Fordjupningsstudie

3.2.3 EEG elektrodpositioner

I figur 3.9 aterfinns hur elektroder placeras enligt 10-20 standarden [24]. Systemet ar skapatfor att enkelt tillata fler elektroder, och underlatta placeringen och namngivning av dessa.Nar elektroderna placerades ut i systemet namngavs dessa med utbyggnad i atanke, saelektroderna namngavs pa ett sadant satt att fler elektroder kunde placeras mellan tvastycken utan att andra numreringen pa dessa.

Alla elektroder under 10-20 systemet namnges med bokstaver som betecknar det ana-tomiska omradet [58]. Dessa ar som foljer:

– F - Pannlob

– T - Tinninglob

– C - Centrallob

– P - Parietallob

– O - Occipitallob

Standardnumreringssystemet i 10-20 placerar udda numrerade elektroder pa vanstra de-len av huvudet, och jamnt numrerade pa hogra delen [24]. Aven om 10-20 systemet skapadesfor 21 elektroder sa finns utokningar for 75 elektroder. I figur 3.9 aterfinns elektrodpositionerfor 70 elektroder i 10-20 systemet.

Figur 3.9: Elektrodpositioner

Page 26: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

3.3. Vad anvands EEG till 17

3.3 Vad anvands EEG till

EEG anvands inom bade kliniskt arbete samt forskning inom flera omraden, bland annatBCI. Nedan beskrivs dessa separat, men det bor noteras att de manga ganger genomforstillsammans, exempelvis att en studie genomfors i samrad med en patient som far nagonslags behandling.

3.3.1 Kliniskt

I kliniska syften anvands ofta 10-20 elektroder som fasts pa harbotten pa patienten [5]. Detanvands bland annat for att:

– Diagnostisera epilepsi

– Diagnostisera demens

– Tappande av medvetandet, och chansen till forbattring efter sadan

– Avgora om en person i koma ar hjarndod

– Studera somnproblem

– Overvaka hjarnaktivitet medan en person far allman bedovning under hjarnoperation

– Avgora om en person har fysiska problem, sasom problem i hjarnan, ryggmargen ellernervsystemet, eller mentala problem [44]

EEG kan goras nar patienten befinner sig i ett av tre tillstand - vaken, under somneller under en langre tid. Vid vaken-EEG sa blundar patienten storre delen av tiden, menkan aven bli ombedd att titta upp under nagra sekunder. Ofta kan patienten fa avslutaundersokningen med att andas haftigt i nagra minuter, foljt av att titta pa en blinkandelampa i nagra minuter. Om EEG gors under somn fungerar det pa samma vis, men patientenfar istallet sova i en till tva timmar. Under en langtids-EEG far patienten en mossa somtacker elektroderna, som gar till en midjevaska i vilken en apparat tar emot signalerna. Varjedygn far patienten aka till avdelningen for att fora over matvarden till neurofysiologen [45].

EEG anvands aven for att avgora hur man kan kanna igen olika sjukdomar beroendepa hur EEGt ser ut. Genom att gora detta kan man lattare diagnostisera sjukdomar sasomAlzheimers, Crautzfeldt-Jakobs sjukdom, Picks sjukdom, etc., men aven manga andra sjuk-domar [8].

Aven for epilepsidiagnostik anvands EEG, bland annat for att avgora om man borfortsatta med en antiepileptisk medicin i krampfria patienter [8].

Page 27: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

18 Kapitel 3. Fordjupningsstudie

3.3.2 Forskning och utveckling

EEG anvands inom flera omraden inom forskning for att fastsalla diagnoser och liknande.Forskningsomraden inkluderar, men ar inte begransat till:

– Depression [9]

– Analysera somnmonster i laboratorisk miljo [10]

– Hur EEG paverkas under somn i relation till ogonrorelser, kropprorelser och drommar[11]

– Hur alpha och theta svangningar reflekterar kognitiv- och minnesprestation [14]

Inom HCI anvands tillsammans med EEG for att forsoka utrona det kanslo- eller sin-nestillstand som anvandaren befinner sig i. Det blir ett till verktyg for interaktionsdesigneratt anvanda for att skapa en sa bra interaktion mellan dator och manniska som mojligt. Detfinns forskning inom omradet Affective computing for att lata maskiner avgora exempelvisansiktsuttryck, hjartrytm och rost. I dagslaget har relativt lite forskning genomforts inomomradet att anvanda EEG for att avlasa artificiellt framkallade kanslor [21], och detta arnagonting som det forskas mycket pa.

Det finns manga studier inom BCI som anvander EEG. Den kanske framsta motive-ringen for att studera BCI ar att kringga utrustning sasom mus, tangentbord, eller annanutrustning som kraver kontroll over kroppsdelar. Detta skulle ge mojligheter till personermed svara handikapp som har svart, eller inte kan, rora olika kroppsdelar, sasom patientermed ALS (Amyotrofisk lateralskleros). Exempelvis skulle foljande saker kunna utforas avpersoner med de mest svara handikapp, men med sin intellektuella formaga intakt:

– Kontrollera en muspekare pa en skarm [13]

– Kontrollera utrustning i hemmet [14]

– Kontroll av handprotes genom ett EEG baserat BCI [15]

– Kommunikation med omvarlden. Dagens BCI har en overforingshastighet pa ca 10-25bits/min [20]

Det gar att forestalla sig manga fler anvandningsomraden for BCI for svart handikap-pade, och fullt friska, personer, och detta ar ett aktuellt forskningsomrade som det handermycket inom just nu.

3.4 Hur anpassad interaktion kan forbattra datorappli-kationer for kognitiv traning

Att anvanda BCI for att hjalpa personer med grava handikapp och kunna paverka olikautrustningar genom kognitiv traning ar ingenting nytt, som beskrivs i sektion 3.3.2. En delav forskningen i dagslaget centreras kring hur man ska pa basta satt anvanda BCI sompassivt indata till HCI [17]. Rent traditionellt har man anvandarformular och andra typerutav utvarderingar for att bedoma vardet av implementationen. Detta fungerar val mendet ar svart att utrona den kognitiva arbetsbordan, exempelvis hur svart det ar att losa ett

Page 28: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

3.4. Hur anpassad interaktion kan forbattra datorapplikationer for kognitivtraning 19

sarskilt problem, med dessa typer av metoder. Det skulle vara mycket anvandbart att hasadan information tillganglig for att kunna anpassa program for en specifik anvandare.

Pa samma satt vore det viktigt med information om en anvandares kanslotillstand for enbra evaluering av en anvandares erfarenheter nar de interagerar med ett system. Att fa redapa kanslotillstandet ar mycket viktig for program sasom spel dar hela poangen ar att upplevaunderhallning, vilket kan fas genom att betrakta frustration, bedrift, gladje, njutning, osv.Att konstruera spel som inte bryter flodet for spelaren vore mycket anvandbart, och dettaskulle man kunna na genom att betrakta anvandarens kanslotillstand. Aven om det inte arlika engagerande att administrera databaser som att spela nagot bra spel sa ar tillgang tillkanslotillstand fortfarande nagonting som skulle kunna gynna interaktionen [17].

Att konstruera ett granssnitt som “bara fungerar”, dvs. anpassar sig till en specifikanvandares behov pa ett granssnitt, ar inget nytt koncept, och ar nagonting som standigtefterstravas. Program som automatiskt anpassar storlek, yta, tillgangliga input mekanismer,anvand utrustnings bearbetningsmojligheter, samt anvandarens uppgift eller sammanhangsom man arbetar i. Det ar formodligen minst lika viktigt att anpassa ett system till enanvandares kognitiva formaga som att anpassa till specifika datorers berakningsmassigaformaga. Ett granssnitt kan exempelvis anpassas baserat pa en anvandares kognitiva till-stand genom att forandra informationsflodet, sasom ifall ett omrade i anvandarens hjarnaar overbelastat sa kan information transformeras och presenteras pa ett satt som belastarandra omraden i hjarnan [18].

Ett annat satt ett program kan svara pa anvandarens kognitiva tillstand ar att hanteraavbrott nar anvandaren exempelvis ar i djupa tankar. Systemet kan da upptacka detta ochhantera uppkommande avbrott, sa som epostlarm, pa basta mojliga satt. Det skulle avenkunna ga att kanna hogre niva kognitiva handelser sasom frustration eller tillfredsstalldhet,vilket ger mojligheten att konstruera granssnitt som ger gensvar eller ledning pa arbetsfokuseller arbetsflode i traningsscenarion, exempelvis om anvandaren ska lara sig om nagonting.Det skulle kunna leda till betydligt effektivare granssnitt i pedagogiska sammanhang [18].

Page 29: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

20 Kapitel 3. Fordjupningsstudie

Page 30: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Kapitel 4

Resultat

4.1 Utforande

Programmet ar indelat i tva delar - en server och en klient. Nedan beskrivs bada delar varfor sig.

Givet i borjan av projektet var att headsetets API var implementerat i .NET, sa nagotslags granssnitt mot det maste vara skrivet i .NET, eller kunna exekvera den kod som finnsimplementerad i den .dll-fil som distribueras med programvaran till headsetet. Det varaven givet att spelet som kommer anvanda sig av matvarden fran headsetet var skrivet iPython.

Det forsta som kontrollerades var om det fanns ett enkelt satt att fa Python att direktexekvera funktionerna i .dll-filen. Da skulle man kunna konstruera en modul direkt i speletsom kor direkt mot APIt, vilket skulle eliminera behovet av ett separat program som en-bart arbetar mot headsetet. Det utforskades tva alternativ. Det forsta var att anvanda deninbyggda modulen ctypes som ger C kompatibla datatyper samt mojligheten att exekverakod i en .dll fil eller delat bibliotek [46]. Efter att ha anvant modulen under en mindre tidbestamdes att det skulle blir relativt omstandligt att fa det att fungera som onskat, och atttiden formodligen skulle dra ivag over arbetets ramar.

Det andra alternativet som fanns var att utoka Python med de funktioner vi vill hafran Emotiv APIt. Aven det alternativet avfardades pa grund av ytterligare komplexitet iprogramkoden, samt att det skulle ta tid att lara sig de metoder som anvands for att utforaarbetet.

Beslut fattades att det skulle konstrueras en server och en klient, dar servern imple-menteras i C# pa .NET plattformen for att enkelt arbeta direkt mot .dll filen, och sedansanda vidare matvarden via en natverkssocket [47] genom TCP till klienten med ett de-finierat textbaserat protokoll. Klienten implementerar en modul i Python for att ta emotmatvarden och spelet anvander denna modul for att anpassa interaktionen. Nedan kan merlasas om respektive implementation. I figur 4.1 syns ett diagram over interaktionen mellande olika komponenterna i systemet.

Se sektion 5.2 for eventuella problem som uppstod vid implementation av systemet.

21

Page 31: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

22 Kapitel 4. Resultat

Figur 4.1: Interaktion mellan de olika komponenterna i systemet.

4.1.1 Server

Eftersom headsetets API ar implementerat i .NET sa kunde ett annat godtyckligt .NETsprak anvandas for att exekvera dessa funktioner, sasom C# eller C++. I samband meddetta valdes C# som sprak for att implementera servern, da erfarenhet med Java finns ochC# har stora likheter med det spraket.

Servern har inget grafiskt granssnitt, utan ar ett terminalbaserat program som konti-nuerligt laser matvarden fran headsetet och sander det vidare till klienten. Nar implemen-tation och testning gjordes kordes framst server och klient pa samma dator, men det garatt kora dem pa olika. Det visar sig att detta ar nagonting som maste goras under vissaomstandigheter. Se mer om detta i sektion 5.2.

4.1.2 Klient

Klienten ar implementerad som en modul till Python. Tanken med klienten ar att den enbartska ta emot matvarden fran servern och lagra det i nagon slags struktur. Spelet kan sedankommunicera med modulen och anvanda alla varden pa onskat vis. I sektion A.2 aterfinnsexempel pa hur funktionaliteten i klienten kan anvandas rent implementationsspecifikt, ochnedan beskrivs implementationen mer schematiskt.

Klienten tar tva argument, host och port som anger den dator dar servern kors ochvilken port som den accepterar anslutningar pa. Nar anslutningen upprattas skapas en nytrad internt som forsoker ansluta till servern kontinuerligt. Nar en sadan anslutning arupprattad kan matvarden extraheras. Se sektion A.2 for hur detta kan goras.

Sjalva overforingen av matvarden styrs med ett textbaserat protokoll. Se sektion 4.1.3for mer information om hur det ser ut och varfor ett sadant valdes.

Page 32: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

4.1. Utforande 23

4.1.3 Protokoll

Nedan beskrivs protokollet som anvands for att skicka data fran servern till klienten. Harbeskrivs det generella for alla delarna i protokollet.

Det bestamdes att ett textbaserat protokoll skulle anvandas da det ansags som lattareatt implementera och felsoka gentemot ett binart protokoll. Strangen som skickas ser ut somfoljer:

Pakettyp<>Paketdata

dar Pakettyp ar exempelvis EEG, Expressiv, eller PING beroende pa innehallet i paketet,och Paketdata ar innehallet i paketet, formaterat pa ett vis som beskrivs nedan for olikapakettyper. Alla paket avslutas med ett mellanslag som anger slutet pa paketet for att gemojligheten att konkatenera flera paket efter varandra. Det ar mojligt att implementera flertyper av paket, se sektion 4.1.3.3 for information om det.

4.1.3.1 EEG

Ett EEG paket ar formaterat som foljer:

EEG <> c1 : v11|v12|...|v1n; c2 : v21|v22|...|v2n; ...cm : vm1|vm2|...|vmn

dar n ar antalet matvarden i det har paketet, m ar antalet kanaler som skickas med, c ar denaktuella kanalen och v ar vardet. Nedan aterfinns alla kanaler som skickas fran headsetetoch en kort beskrivning for vilka varden som kan fas fran den kanalen:

– COUNTER - Raknare fran 0 till 128. COUNTER borjar inte nodvandigtvis pa 0 narforsta matvardet samlas in. Notera ocksa att COUNTER gar fran 0 tom 128, vilket ar129 varden, och enligt dokumentationen ska det vara 128 varden. Ett inlagg gjordespa utvecklarens forum (se ref [56]) dar det konstaterades av utvecklaren att det var ettmisstag i programmeringen och att COUNTER bara ar en raknare for att kontrolleraatt inga paket gar forlorade - detta ar saledes inget problem. Detta innebar ocksa attom COUNTER vid sekund 14.00 ar 10 sa ar COUNTER exakt en sekund senare 9.

– ES TIMESTAMP - Tidsstampel som anger nar vardet registrerades. Vardet som angesar ett decimaltal som anger tiden fran start av headsetet (tiden fran att matvardenborjade hamtas)

Nedan beskrivs de kanaler som EEG kan aterfas fran. Kanalerna nedan motsvarar po-sitionerna som aterfinns i figur 3.9. Alla varden ar decimaltal och representerar matvardeti µV (microvolt):

AF3, F7, F3, FC5, T7, P7, O1, O2, P8, T8, FC6, F4, F8, AF4

Nedan aterfinns kanaler som inte anvands i den nuvarande implementationen, men somskickas med i EEG paketen for att programmet enkelt ska kunna byggas ut och stodja dessa:

Page 33: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

24 Kapitel 4. Resultat

INTERPOLATED, RAW CQ, GYROX, GYROY, TIMESTAMP, FUNC ID, FUNC VALUE,MARKER, SYNC SIGNAL

Dokumentationen over vad dessa gor ar bristfallande, och aven om det gar att gissa sigtill vad de formodligen ar amnade for sa ar det inte bekraftat pa nagot vis, och aven med ensadan gissning ar det inte givet vilken typ av varden som aterfas (om det ar ett decimaltal,heltal, strang, hur vardet ar formaterat, etc).

Exempelpaket:

EEG<>COUNTER:78;INTERPOLATED:0;RAW\_CQ:0;AF3:4467,17948717949;

F7:4069,74358974359;F3:4230,25641025641;FC5:4508,71794871795;

T7:4273,33333333333;P7:4172,82051282051;O1:4361,02564102564;

O2:4693,33333333333;P8:4010,25641025641;T8:4149,74358974359;

FC6:4485,12820512821;F4:4087,69230769231;F8:3968,71794871795;

AF4:4207,17948717949;GYROX:1656;GYROY:1670;TIMESTAMP:160,546;

ES_TIMESTAMP:151,075149536133;FUNC_ID:0;FUNC_VALUE:0;MARKER:0;

SYNC_SIGNAL:0

4.1.3.2 Expressiv

Ett Expressiv paket ar formaterat som foljer:

EXPRESSIV <> v1; v2; ...; vn

dar vn ar det uppmatta vardet for en viss kanal. Nedan aterfinns en lista over kanaler, iden ordning som de tas emot. Alla flyttal nedan skickas pa formen x, y. Notera att decimal-tal ar komma-separerade. Gallande ansiktsuttrycken nedan sa fas dessa varden genom attheadsetet mater elektromyografi (EMG) signaler, vilket ar en teknik som anvands for attmata musklernas respons pa stimulering fran nervsystemet. Dessa ar alltsa fristaende franEEG signaler.

– Time - Tid pa formen sekunder,delsekunder. Ex. 24,79261

– UserID - ID pa anvandaren, >= 0

– Wireless signal - NO SIGNAL, BAD SIGNAL eller GOOD SIGNAL

– Blink - True / False

– Left Blink - True / False

– Right Blink - True / False

– Looking Left - True / False

– Looking Right - True / False

Av foljande sa kommer bara 2 varden att sattas, beroende pa vad anvandaren haller pamed. Man har ett “UpperFace” och “LowerFace” som bada kan gora en sak. For UpperFacear det “Eyebrow” och “Furrow” och for LowerFace ar det “Smile”, “Clench”, “Smirk Left”,

Page 34: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

4.1. Utforande 25

“Smirk Right” och “Laugh”. De varden som inte satts kommer att vara 0 (sa om anvandarenexempelvis far 0.5 pa “Eyebrow” kommer “Furrow” automatiskt vara 0).

Upperface:

– Eyebrow - Varde >= 0, <= 1 hur anvandarens ogonbryn ar placerade

– Furrow - Varde >= 0, <= 1 hur stor ansiktsfara anvandaren har

Lowerface:

– Smile - Varde >= 0, <= 1 hur stort leende anvandaren har

– Clench - Varde >= 0, <= 1 hur kraftigt anvandaren spanner sig

– Left Smirk - Varde >= 0, <= 1 hur stort vanster smil anvandaren har

– Right Smirk - Varde >= 0, <= 1 hur stort hoger smil anvandaren har

– Laugh - Varde >= 0, <= 1 hur mycket anvandaren skrattar

Foljande varden satts oavsett vilka varden som satts ovan:

– Short Term Excitement - Varde >= 0, <= 1 hur upphetsad anvandaren ar, kortsiktigt

– Long Term Excitement - Varde >= 0, <= 1 hur upphetsad anvandaren ar, langsiktigt

– Meditation - Varde >= 0, <= 1 hur lugn och sansad anvandaren ar

– Frustration - Varde >= 0, <= 1 hur frustrerad anvandaren ar

– Engagement / Boredom - Varde >= 0, <= 1 hur engagerad / uttrakad anvandaren ar

Exempelpaket:

EXPRESSIV<>33,0497;0;GOOD_SIGNAL;False;False;False;False;False;0,3;0;0;0;0;0,1;1;0,26;0

4.1.3.3 Ovrigt

Nar en ny pakettyp behover implementeras bor andringar bade goras i server och klient. Allapaket bor folja formatet som beskrivs i sektion 4.1.3. Ett paket som finns implementerat arPING som ser ut som foljer:

PING<>Tid

dar Tid ar en tidsstampel med datum och klockslag som representerar nar PING paketetskickades.

Page 35: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

26 Kapitel 4. Resultat

Page 36: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Kapitel 5

Slutsatser

5.1 Utforande av mal

Nedan aterfinns de mal som var uppsatta for arbetet och huruvida dessa blev genomforda,med motivering ifall sa inte var fallet. problembeskrivningen i sin helhet aterfinns i sektion2.

– Kontrollera vilka signaler som det gar att fa fran headsetet och hur dessa kan kopplastill olika kognitiva faktorer med betydelse for hur man interagerar med en datorappli-kation sa som t.ex. stress, upphetsning, frustration, osv.

Kontroll over vilka signaler som kan fas fran headsetet ar gjord och beskrivs i imple-mentationsdelen. Den andra delen for hur det hela kopplas samman med kognitiva faktorerar inte helt utfort. Det som hande var att fordjupningsstudien tog mer tid an beraknat, sadet hela gjordes nagot mer oversiktligt.

– Det skall goras en oversyn av EEG-signaler och relaterade kognitiva tillstand med hurdessa fungerar i det aktuella headsetet och hur de kan anvandas for att anpassa MDI.Ett sarskilt fokus laggs pa hur sadan anpassning kan anvandas for att forbattra da-torapplikationer for kognitiv traning genom att exempelvis anpassa svarighetsgraden.

Den Forsta delen gallande EEG signaler och relaterade kognitiva tillstand ar genomfort.Daremot har det inte lagts nagot sarskilt fokus pa datorapplikationer for kognitiv traningda det bedomdes att det skulle behova laggas ner mer tid pa detta an vad som hades.Det gar att i implementationen paverka svarighetsgraden i spelet genom att bara avlasaexempelvis frustration och bara andra nivan som spelaren befinner sig pa, men det ar ettnagot rudimentart satt att gora det pa. man behover kolla vidare pa hur de olika faktorernakan viktas samman eller liknande for att fa ut nagot bra resultat, som det alltsa saknadestid for att gora.

– Ga igenom headsetets application programming interface (API), som beskriver hurheadsetet kan anvandas rent programmeringstekniskt, for att ta reda pa hur den kankommunicera med det givna spelet.

Detta ar genomfort.

27

Page 37: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

28 Kapitel 5. Slutsatser

– Matvarden fran varje kanal skall kunna lasas som radata fran varje kanal for sig samtfran var och en av de fordefinierade variablerna i headsetets software development kit(SDK). Denna modul anvands sedan for att implementera en dynamisk anpassning avinteraktion och granssnitt i spelet.

Den forsta delen av detta ar genomfort, men det finns inte nagon omedelbart dynamiskanpassning av spelet eftersom en sadan skulle bygga vidare pa en fordjupningsstudie sombeskrivs ovan.

Allt som allt sa lades det ned valdigt mycket tid pa den fordjupningsstudie som ar gjord,och implementationen tog mer tid an vantat. Sarskilt de problem som dok upp var valdigttidskravande i sammanhanget, dessa beskrivs i nasta sektion i mer detalj. Jag drogs med ifordjupningsstudien som jag gjorde da det var valdigt intressant rent oversiktligt, och jaggjorde darfor studien valdigt grundligt. Det kan kannas som att mer saker borde hunnitsmed, men eftersom examensarbetet enbart ar 10 veckor sa finns det inte sa mycket tid attanvanda. Jag hade hoppats pa att mer skulle bli gjort och att implementationen skullekunnat na ett sadant skede dar nagon faktiskt interagering med spelet skulle kunnat goras,men sa blev alltsa inte fallet.

5.2 Losningens begransningar

Som implementationen ar gjord finns ett antal begransningar som diskuteras nedan.

Under tiden som losningen implementerades testades den kontinuerligt pa en barbardator med 4 CPU karnor. Nar den sedan testades pa en dator med farre karnor uppdagadesproblematik i att vissa matvarden inte skickades till klienten. Detta kunde verifieras medhjalp av det sekvensfalt (COUNTER, se 4.1.3.1) som skickas med i paketen - om det vardesom kommer avviker mer an 1 jamfort med tidigare vardet sa har nagot paket gatt forlorat.Exempelvis foljande sekvens: 1,2,3,9,10 sa tycks det saknas paket fran 3 till 9. Man kan dasluta sig till att dessa varden inte skickats med. Problemet observerades sporadiskt, mendet verkade uppsta nar andra CPU kravande program korde samtidigt. Felsokning gjordesmen det gick inte att finna vad som gjorde att matvarden forsvann nar datorn anvande alltillganglig CPU.

Ett inlagg gjordes pa Emotivs officiella forum [55] dar problemet forklarades och enlosning efterfragades dar det uppdagade sig att headsetet kraver en viss mangd CPU for attdet ska vara mojligt att ta emot matvarden, annars forsvinner dom och skickas darmed inte.Det visar sig alltsa vara riskabelt att forsoka extrahera matvarden om datorn anvander 100%CPU. Detta var en sarskilt svar begransning att upptacka eftersom det fungerar annorlundapa datorer med olika mangd karnor, da bakgrundsprogram som korde lamnade mer ellermindre CPU tid till programmet. Exakt hur mycket matvarden som gick forlorade underovanstaende scenario varierade, formodligen baserat pa tiden det tar for headsetet att faden CPU som behovs, men det ar inte verifierat.

Eftersom implementationen delades upp i tva delar, en server och en klient (se sektion4.1) sa ar ovanstaende inte ett stort problem. Det kan vara sa att anvandaren vill kora olikatyper av diagnostik program, som exempelvis ritar upp EEG i realtid, som anvander storamangder CPU. Det som i praktiken kan goras ar att koppla headsetet till en dator sominte exekverar nagonting annat an servern, sa headsetet far all den CPU som behovs, ochlata en annan maskin kora klienten, dar diagnostik program ocksa kan koras. Matvarden

Page 38: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

5.3. Framtida arbete 29

kan da tas emot utan oro for forlust av matvarden. Om implementationen hade gjorts paett sadant satt att en modul implementerats direkt i Python sa hade det blivit ett storreproblem. Det hade da varit svart att exekvera program i bakgrunden som tar stora mangderCPU, eftersom matvarden da hade kunnat forsvinna.

Ovanstaende problem med CPU tid till headset var inte dokumenterat i dokumenta-tionen som foljde med headsetet. Daremot existerar det en funktion vars dokumenteradesyfte ar hur lang tid det far ga mellan tva anrop till headsetet for att hamta matvarden.Denna funktion har dock ingenting med ovanstaende problem att gora, vilket var den forstatanken. Det ar aven vart att namna att det vore optimalt om servern kunde ha flera klienteranslutna, vilket den inte kan i den nuvarande implementationen. Da skulle exempelvis tvaklienter kopplas upp dar en kor spelet och en kor diagnostik program eller liknande. Det arinte nodvandigtvis onskvart att kora bade spelet och diagnostik program pa samma dator,da det exempelvis kan orsaka nedsatt prestanda i spelet, och en sadan losning skulle elimi-nera det problemet. Det ar mojligt att utoka servern med sadan funktionalitet utan storreproblem.

5.3 Framtida arbete

Som omnamns ovan i sektion 5.2 ar det en bra ide att bygga ut servern sa flera klienter kanvara anslutna samtidigt. Vidare ar detta arbete enbart en implementation, och det skullebehova koras i skarp miljo och granska resultatet man far ut fran den studien pa ett relevantsatt. Ett huvudsyfte med arbetet var just att konstruera en stabil bas som kan anvandasfor framtida arbeten, sa losningen kan anvandas pa basta mojliga vis. En del i arbetet varatt det ska vara enkelt att anpassa losningen efter vilken typ av studie som ska genomforasi framtiden.

Page 39: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

30 Kapitel 5. Slutsatser

Page 40: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Kapitel 6

Tacksamhetsbetygelser

Jag vill tacka Daniel Sjolie for hans talamod och handledning under arbetets gang.

31

Page 41: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

32 Kapitel 6. Tacksamhetsbetygelser

Page 42: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Referenser

[1] Desney S. Tan, Anton Nijholt, Brain-Computer Interfaces, sidorna 242-264, 2010

[2] Ernst Niedermeyer,F. H. Lopes da Silva, Electroencephalography: basic principles, cli-nical applications, and related fields, 2005

[3] Tudor, Mario; Tudor, Lorainne; Tudor, Katarina Ivana, Hans Berger (1873-1941)–thehistory of electroencephalography, 2005

[4] William O. Tatum,Aatif M. Husain,Selim R. Benbadis, Handbook of EEG Interpreta-tion, sidorna ix-3, 2008

[5] Marc R. Nuwer et al., IFCN standards for digital recording of clinical EEG, sida 3,1998

[6] Ronald I Herning, Reese T Jones, William D Hooker, Johns Mendelson, LaverneBlackwell, Cocaine increases EEG beta: A replication and extension of Hans Berger’shistoric experiments, Electroencephalography and Clinical Neurophysiology, vol. 60, no.6, Juni 1985, sidorna 470-477, 1985

[7] Ronald I. Herning, Xiaoyan Guo, Warren E. Better, Linda L. Weinhold, W. RobertLange, Jean L. Cadet, David A. Gorelick, Neurophysiological signs of cocaine depen-dence: Increased electroencephalogram beta during withdrawal, Biological Psychiatry,vol. 41, no. 11, Juni 1997, sidorna 1087-1094, 1997

[8] A. James Rowan, Eugene Tolunsky, Primer of EEG, sidorna 54, 70 och 25-29, 2003

[9] V. E. Pollock, L. S. Schneider, Quantitative, waking EEG research on depression, Bi-ological Psychiatry Volume 27, No. 7, 1 April 1990, sidorna 757-780 , 1990

[10] H. W. Agnew Jr., Wilse B. Webb, Robert L. Williams, THE FIRST NIGHT EFFECT:AN EEG STUDYOF SLEEP, Psychophysiology Volume 2, No. 3, sidorna 263-266, 1966

[11] William Dement M.D., Nathaniel Kleitman Ph.D., Cyclic variations in EEG duringsleep and their relation to eye movements, body motility, and dreaming, 1957

[12] Wolfgang Klimesch, EEG alpha and theta oscillations reflect cognitive and memoryperformance: a review and analysis, Brain Research Reviews Vol. 29, No. 2-3, April1999, sidorna 169-195, 1998

[13] Jonathan R. Wolpaw et al., An EEG-based brain-computer interface for cursor control,Electroencephalography and Clinical Neurophysiology Volume 78, No. 3, Mars 1991,sidorna 252-259, 1991

33

Page 43: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

34 REFERENSER

[14] Xiaorong Gao, Dingfeng Xu, Ming Cheng, Shangkai Gao, A BCI-based environmentalcontroller for the motion-disabled, IEEE Transactions on Neural Systems and Rehabi-litation Engineering, Vol. 11, No. 2, Juni 2003, 2003

[15] Christoph Guger et al., Prosthetic Control by an EEG-based Brain Computer Interface(BCI), Proc. AAATE.99, 1999

[16] B. Obermaier, G. R. Muller, G. Pfurtscheller, Virtual Keyboard Controlled by Spon-taneous EEG Activity, IEEE transactions on Neural Systems and Rehabilitation Engi-neering, 2003

[17] Edward Cutrell, Desney Tan, BCI for passive input in HCI, ACM CHI 2008 Workshopon Brain-Computer Interfaces for HCI and Games, sidorna 1-2, 2007

[18] Anton Nijholt, Desney Tan, Playing with Your Brain: Brain-Computer Interfaces andGames, ACE 2007, sidorna 305-306, 2007

[19] Jonathan R. Wolpaw, Dennis J. McFarland, Theresa M. Vaughan, Gerwin Schalk, TheWadsworth Center Brain-Computer Interface (BCI) Research and Development Pro-gram, IEEE Transactions on Neural Systems and Rehabilitation Engineering, vol. 11,no. 2, Juni 2003, sidorna 204-207, 2003

[20] Jonathan R. Wolpaw, Niels Birbaumer, Dennis J. McFarland, Gert Pfurtscheller, The-resa M. Vaughan, Brain.computer interfaces for communication and control, ClinicalNeurophysiology, vol. 113, no. 6, Juni 2002, sidorna 767-791, 2002

[21] P. C. Petrantonakis, L. J. Hadjileontiadis, On Modelling User.s EEG Response Duringa Human-Computer Interaction: A Mirror Neuron System-Based Approach, IFMBEProceedings, vol. 22, no. 10, 2009, sidorna 1241-1245, 2009

[22] Christoph S. Herrmann, Matthias H.J. Munk, Andreas K. Engel, Cognitive functionsof gamma-band activity: memory match and utilization, Trends in Cognitive Sciences,vol. 8, no. 8, Augusti 2004, sidorna 347-355, 2004

[23] Jeanette Schadow, Daniel Lenz, Nicole Dettler, Ingo Frund, Christoph S. Herrmann,Early gamma-band responses reflect anticipatory top-down modulation in the auditorycortex, NeuroImage, vol. 47, no. 2, Augusti 2009, sidorna 651-658, 2009

[24] Edward L. Reilly, EEG Recording and Operation of the Apparatus, Electroencephalo-graphy: Basic Principles, Clinical Applications, and Related Fields, sida 140, 1999

[25] The International Federation of Societies for Electroencephalography and Clinical Neu-rophysiology, 1974

[26] Ernst Niedermeyer, The Normal EEG of the Waking Adult, Electroencephalography:Basic Principles, Clinical Applications, and Related Fields, sidorna 149-166, 1999

[27] Martin Schurmann et. al., Gamma, alpha, delta, and theta oscillations govern cognitiveprocesses, Brain Research Reviews, vol. 29, no. 2-3, April 1999, sidorna 169-195, 1999

[28] Michael J. Kahana, David Seelig, Joseph R. Madsen, Theta returns, Current Opinionin Neurobiology, vol. 11, no. 6, December 2001, sidorna 739-744, 2001

[29] Eric W. Sellers, Emanuel Donchin, A P300-based brain-computer-interface: Initial testsby ALS patients, Clinical Neurophysiology, vol. 117, no 3, Mars 2006, sidorna 538-548,2006

Page 44: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

REFERENSER 35

[30] Eric W. Sellers, Dean J. Krusienski, Dennis J. McFarland, Theresa M. Vaughan, Jonat-han R. Wolpaw, A P300 event-related potential brain.computer interface (BCI): Theeffects of matrix size and inter stimulus interval on performance, Biological Psychology,vol. 73, no 3, Oktober 2006, siforna 242-252, 2006

[31] http://www.ebme.co.uk/arts/eegintro/eeg2.htm , hamtad 2011-05-10

[32] http://neuroswitch.net/ , hamtad 2011-03-25

[33] http://www.bci2000.org/ , hamtad 2011-03-25

[34] http://www.microsoft.com/net/ , hamtad 2011-03-25

[35] http://www.python.org/ , hamtad 2011-03-25

[36] http://www.panda3d.org/ , hamtad 2011-03-25

[37] http://sccn.ucsd.edu/eeglab/ , hamtad 2011-03-25

[38] http://www.mathworks.com/products/matlab/ , hamtad 2011-03-25

[39] http://arxiv.org/abs/cs.DB/0608052 , hamtad 2011-05-10

[40] http://fieldtrip.fcdonders.nl/ , hamtad 2011-03-25

[41] http://www.cs.unc.edu/Research/vrpn/ , hamtad 2011-05-10

[42] http://www.emotiv.com/store/hardware/epoc-bci/epoc-neuroheadset/

[43] http://www.emotiv.com/researchers/ , hamtad 2011-02-28

[44] http://www.webmd.com/epilepsy/electroencephalogram-eeg-21508 , hamtad 2010-11-26

[45] http://www.vardguiden.se/Sjukdomar-och-rad/Omraden/Undersokningar/EEG/ ,hamtad 2010-11-26

[46] http://docs.python.org/library/ctypes.html , hamtad 2011-03-08

[47] http://devmentor.org/articles/network/Socket%20Programming%28v2%29.pdf ,hamtad 2011-03-08

[48] http://sourceforge.net/projects/emotivsharp/ , hamtad 2011-03-18

[49] http://www.news-medical.net/news/20110315/New-tool-can-measure-brain-waves-in-children-with-cerebral-palsy.aspx , hamtad 2011-03-18

[50] http://www.youtube.com/watch?v=FokRiAXD-eA , hamtad 2011-03-18

[51] http://www.youtube.com/watch?v=4Cq35VbRpTY , hamtad 2011-03-18

[52] http://www.youtube.com/watch?v=K1SujPeqdXY , hamtad 2011-03-18

[53] http://www.youtube.com/watch?v=rqU3gUh3q c , hamtad 2011-03-18

[54] http://www.latex-project.org/ , hamtad 2011-03-18

[55] http://www.emotiv.com/forum/forum15/topic1259/ , hamtad 2011-03-23

[56] http://www.emotiv.com/forum/forum15/topic1428/ , hamtad 2011-06-11

[57] http://www.emotiv.com/forum/forum16/ , hamtad 2011-03-24

Page 45: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

36 REFERENSER

[58] http://www.immrama.org/eeg/electrode.html , hamtad 2011-03-31

[59] http://www.bci2000.org/wiki/index.php/Contributions:Emotiv , hamtad 2011-04-29

[60] http://openvibe.inria.fr/ , hamtad 2011-05-03

Page 46: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

Bilaga A

Anvandarhandledning

I det har avsnittet aterfinns exempel for hur de olika delarna i implementationerna kananvandas.

A.1 Server

Servern tar ett argument som avgor om en anslutning till headsetet eller till EmoCom-poser, ett verktyg for att kunna manuellt skicka signaler som om dom kom fran hjalmen.Programmet kors genom:

emoserver.exe [use composer]

dar use composer ar 0 om en anslutning ska goras mot headset, och 1 om en anslutninggors mot headset. Servern ligger da och vantar pa en anslutning, och skickar matvarden sasnart en sadan fas.

A.2 Klient

Det mest grundlaggande ar att importera och initiera klienten. Detta gors som foljer:

import emopy.DataParser

host = "192.168.0.1"

port = 2001

emo = emopy.DataParser.EmotivDataParser(host,port)

host ar en strang som ar det hostname eller IP adress till den dator som kor servern.port ar som standard 2001, men det kan vara vilken port som helst som servern tar emotanslutningar pa. Nar koden ovan initieras objektet, men ingen anslutning upprattas.

Foljande kod startar upp en ny trad som kontinuerligt forsoker ansluta till servern:

emo.connect()

37

Page 47: Implementation av ett interface till Emotiv Epoc...Emotiv EPOC Headset. The result is meant to be a stable basis for further study using the device. An in-depth study of the history

38 Kapitel A. Anvandarhandledning

Nar en anslutning ar upprattad kan matvarden borja extraheras. Detta gors med gatheredEEG()

och gatheredExpressive() metoderna som kors pa EmotivDataParser objektet:

eeg = emo.gatheredEEG()

expr = emo.gatheredExpressive()

Nu kan matvarden fas genom att anropa en rad olika funktioner som finns beskrivnanedan:

getElements(self, start, end) - Returnerar alla element med en timestamp mellanstart och end. start och end skall vara decimaltal mellan 0.0 och tiden som headsetethamtat matvarden.

getMaxTime(self) - Returnerar timestamp fran sista vardet som lagrats.

getChannelData(self, channel) - Returnerar alla varden fran en specifik kanal. channelkan vara en av foljande, beroende pa om det ar EEG eller Expressiv varden som skall aterfas:

EEG: COUNTER INTERPOLATED RAW CQ AF3 F7 F3 FC5 T7 P7 O1 O2 P8 T8FC6 F4 F8 AF4 GYROX GYROY TIMESTAMP ES TIMESTAMP FUNC ID FUNC VALUEMARKER SYNC SIGNAL

Expressiv: time uid wsignal blink lblink rblink lookleft lookright eyebrow furrow smileclench smirkleft smirkright laugh shortexcitement longexcitement meditation frustrationengagement

getLastValues(self, time) - Returnerar alla senaste time varden.

getLastValuesFromChannel(self, time, channel) - Returnerar alla de senaste timevarden fran channel, dar channel ar en av dom ovan.

getChannelDataInInterval(self, channel, start, end) - Returnerar alla vardenfran channel, en av dom ovan, inom intervallet start och end som bada ar decimaltalmellan 0.0 och tiden som headsetet hamtat matvarden.