cursor speed

Forum for discussion on different user applications
Locked
paolobernardis
Posts: 40
Joined: 02 Jul 2010, 04:51

cursor speed

Post by paolobernardis » 07 Jun 2012, 09:43

Dear all,

we were wondering if it is possible to know the maximal cursor speed that could be reached in the "cursor task application" (i.e. the time the cursor will take to cover the whole screen lenght), and if it possible to modify this value, or otherwise if it is a fixed configuration parameter of the application.

Thank you so much in advance,
kind regards

Paolo, Marcello and Joanna

mellinger
Posts: 1210
Joined: 12 Feb 2003, 11:06

Re: cursor speed

Post by mellinger » 07 Jun 2012, 14:22

Hi,

the FeedbackDuration parameter of the CursorTask application does exactly that: It chooses cursor speed such that an average trial will have the specified duration. This is possible because the control signal is normalized to be zero mean, and unit variance. When you don't use the Normalizer, then the FeedbackDuration parameter will still be inversely proportional to cursor speed.

Best regards,
Juergen

paolobernardis
Posts: 40
Joined: 02 Jul 2010, 04:51

Re: cursor speed

Post by paolobernardis » 08 Jun 2012, 04:38

Hi Juergen,

first of all I would like to thank you for your quick reply. Actually we understood that if we increase the Feedback duration parameter we will obtain a decreased cursor speed, and vice versa. But what about if we want to quantify this speed? I mean, if we mantain a fixed Feedback duration (let's say, for example, 3 secs ), in these 3 seconds the cursor could move from the left bottom of the screen to the right one once, twice or even more (depending on the power of the brain signal BCI2000 receives) if it doesn't touch the target, right? If so, there is a mathematical formula that links Feedback duration, incoming brain signal amplitude and speed of the cursor?
Thanks again,

kind regards.

mellinger
Posts: 1210
Joined: 12 Feb 2003, 11:06

Re: cursor speed

Post by mellinger » 08 Jun 2012, 07:41

From http://www.bci2000.org/wiki/index.php/U ... ckDuration:
This parameter is not a hard limit to feedback duration but determines cursor speed such that, for a normalized control signal, cursor movement will take the specified time from the cursor's starting point to the screen's edge. Feedback trials will typically have this duration, provided that the cursor starts at the center of the screen, targets are located at the screen's edges, and ignoring cursor and target width.
"normalized control signal": mean = 0, variance = 1 -> in the ideal case, the control signal will be constant +1 for up trials, and -1 for down trials.
"cursor movement will take FeedbackDuration from center to edge": x(0) = screen width/2, x(FeedbackDuration) = screen width -> v_0 = (screen width)/(2*FeedbackDuration).

Thus:
v = v_0 * (control signal) = (control signal) * (screen width) / ( 2*FeedbackDuration)

Hope this helps,
Juergen

paolobernardis
Posts: 40
Joined: 02 Jul 2010, 04:51

Re: cursor speed

Post by paolobernardis » 20 Jul 2012, 11:47

Dear all,
thank you, actually it helped a lot! :D
now we are conducting again experiments, but we observed a strange behavior from the cursor task. Basically we run the calibration session for right movement and we than conducted offline analysis. We observed (both from the 'Feature plot' and the 'spectra plot') a great ERD at channel 5 (C3), at 10 and 12 Hz. So, in order to make the cursor hit a target positioned on the right part of the screen, we filled the 'Linear classifier matrix' of the Cursor Task parameter file with a single raw:

channel frequency output channel weight
5 10Hz 1 -1

The cursor behaves like this: MOTOR IMAGERY --> slow, marginal movement to the LEFT.
RELAX --> huge movement to the LEFT.

So we think we made some mistakes about weight, and we change it:

5 9Hz 1 1

And the new behavior is the following: MOTOR IMAGERY --> slow, marginal movement to the RIGHT
RELAX --> huge movement to the right.

Basically, there is a great difference between task and relax, but we observed more movement in the relaxed situation. Did we make some mistakes? Do you have some suggestion?
Thank you again,
best wishes.

boulay
Posts: 382
Joined: 25 Dec 2011, 21:14

Re: cursor speed

Post by boulay » 22 Jul 2012, 21:43

Are you using the normalizer? And if so, is mean subtraction enabled?

paolobernardis
Posts: 40
Joined: 02 Jul 2010, 04:51

Re: cursor speed

Post by paolobernardis » 24 Jul 2012, 04:35

Dear Boulay,
our normalizer window of the parameters file is filled with these values:

offsets 0 0
gains 1 1
adaptation 0 0
buffer conditions (Feedback)&&(TargetCode==1)
(Feedback)&&(TargetCode==2)
Buffer lenght 9s
Update trigger (Feedback==0)

thank you again.

boulay
Posts: 382
Joined: 25 Dec 2011, 21:14

Re: cursor speed

Post by boulay » 24 Jul 2012, 21:46

If you set adaptation to "2 2" then that should fix your problem.

The normalizer is better explained in the Wiki:
http://www.bci2000.org/wiki/index.php/U ... Normalizer

Briefly, the cursor feedback application understands 0 as no movement, +X as rightward movement, and -X as leftward movement. Right now your application is only sending positive values (or negative if the linear classifier weight is negative) because spectral amplitude is always positive. The normalizer subtracts a reference value (and optionally divides by another reference value) from the signal sent to the cursor feedback application so that the "mean" of the signal is around 0. Subsequent modulations in spectral amplitude should translate to deviations from 0, both positive and negative, leading to rightward and leftward movement, respectively.

Please read the page linked above because configuring the normalizer can influence how your subjects learn the task and therefore whether or not they can achieve accurate control.

Locked

Who is online

Users browsing this forum: No registered users and 12 guests