cursor movement application

Forum for discussion on different user applications
Locked
Yueqing Li
Posts: 51
Joined: 08 May 2007, 16:41

cursor movement application

Post by Yueqing Li » 21 Jan 2010, 15:27

Hi,

Does BCI2000 have 2D cursor movement application? I can only find the 1D cursor movement? Thanks a lot.

jawilson
Posts: 109
Joined: 28 Feb 2005, 16:31

Post by jawilson » 25 Jan 2010, 09:30

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

Yueqing Li
Posts: 51
Joined: 08 May 2007, 16:41

Post by Yueqing Li » 28 Jan 2010, 16:16

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.

jawilson
Posts: 109
Joined: 28 Feb 2005, 16:31

Post by jawilson » 28 Jan 2010, 16:42

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

Yueqing Li
Posts: 51
Joined: 08 May 2007, 16:41

Post by Yueqing Li » 01 Feb 2010, 16:48

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

jawilson
Posts: 109
Joined: 28 Feb 2005, 16:31

Post by jawilson » 02 Feb 2010, 08:26

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.

dyd1985
Posts: 23
Joined: 13 May 2010, 11:19

Initial Normalizer parameters

Post by dyd1985 » 30 Jun 2010, 11:36

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

gschalk
Posts: 615
Joined: 28 Jan 2003, 12:37

Normalizer ...

Post by gschalk » 30 Jun 2010, 12:48

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

Locked

Who is online

Users browsing this forum: No registered users and 21 guests