09.07.2015 Views

Designing a Brain-Computer Interface to Chess - Twente Student ...

Designing a Brain-Computer Interface to Chess - Twente Student ...

Designing a Brain-Computer Interface to Chess - Twente Student ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Figure 2: <strong>Chess</strong> column flash. Edited screen capturefrom [Man03a].Figure 3: <strong>Chess</strong> cell flash. Edited screen capturefrom [Man03a].For research purposes, most of these requirements may bedropped. However, a system satisfying these requirementsis more useful than one that does not.4.3 System designIt must be possible <strong>to</strong> distribute parts of the system <strong>to</strong> separatecomputers in order <strong>to</strong> distribute resource load. Themodules of the system should communicate using ubiqui<strong>to</strong>uspro<strong>to</strong>cols. The modules should be loosely coupled <strong>to</strong> allowfor replacement of individual components without affectingother parts of the system.5. CONCEPTUAL DESIGN5.1 BCI input paradigmIn this paper, I will focus on the P300 speller paradigm(section 3.2; section 3.3). The P300 row/column speller hasbeen researched relatively well, and software and proceduresexist <strong>to</strong> leverage the P300 response. A design based on theP300 cell speller is also described, as it is almost the sameas the row/column speller.5.2 P300 row/column spellerIn the traditional Farwell and Donchin P300 speller [FD88],the user can select a character from a 6 × 6 matrix (see section3.2). The 6 × 6 matrix can be replaced with a 8 × 8matrix [AP03]. A chess move can be composed by successivelyselecting a source and a destination cell on the chessboard. Figure 2 shows flashing column d.Using this method, most of the 8 × 8 = 64 offered optionsare invalid moves. At most 16 pieces may be moved by theplayer, and a piece may move <strong>to</strong> at most 7 × 3 + 6 = 27positions (queen at d4, e4, d5 or e5). This redundancy canbe taken advantage of <strong>to</strong> increase reliability, as invalid movesmay be discarded.5.3 P300 cell spellerUse of the P300 cell speller (see section 3.3) may significantlyreduce the amount of time needed <strong>to</strong> make a move.A straightforward cell speller would successively offer 64source positions and 64 destination positions. By only flashingvalid cells, at most 16 source cell positions have <strong>to</strong> beflashed and at most 27 destination cells have <strong>to</strong> be flashed.Also, the P300 emitted by counting the number of flashes ofa cell is larger for 16 cell flashes than for 8 row and 8 columnflashes, because the stimulus frequency is twice as low,reducing the number of trials needed for the cell speller.Generally, the number of cells that need <strong>to</strong> be flashed is lowerthan the 16 row/column flashes. Increasing the likelihood ofa relevant flash (which will happen when fewer stimuli aredisplayed) reduces the strength of the P300 emitted in a trial[FD88]. It may be necessary <strong>to</strong> intentionally insert ‘useless’flashes <strong>to</strong> increase P300 response for valid cells, especially inthe destination selection phase. Often, only a few destinationpositions are valid. The number of trials required for asufficiently reliable P300 response must be adjusted <strong>to</strong> thenumber of flashes per trial.A source cell flash is shown in Figure 3.5.4 High-level designThe high-level design of the system has the following components:• <strong>Chess</strong> game• <strong>Chess</strong> board view• P300 BCI• BCI ↔ chess logicThe high-level design of the system is depicted in Figure 4.chess gamegame statemoveBCI ↔ chess logicchess board viewrequest flashesselected fieldflashesP300 BCIEEGFigure 4: High-level system design


5.4.1 <strong>Chess</strong> gameThe chess game component should manage the general gameflow. It assigns turns <strong>to</strong> the players, and it performs themoves offered by the players on the chess board.5.4.2 <strong>Chess</strong> board viewThe chess board view displays the state of the game. Also,it displays the flashes commanded by the P300 BCI.5.4.3 P300 BCIThe P300 BCI component performs the P300 speller selectionprocedure. It picks a flash sequence, commands thechess board view <strong>to</strong> display the flashes and analyzes EEGinput <strong>to</strong> determine which cell has been focused.5.4.4 BCI <strong>to</strong> chess logicThe BCI ↔ chess logic component connects the P300 BCI<strong>to</strong> the chess game. Requests for a move from the BCI playerby the game are translated <strong>to</strong> cell selection requests for theP300 BCI. The selected cells will be offered as moves <strong>to</strong> thechess game.5.5 Control flowWhen the player gets their turn, the player is given sometime <strong>to</strong> determine which move <strong>to</strong> make. After that, thesystem requests the P300 module <strong>to</strong> flash the source cellson the chess board (see section 3.2; section 3.3). The P300module will report which cell has been focused by the player.If the selected cell does not contain a piece which may bemoved, the input procedure is repeated. If the selected cellcontains a piece which may be moved, the destination cellcan be selected analogously. The system will compose theselected source and destination cell in<strong>to</strong> a move, which willbe performed in the game.5.6 TimingIn order <strong>to</strong> determine which move <strong>to</strong> make, a chess playerneeds time <strong>to</strong> think. The amount of time taken may varygreatly, depending on fac<strong>to</strong>rs such as player experience, thepresence of time control and the situation on the board.When using a BCI system that is not self-paced (for moreinformation on temporal control paradigms, see [MBF + 07]),such as the P300 speller, it is unclear at what time the systemshould offer the opportunity <strong>to</strong> communicate a move.There are several approaches <strong>to</strong> work around this limitation.The not self-paced BCI may be extended with a self-pacedBCI. The player can request <strong>to</strong> perform a move using theadditional BCI. For example, the user can imagine repetitivehand movement [BDK + 06] <strong>to</strong> indicate the intention <strong>to</strong> makea move. This approach would require multiple BCI applications<strong>to</strong> be activated in succession, preferably using thesame BCI hardware. It is unclear whether this is currentlypossible.Instead, the available time per move may be limited <strong>to</strong> afixed quota. Using this approach, the offered time can beeither <strong>to</strong>o much or <strong>to</strong>o little. When <strong>to</strong>o much time is offered,the user has been able <strong>to</strong> choose the desired move, but timeis wasted while waiting for the start of the move selectionprocedure. When insufficient time is offered, the move selectionprocedure is initiated before the user can choose amove. When suddenly confronted with the selection procedure,the player may be unable <strong>to</strong> choose any adequatemove at all.The problem of offering insufficient time may be alleviatedby reporting the amount of available time <strong>to</strong> the player.The player may adapt the decision process <strong>to</strong> the availabletime. The time reporting mechanism should be inobtrusivein order not <strong>to</strong> break the player’s concentration on the chessgame. The time left for the current move could be reportedin a way similar <strong>to</strong> how the remaining game time is reported.After this time has passed, the player may opt <strong>to</strong> extend themove choice time by selecting an explicit option <strong>to</strong> do thisin the move selection procedure. This option can be offeredas a separate field outside the chess board view. However,such an out-of-board but<strong>to</strong>n increases complexity of the selectionprocedure for the P300 row/column speller. Therow/column speller would need <strong>to</strong> handle it separate fromthe rest of the board fields, as the but<strong>to</strong>n does not have arow/column position.The straightforward solution <strong>to</strong> this problem is <strong>to</strong> extend thechess board <strong>to</strong> a 9 × 9 grid. One or more of the new fieldsmay be used <strong>to</strong> offer the ‘more time’ option. While effective,this solution will increase the time needed <strong>to</strong> select a move.Most of the fields on the chess board are empty (at least 64−2 × 16 = 32 fields), and therefore not valid as fields <strong>to</strong> starta move. One of these fields may be replaced with a ‘needmore time’ but<strong>to</strong>n. For the row/column speller, this solutionincreases selection speed compared <strong>to</strong> both the ‘extra field’and the 9 × 9 grid solution, because no extra fields have <strong>to</strong>be flashed, while being only slightly more complex than the9 × 9 grid solution.For the cell speller, an out-of-board but<strong>to</strong>n is not a significantproblem. The ‘need more time’ but<strong>to</strong>n could be offeredat the place where the remaining move choice time isreported.The offered time should be adapted <strong>to</strong> the player and theboard state. A slow player would ‘need more time’ for everymove and a fast player would have <strong>to</strong> wait needlessly. Also,it will generally offer <strong>to</strong>o much time for obvious moves andnot enough time for difficult moves.Note that determining the time needed <strong>to</strong> choose a moveis not an issue in self-paced brain-computer interfaces. Theuser can simply start performing the move.6. SYSTEM DESIGNThis section provides a lower level design of the the braincomputerinterface system design described in section 5. Thesystem is designed <strong>to</strong> use off-the-shelf components whereverpossible. Figure 5 shows a diagram of the system design.6.1 Module communicationDirect connections between modules should be avoided <strong>to</strong>limit module dependencies. A bus-based approach can solvethis problem. All modules connect <strong>to</strong> a bus where messagescan be posted, which will be received by all connected


proxy enginemoves, game flowCare should be taken <strong>to</strong> limit the size of the messages, asIRC message length may not exceed 512 bytes [OR93]. Thisis not expected <strong>to</strong> become a problem.message busWinBoardflashesflash proxytext tickerchess game modelBCI ↔ chesslogicEEG device driverBCI2000P3AV taskexternal APIBCI2000 proxyFigure 5: <strong>Chess</strong> BCI system designmodules. The bus will not be used for high volume traffic,although latency should be minimal.6.1.1 Medium choiceUDP is not suitable as a bus medium, because it does notguarantee reliable message delivery when messages are sentbetween computers. Losing a message may deadlock thesystem, as control commands may get lost. TCP would bea suitable candidate. Clients for this pro<strong>to</strong>col are widelyavailable, both as programming libraries (POSIX sockets)and as standalone applications (PuTTY).Instead of TCP, I propose IRC as the module communicationmedium. IRC is built on <strong>to</strong>p of TCP, and providescommunication at a higher abstraction level. Clients canpost messages in channels. All clients who have joined thechannel (except the sender) will receive the message. IRC issuccessfully used <strong>to</strong> control applications for malicious purposesin botnets. The IRC pro<strong>to</strong>col is described in [OR93].Clients for IRC are widely available, both as programminglibraries and as standalone applications. Server software isavailable, <strong>to</strong>o.The server should be run on a nearby computer <strong>to</strong> reduce latency.As the communication channel will be used <strong>to</strong> transferuser interface commands linked <strong>to</strong> BCI input, latencyshould not exceed 10 ms.6.1.2 Pro<strong>to</strong>colThe connected modules can send and receive messages inthe following plain-text format:command (〈space〉 parameter)*This format is a compromise between human and computerreadability. Using a human readable format facilitates debugging.The commands can relatively easy be interpretedusing statements such as str<strong>to</strong>k, strcmp and a<strong>to</strong>i (or theequivalents in programming languages other than C). Also,the format is platform independent. Performance problemsrelated <strong>to</strong> interpreting the text messages are not expected,as the communication channel is not used for high-volumetraffic.server6.2 <strong>Chess</strong> gameThe chess game logic can be offered by an existing chess application.The chess game application must be either opensource or extensible <strong>to</strong> allow necessary modifications <strong>to</strong> bemade. The game should preferably be written in Java, asthis is the main programming language taught <strong>to</strong> CS/HMIstudents at the University of <strong>Twente</strong>. However, no suitableJava chess game implementations satisfying all of the applicationrequirements (see section 4) seem <strong>to</strong> exist.GNU WinBoard [Man03a] is a mature, free and open sourceWindows chess client written in C. It allows players <strong>to</strong> playagainst a human player, the computer or a network playeron an internet chess server. This chess program satisfiesmost requirements, except that it does not yet offer a BCIinterface.The XBoard pro<strong>to</strong>col is the de fac<strong>to</strong> standard chess enginepro<strong>to</strong>col [Man03b]. The pro<strong>to</strong>col connects chess AI engines(such as GNU <strong>Chess</strong> and Crafty) <strong>to</strong> chess front-end applications(such as WinBoard and Arena). The system can offeran XBoard-compatible chess engine, <strong>to</strong> which the chessapplication can connect <strong>to</strong> receive move commands and <strong>to</strong>exchange game flow information. This is the same approachas followed by [Inv04] <strong>to</strong> communicate moves <strong>to</strong> the chessapplication.For the P300 interface (described in section 5.2), a graphicalview on the board must be provided <strong>to</strong> display fieldhighlights. WinBoard already provides a chess board view,which can be modified. The modified version should acceptflash commands from the BCI.The flash commands could be communicated using a modifiedversion of the XBoard pro<strong>to</strong>col through the proxy chessengine. A disadvantage of this approach is that it ties thecapability <strong>to</strong> flash cells on the chess board <strong>to</strong> a chess enginebeing connected. This may not always be the case, for examplein WinBoard’s View or edit game files mode, whichmode may be useful for training purposes needing predefinedboard positions.6.3 BCI connectionThe system will use BCI 2000 for BCI input (see section3.4). Using BCI 2000 allows reuse of others’ components andvice versa. Most of the design, however, does not depend onBCI 2000. It is only used for acquiring input and <strong>to</strong> performsignal processing.6.3.1 P300 inputThe BCI 2000 project provides a P300 I/O and processingmodule [HMMS05]. The module could be used <strong>to</strong> presentthe chess board for move selection. In order <strong>to</strong> use the P300stimulus output functions, the stimulus board images need<strong>to</strong> be generated on run-time, as generating images for allpossible board configurations is intractable. The systemmay also present a matrix that does not show the chesspieces on the board. When not showing the chess pieces,


the user may accidentally choose the wrong positions as theplayer cannot verify the positions on the board.These problems can be worked around by displaying theflashes with an external view. The view is described in section6.2. The internal stimulus display view from BCI 2000is hidden from the user. The StimulusCode will be transportedby the BCI 2000 proxy (section 6.3.2) <strong>to</strong> the chessview.6.3.2 BCI 2000 proxyBCI 2000 offers an external application interface <strong>to</strong> communicatewith existing systems that are not integrated withBCI 2000 [MS06]. The external interface can be connected<strong>to</strong> the chess framework with a module that converts UDPpackets <strong>to</strong> IRC messages and vice versa. To prevent namespaceclashes, messages from and <strong>to</strong> the BCI 2000 proxyshould be prefixed with bci2000.The BCI 2000 external interface is also used by <strong>Brain</strong> Dasher[Wil06].6.4 BCI chess logicThe BCI chess logic module (BCLM) links the components<strong>to</strong>gether <strong>to</strong> a chess BCI application.6.4.1 <strong>Chess</strong> gameWhen the proxy XBoard engine gets his turn (i.e., the otherplayer has moved), it should report that it is the BCI player’sturn. The BCLM then knows that the player move procedureshould start. To communicate this <strong>to</strong> the user, thetext “Please choose a move...” will be presented on a virtualtext ticker. The text ticker may also be used <strong>to</strong> presentthe amount of time left <strong>to</strong> choose a move.When time <strong>to</strong> choose a move is over (or the user has indicated<strong>to</strong> start a move), the text “Focus on the piece <strong>to</strong>move, and count the number of flashes” should appear for3 seconds. After that, BCI 2000 must be instructed <strong>to</strong>present flashes. BCI 2000 will eventually respond with aSelectedStimulus. The SelectedStimulus must be converted<strong>to</strong> a board position. If the board position is notvalid as a start position, the user should be notified (“Nopiece at selected position / Piece at selected position cannotbe moved. Please try again.”), and the selection procedureshould restart after a few seconds. If the player made amistake (e.g. thinks that a certain move is allowed whileit’s not), the player can get additional time by selecting the‘need more time’ option in the next try.When a valid piece has been selected, this piece must bemarked, and a destination position can be selected (“Focuson the destination for this piece, and count the number offlashes”). The interface should also offer a ‘cancel start position’option <strong>to</strong> undo the start piece selection when the usersees that wrong piece is marked as the start piece. The ability<strong>to</strong> cancel the start position will reduce the move errorrate.6.4.2 <strong>Chess</strong> logicBCLM needs <strong>to</strong> have some knowledge about the rules ofchess. The module has <strong>to</strong> know which moves are allowedin order <strong>to</strong> restrict the positions flashed and <strong>to</strong> validatewhether the selected positions comprise a valid move. Anobvious way <strong>to</strong> obtain such information is <strong>to</strong> consult a chessengine.7. EXPERIMENT SETUPIn order <strong>to</strong> judge how useful the designed system is, the performanceof the system needs <strong>to</strong> be determined. As the systemhas not yet been fully implemented, experiments withthe chess BCI are not possible at the time of writing. Thesetup of experiments <strong>to</strong> determine the time <strong>to</strong> make a moveand move accuracy will be described here.Estimates of the results for the experiments are reported insection 8.7.1 Time per moveIn a visual P300 BCI, the time needed <strong>to</strong> select a field onthe board can be calculated. The following formula may beused <strong>to</strong> determine the time needed <strong>to</strong> select a field:t select = overhead + #trials × ITIThe number of trials can be varied freely. The inter-trialinterval (ITI) is limited by the inter-stimulus interval, thenumber of stimuli per trial and the analysis epoch (see section3.2.Normally, a move can be selected in 2 × t select . However,undo mechanisms may increase time required per move, asusers may correct input errors. Correcting a start positionerror using the ‘cancel start position’ but<strong>to</strong>n in the destinationselecting interface (see section 6.4.1), or accidentallyselecting this but<strong>to</strong>n, takes an additional 2×t select . Selectingan invalid positions costs 1 × t select .The input time per move may be measured as follows. Asubject plays chess games using several parameter configurations.For each move, the intent <strong>to</strong> make a move canbe signalled by overt means <strong>to</strong> the opera<strong>to</strong>r. A locked-inpatient may use a vertical eye movement pattern or blinkingfor this [BGR79]. The move selection time ends whendestination field selection has finished.7.2 Move accuracyField selection accuracy cannot be determined in the samemanner as field selection time, because it relies on the subject’sP300 response strength. Due <strong>to</strong> the undo mechanism,move selection errors are essentially reduced <strong>to</strong> the errorsmade in the destination selection procedure.There are two types of errors for this application: input errors() and move selection errors ( ).selected fields selected moveserrorsmove errorsInput errors may lead <strong>to</strong> move selection errors.The error rates can be measured during the same experimentwhich measures the time needed per move. The subjecthas <strong>to</strong> report errors <strong>to</strong> the opera<strong>to</strong>r <strong>to</strong> allow errors <strong>to</strong> bemeasured. The subject should do this immediately afterthe move selection (in the opponent’s time) in order not <strong>to</strong>disturb the move input process. For a locked-in subject, apro<strong>to</strong>col needs <strong>to</strong> be established <strong>to</strong> report errors, similar <strong>to</strong>how the time of intent <strong>to</strong> move is determined in the part ofthe experiment that measures move time.


8. EVALUATION8.1 Time per moveThe P300 row/column speller [DSW00] can communicate4.3 items per minute from a grid with 36 items at 95% accuracy.Using the conclusion of [AP03] that matrix size doesnot affect performance, the communication speed for thechess board is:4.3 items/min 36= log 2 36log 2 64 × 4.3 = 3.71 items/min 64Communicating a move would take a little more than 2 ×60= 32.35 seconds, not taking erroneous input or error3.71correction in<strong>to</strong> account. Errors should not significantly affectaverage move time, as the error rate is 5%.The cell speller claims <strong>to</strong> need 13 seconds <strong>to</strong> achieve 95%accuracy on the 36-cell board [GTW04]. At most 16 piecesmay be moved by the player, and a piece may move <strong>to</strong> atmost 27 positions (see section 5.3). Therefore, the start anddestination position may be ‘picked’ out of the 36 availablepositions <strong>to</strong> be flashed. Not taking thinking time in<strong>to</strong> account,selecting a move would take less than 2 × 13 = 26seconds. Because the number of selectable positions is generallyfar less than 36, performance should be enhanced evenfurther. How much performance is improved is unknown andmove-dependent.8.2 Move accuracyUsing the aforementioned error correction mechanisms andan accuracy level of 95% for position selection, the chanceof selecting the wrong start position is minimal. The chanceof selecting the wrong destination position is less than 5%,as the erroneous position selected may be an illegal positionif those are offered.9. DISCUSSION9.1 Time controlDue <strong>to</strong> the slow communication speed of current noninvasiveBCI technology, time control in chess games should bedisabled when playing with BCI-enabled players. At manychess <strong>to</strong>urnaments, time control is obliga<strong>to</strong>ry [dE]. Timecontrol is also often used in online chess games. It wouldbe unfair <strong>to</strong> reduce the available time because the input deviceis slower.It may be possible <strong>to</strong> design a technology similar <strong>to</strong> Timeseal.Timeseal is an application that records the player’sthinking time, so that network transmission time is not penalized[Kno95]. The move selection time should not besubtracted from the clock.9.2 Adaptive behaviourSo far, the BCI interface is minimally adapted <strong>to</strong> the currentstate of the board. The only information used is the currentpiece positions and where those pieces are allowed <strong>to</strong> move.The interface may be improved by incorporating knowledgeabout the move decision process.9.2.1 Leaking informationWhen incorporating game knowledge (obtained using artificialintelligence), care must be taken not <strong>to</strong> leak this information<strong>to</strong> the user. For example, the player may find outthat a move where a lot of thinking time is offered is moreimportant than a move where little time is offered. Exposingsuch information may reduce game entertainment andviolates internet chess server usage policies. To register atFICS (Free Internet <strong>Chess</strong> Server), one of the largest internetchess servers, you have <strong>to</strong> agree that “I will at no timereceive assistance during my games” [Ser].9.2.2 Move choice timeAs stated in section 5.6, the move thinking time should beadapted <strong>to</strong> the game state, the chess playing skills and thestyle of the player. However, care must be taken not <strong>to</strong>leak information about the current move <strong>to</strong> the player. Thesystem may use information about the his<strong>to</strong>ry of the game<strong>to</strong> adapt its behaviour, as this information is already knownby the player.The ‘need more time’ mechanism provides feedback on thechosen time quota. If the player needs more time, the chosenamount of time was not enough. The system should increasethe amount of time offered in order <strong>to</strong> reduce the numberof ‘need more time’ requests, improving efficiency. If theplayer does not need more time, the chosen amount of timewas sufficient or <strong>to</strong>o much <strong>to</strong> make a choice. The systemcan increase efficiency by gradually reducing the amount oftime offered. Gradually reducing the amount of time offeredmay train the chess player <strong>to</strong> increase decision speed.9.2.3 Move selectionFor move selection, the probability of moves over the gameboard could be used <strong>to</strong> enhance the interface. However,the issues related <strong>to</strong> leaking information apply even moredirectly. The system may not suggest moves, or flash expectedrows/columns or cells more or less often than others.Such behaviour would allow an observant player <strong>to</strong> discoverwhich moves the AI suggests.The AI move suggestions can, however, be used <strong>to</strong> reduceinput errors. As a rather extreme example, it is much morelikely that the player wants <strong>to</strong> make a move that checkmatesthe opponent than a move which gives away the queen. Theinformation could be used <strong>to</strong> nudge the P300 signal processing<strong>to</strong> increase the chance of actually selecting the rightmove when the player intends <strong>to</strong> make the right move.This approach only works when the moves found by the AIand the moves performed by the player match. A novice willalmost always play suboptimal moves, so when the signalprocessing procedure is instructed <strong>to</strong> prioritize good moves,accuracy is actually reduced. The same applies <strong>to</strong> playerswho make better moves than the AI [Rii06].To repair this problem, a comparison should be made betweenthe moves made by the player in the past and themoves that the AI suggested. The significance of the predictedmoves should accordingly be adapted. The movesmade by the player could also be used as a reference point<strong>to</strong> adjust chess engine parameters such as search depth.


10. CONCLUSIONA brain-computer interface <strong>to</strong> chess has been designed. Themoves for the chess game can be encoded by selecting asource position and a destination position. The source anddestination positions can be selected using a 8 × 8 P300speller.Considering the input device limitations, the system is expected<strong>to</strong> perform reasonably well. Not taking thinking timein<strong>to</strong> account, a player is expected <strong>to</strong> be able <strong>to</strong> select a moveat high accuracy in about 30 seconds, and probably evenless. Needing 30 seconds <strong>to</strong> make a move is a lot compared<strong>to</strong> doing it by hand, but the BCI may be the only inputdevice available <strong>to</strong> the user.As the system is designed based on existing hardware andsoftware, implementation of the system should be possiblein the short term.In the future, the chess system may be adapted <strong>to</strong> suppor<strong>to</strong>ther BCI input mechanisms. The player could, forexample, move a piece using 2-D continuous cursor control[FMWP04] or by making a sequence of binary choices[BKG + 00, BDK + 06]. The chess domain may also be used<strong>to</strong> experiment with new BCI input methods. It would beinteresting <strong>to</strong> test whether thinking about ‘pushing’ chesspieces <strong>to</strong> the desired position provides adequate EEG data<strong>to</strong> select a move.REFERENCES[AP03][BDK + 06][BGR79]Brendan Z. Allison and Jaime A. Pineda.ERPs evoked by different matrix sizes:implications for a brain-computer interface(BCI) system. IEEE Transactions onRehabilitation Engineering, 11(2):110–113,June 2003.Benjamin Blankertz, Guido Dornhege,Matthias Krauledat, Klaus-Robert Müller,Volker Kunzmann, Florian Losch, and GabrielCurio. The Berlin brain-computer interface:EEG-based communication without subjecttraining. IEEE Transactions on NeuralSystems and Rehabilitation Engineering,14(2):147–152, June 2006.G. Bauer, F. Gerstenbrand, and E. Rumpl.Varieties of the locked-in syndrome. Journal ofNeurology, 221(2):77–91, August 1979.[FD88]Assessing the speed of a P300-basedbrain-computer interface. IEEE Transactionson Rehabilitation Engineering, 8(2), June 2000.L.A. Farwell and E. Donchin. Talking off the<strong>to</strong>p of your head: <strong>to</strong>ward a mental prosthesisutilizing event-related brain potentials.Electroencephalography and ClinicalNeurophysiology, 70(6):510–523, April 1988.[FMWP04] G.E. Fabiani, D.J. McFarland, J.R. Wolpaw,and G. Pfurtscheller. Conversion of EEGactivity in<strong>to</strong> cursor movement by abrain-computer interface. IEEE Transactionson Rehabilitation Engineering, 12(3):331–338,June 2004.[GTW04][HB00][HD06]Cuntai Guan, Manoj Thulasidas, and JiankangWu. High performance P300 speller forbrain-computer interface. In IEEEInternational Workshop on BiomedicalCircuits & Systems, December 2004.Sara Ilstedt Hjelm and Carolina Browall.<strong>Brain</strong>ball – using brain activity for coolcompetition. In Proceedings of the First NordicConference on Human-<strong>Computer</strong> Interaction,Oc<strong>to</strong>ber 2000.Leigh R. Hochberg and John P. Donoghue.Sensors for brain-computer interfaces: optionsfor turning thought in<strong>to</strong> action. IEEEEngineering in Medicine and Biologymagazine, 25(5):32–38, September 2006.[HMMS05] Jennia Hizver, Jürgen Mellinger, DennisMcFarland, and Gerwin Schalk.BCI2000-compatible audio-visual P3 task.http://www.bci2000.org/downloads/doc/audvisp3.pdf (2007-06-11), December2005.[Inv04][Kno95]Samuel A. Inverso. Au<strong>to</strong>matic error recoveryusing P3 response verification for abrain-computer interface. Master’s thesis,Rochester Institute of Technology, July 2004.Klaus Knopper. Timeseal.http://www.unix-ag.uni-kl.de/∼soft/timeseal/timeseal.txt (2007-06-11), 1995.[BKG + 00]Niels Birbauber, Andrea Kübler, NimrGhanayim, Thilo Hinterberger, and JouriPerelmouter. The Thought Translation Device(TTD) for completely paralyzed patients.IEEE Transactions on RehabilitationEngineering, 8(2), June 2000.[LKF + 05]E. Lalor, S.P. Kelly, C. Finucane, R. Burke,R.B. Reilly, and G. McDarby. Steady-stateVEP-based brain-computer interface control inan immersive 3D gaming environment.EURASIP Journal on Applied SignalProcessing, 19:3156–3164, 2005.[dE][DSW00]Fédération Internationale des Échecs. FIDEhandbook: Time control.http://www.fide.com/official/handbook.asp?level=C08 (2007-06-11).Emmanuel Donchin, Kevin M. Spencer, andRanjith Wijesinghe. The mental prosthesis:[Man03a][Man03b]Tim Mann. About XBoard and WinBoard.http://www.tim-mann.org/xboard.html(2007-06-11), 2003.Tim Mann. <strong>Chess</strong> engine communicationpro<strong>to</strong>col. http://www.tim-mann.org/xboard/engine-intf.html (2007-06-11), 2003.


[MBF + 07][MS06][OR93][PG86][Rii06][Ser][SMH + 04]S.G. Mason, A. Bashashati, M. Fa<strong>to</strong>urechi,K.F. Navarro, and G.E. Birch. Acomprehensive survey of brain interfacetechnology designs. Annals of BiomedicalEngineering, 35(2):137–169, February 2007.Jürgen Mellinger and Gerwin Schalk. BCI2000external application interface.http://www.bci2000.org/downloads/doc/app connection.pdf (2007-06-11),February 2006.J. Oikarinen and D. Reed. Internet Relay Chatpro<strong>to</strong>col. RFC 1459, May 1993. Updated byRFCs 2810, 2811, 2812, 2813.J.R. Patterson and M. Grabois. Locked-insyndrome: a review of 139 cases. Stroke(American Heart Association), 17(4):758–764,July 1986.Søren Riis. Review of “<strong>Computer</strong> analysis ofworld chess champions”.http://www.chessbase.com/newsdetail.asp?newsid=3465 (2007-06-11),November 2006.Free Internet <strong>Chess</strong> Server. FICS registrationform. http://www.freechess.org/cgi-bin/Register/FICS register.cgi (2007-06-11).Gerwin Schalk, Dennis J. McFarland, ThiloHinterberger, Niels Birbaumer, andJonathan R. Wolpaw. BCI2000: A[SMK + 05]general-purpose brain-computer interface(BCI) system. IEEE Transactions onBiomedical Engineering, 51(6), June 2004.Gerwin Schalk, Dennis McFarland, DeanKrusienski, Bill Sarnacki, Eric Sellers, JürgenMellinger, Chris<strong>to</strong>ph Guger, and FeboCincotti. 1st BCI2000 workshop.http://www.bci2000.org/downloads/doc/BCI2000 Workshop Handout lo-res.pdf(2007-06-11), June 2005.[WBH + 00] Jonathan R. Wolpaw, Niels Birbaumer,William J. Heetderks, Dennis J. McFarland,P. Hunter Peckham, Gerwin Schalk,Emmanuel Donchin, Louis A. Quatrano,Charles J. Robinson, and Theresa M.Vaughan. <strong>Brain</strong>-computer interface technology:a review of the first international meeting.IEEE Transactions on RehabilitationEngineering, 8(2):164–173, June 2000.[Wika][Wikb][Wil06]Wikipedia. Electroencephalography.http://en.wikipedia.org/wiki/Electroencephalography (2007-06-11).Wikipedia. P300 (neuroscience).http://en.wikipedia.org/wiki/P300 (Neuroscience) (2007-06-11).Seb Wills. <strong>Brain</strong> Dasher - controlling Dasherthrough BCI.http://www.inference.phy.cam.ac.uk/saw27/dasher/bci/ (2007-06-11), November2006.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!