Page 1 of 1
cursor movement application
Posted: 21 Jan 2010, 15:27
by Yueqing Li
Hi,
Does BCI2000 have 2D cursor movement application? I can only find the 1D cursor movement? Thanks a lot.
Posted: 25 Jan 2010, 09:30
by jawilson
The CursorTask application is a 3D application. The cursor will move in the 3 dimensions based on the output channel of the linear classifier (see
http://www.bci2000.org/wiki/index.php/U ... Classifier), which is the third column of the linear classifier matrix. Therefore, to make a particular feature move the cursor horizontally, set the output channel to "1"; to make it move vertically, set it to "2", and to make it move into/out of the screen, set it to "3".
Let us know if you need additional information.
Adam
Posted: 28 Jan 2010, 16:16
by Yueqing Li
Thank you very much, Adam. It really helps.
I have another question of the cursor movement application. For example, if the motor imagery of right hand movement is the control signal moving the cursor up, what exactly controls the speed of cursor's moving up? Is that the amplitude of the corresponding channel (C3 here)?
The second question is: what is the relation between the magnitude of the control signal and the speed of the cursor's corresponding movement? Is it linear?
I am looking for some technical paper describing the signal processing in cursor movement application. But, it seems there are not many like P300 application. Any hint from you will be appreciated very much.
Thanks for all your help.
Posted: 28 Jan 2010, 16:42
by jawilson
For example, if the motor imagery of right hand movement is the control signal moving the cursor up, what exactly controls the speed of cursor's moving up? Is that the amplitude of the corresponding channel (C3 here)?
It depends on the settings used by the Normalizer (see
http://www.bci2000.org/wiki/index.php/U ... Normalizer). Typically, you want to turn Adaptation on, e.g., by settings the Adaptation parameter to "2 2 0"; this turns on adaptation for channels 1 and 2, but not 3. Similarly, if you are only using horizontal movement, set it to "2 0 0".
Adaptation uses the FeedbackDuration to set the cursor speed (see
http://www.bci2000.org/wiki/index.php/U ... ckDuration). So, if you seet FeedbackDuration to 3 seconds, this means that it should take the cursor 3 seconds to cross the distance of the screen. Then, the normalizer adaptively figures out what the gain and offset should be, based on the amplitude of your features, to make this happen. This actually answers the 2nd question: it is a linear relationship, where the output (cursor velocity, V) is:
V = (X- a)*b
where X is the input signal, a is the Normalizer offset, and b is the Normalizer gain.
For more information, check out the wiki entries on these.
Adam
Posted: 01 Feb 2010, 16:48
by Yueqing Li
jawilson wrote:The CursorTask application is a 3D application. The cursor will move in the 3 dimensions based on the output channel of the linear classifier (see
http://www.bci2000.org/wiki/index.php/U ... Classifier), which is the third column of the linear classifier matrix. Therefore, to make a particular feature move the cursor horizontally, set the output channel to "1"; to make it move vertically, set it to "2", and to make it move into/out of the screen, set it to "3".
Let us know if you need additional information.
Adam
Hello, Adam! I have some doubts about the mechanism of 3D application.
1. As you said, 3 different features could be chosen and set 3 different output channels (i.e., 1, 2 and 3). For each dimension, I think 2 distinct features will be needed as the control signal, since there are two directions to control. Just as in the tutorial, motor imagery is used to move the cursor up and relaxation to move the cursor down. Then, we may need 6 different features in the 3D application. Is the above thought correct?
2. Is it possible for the participant to move the cursor only without any original speed? If it is yes, how can I realize that in BCI2000. As far as I know, the FeedbackDuration is the only parameter to control the cursor speed.
Best.
Yueqing
Posted: 02 Feb 2010, 08:26
by jawilson
1. As you said, 3 different features could be chosen and set 3 different output channels (i.e., 1, 2 and 3). For each dimension, I think 2 distinct features will be needed as the control signal, since there are two directions to control. Just as in the tutorial, motor imagery is used to move the cursor up and relaxation to move the cursor down. Then, we may need 6 different features in the 3D application. Is the above thought correct?
Actually, it is possible with only 3 signals, although 6 would be ideal. For example, you could set up BCI2000 so that the only horizontal control signal is C3, corresponding to right-hand movement. The adaptive system will figure out what you are doing for the right target (motor imagery), and for the left target (rest); therefore, if you do no motor imagery, the cursor will move left, due to the offset in the normalizer. Similarly, for vertical movement, you would setup Cz for down movement, and rest for up movement. This is not ideal, but it is probably pushing the capabilities of EEG to accomplish good 3D control, although it can be done with MUCH practice.
2. Is it possible for the participant to move the cursor only without any original speed? If it is yes, how can I realize that in BCI2000. As far as I know, the FeedbackDuration is the only parameter to control the cursor speed.
Yes, the FeedbackDuration is the only way to control the speed. In the first version of BCI2000, you could set the pixels/s as a parameter, but that no longer exists, unfortunately. The math to figure out what the FeedbackDuration should be for a particular pixels/s is not very difficult, though.
Initial Normalizer parameters
Posted: 30 Jun 2010, 11:36
by dyd1985
Hello,
This post has been really useful to me, thanks a lot.
Actually I have another question to ask, I understood the role of the Normalizer in the adaptation process, but how should I set Normalizer offset and gain at the beginning of a new experiment?
I suppose that I should evaluate these parameters from subject's EEG channels. Is that correct? Can you suggest me some methods to obtain those parameters?
Thank you very much
Alessandro
Normalizer ...
Posted: 30 Jun 2010, 12:48
by gschalk
Alessandro,
Regardless of the initial values of the gain and offset, if the adaptation in the normalizer is turned on, these will be changed to reflect the statistics fo the subject's EEG. At the end of the run, these parameters will be updated and sent to the Operator. Thus, if you press Set Config and start a new run, these updated values will be used in the new experiment. You are then also free to simply save the parameter file and use it as the basis for a new experiment (e.g., on a different day) so that you are already in the right ball park with the offset and gain values.
Gerv