P300 speller : Stimulations, Files and stuff

About the GUI application to design signal processing pipelines
Post Reply
lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

P300 speller : Stimulations, Files and stuff

Post by lbonnet »

These questions have been raised by a recent discussion we had with one of our users.
As it may benefit to others, here is the transcription :

Laurent-
I played with the openvibe designer (absolutely great tool!!!) and, after checking the documentation and creating some simple scenarios myself, I tried to get the P300 speller scenario going. I managed to write data into an *.ov file, but was a bit confused about the "Keyboard stimulator" box. Am I right in assuming that the event codes written into the *.ov file are somehow defined here? And, during running the p300-speller-1-aquisition secenario, do I have to interact with this box somehow or just ignore it, like the raw data window?
I did not manage to open the recorded *.ov file with the p300-speller-2-train-classifier scenario, or a simple new scenario just displaying the signals opened by the generic stream reader. Given that a simple generic stream reader, just displaying the signal recorded, not worked, could it be that the file is corrupt, maybe because during acquisition the acquisition server had disconnected and I had lost a few seconds of data? How could I check this?
If I don't change anything in the first p300 scenario, does the second p300 speller scnearario know the event codes for callibration
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: P300 speller : Stimulations and Keyboard Stimulator

Post by lbonnet »

I played with the openvibe designer (absolutely great tool!!!) and, after checking the documentation and creating some simple scenarios myself, I tried to get the P300 speller scenario going. I managed to write data into an *.ov file, but was a bit confused about the "Keyboard stimulator" box. Am I right in assuming that the event codes written into the *.ov file are somehow defined here? And, during running the p300-speller-1-aquisition secenario, do I have to interact with this box somehow or just ignore it, like the raw data window?
The best to start, is looking at the documentation of the box on the dedicated section (press "F1" on a box to open your web browser :)). The keyboard stimulator sends stimulation codes on its output when the user presses a given key on the keyboard while focus is on the stimulator window.

In the p300-speller-1-aquisition scenario this box has been renamed into "press 'a' to start" (which is also mentionned in the scenario comments).
When playing the scenario, the stimulator should pop-up. As you will see, selecting this window and pressing 'a' will trigger the stimulation OVTK_StimulationId_Label_01 and releasing the key will trigger OVTK_StimulationId_Label_00. The box is connected to the P300 Speller Stimulator box, which "start stimulation" setting is set to OVTK_StimulationId_Label_00.
Thus, when the box will receive the stimulation OVTK_StimulationId_Label_00 from the keyboard stimulator, the flashing sequence will start.

Every stimulation in the stream received by the Generic Stream Writer will be written in the .ov file produced.


Hope this helps!
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: P300 speller : Stimulations, Files and stuff

Post by lbonnet »

I did not manage to open the recorded *.ov file with the p300-speller-2-train-classifier scenario, or a simple new scenario just displaying the signals opened by the generic stream reader. Given that a simple generic stream reader, just displaying the signal recorded, not worked, could it be that the file is corrupt, maybe because during acquisition the acquisition server had disconnected and I had lost a few seconds of data? How could I check this?
If the acquisition session was OK (no error messages, the file is produced and its size is superior to few ko), you should be able to use a Generic Stream writer and a signal Display to show the EEG and stims. Maybe your file reader is not configured (as its name suggests, the file handles "generic" streams, which means you have to set the outputs so they match the actual structure of the streams stored in the file. For example, you can use the Generic Stream Writer box in the p300-speller-2-train-classifier scenario as it should match the file structure given by the acquisition scenario.

If the acquisition dropped during the session, the acquisition client box has been disconnected. There is no automatic recovery, so the signal stream was simply cut beyond repair.
I tested by disconnecting the Acquisition Server during a session. A correct file was indeed produced, and I could display the EEG afterward... Maybe someting else happened in your case.
What the console said ? no warning or error message ?

Example :

Code: Select all

[WARNING] At time 167.281 sec <Box algorithm::Acquisition client> Could not receive memory buffer size
[WARNING] Box algorithm <Acquisition client> has been deactivated because process phase returned bad status
Means the acquisition client box has been disconnected from the server :)

If the .ov file produced is 100 ko sized, there is definitely a problem :)

Laurent
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: P300 speller : Stimulations, Files and stuff

Post by lbonnet »

If I don't change anything in the first p300 scenario, does the second p300 speller scnearario know the event codes for callibration
The stimulation codes used in the first scenario are given by the P300 Speller stimulator (codes for the flashs on row and columns) and the Lua Stimulator (which letter is a target and which one is a non-target). These codes are the very same used by the training scenarios in the stimulation based epoching (to extract the exact time-windows for each event) or Classifier trainer.

Generally speaking, when designing your BCI with OpenViBE
- choose the stimulations codes you will need (instruction, events, etc.)
- make sure you record the stimulation codes in the training file
- use these stim codes in the training scenario

Laurent-
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

Post Reply