Contributions:ForagingTask

Synopsis
This task presents the participant with a matrix of dots to forage. The colors of the dots have different value, and the only way the participant knows the difference is by listening to the feedback given after harvesting the dot. Over time, the participant will learn which type will give them the highest reward, and will optimize each trial. After each trial, the participant is also shown their previous trial's score to help with their learning as well.
This task can easily be used in BCI2000, and has many adjustable settings to allow for the perfectly designed experiment.
Versioning
Authors
Max Marcus
Will Engelhardt (engelhardt@neurotechcenter.org)
Limitations
Audio Stimuli
The audio currently must have a specific format. It must be a .wav file. It must be in the format of <mean>-<number (0-9)>.wav. There must be 10 types of each mean, which is the 0-9 number. The mean corresponds to the amount of sound/reward in the audio file, and the files will be chosen based on the parameter ForagingStimuliDistribution, where you give the mean and standard deviation.
Parameters
Foraging
| ForagingColumns | Number of columns of dots |
| ForagingRows | Number of rows of dots |
| MinDotRadius | Normal pixel size of the radius of each dot |
| MaxDotRadius | Maximum pixel size of the dot when increasing upon dwelling |
| DwellVisualAngle | Degrees of visual angle that triggers dwell. Uses Eye-tracker's state of distance to screen to create pixel size |
| ForagingStimuliDirectory | Folder that contains the audio stimuli. Must be in format specified in Audio Stimuli |
| ForagingStimuliDistribution | Mean and standard deviation of audio files for each type of stimulus |
| ForagingStimuliColors | List of colors to be used |
| ColorsInATrial | Number of colors to show per trial. Cannot be greater than the size of the given color list |
| ForagingTrialTime | Length of time that subject gets to forage |
| DwellTime | Duration that subject has to dwell on a dot to receive reward |
| InterTrialTime | Length of time between trials |
| ScoreFeedbackTime | Length of time to show user previous round's score |
| Trials | Number of trials in a run |
Fixation
| FixationTime | Time to fixate |
| FixationHoldTime | Time to hold fixation before starting trial (once dots have appeared) |
| FixationDotRadius | Radius of fixation dot |
| FixationVisualAngle | Degrees of visual angle for fixation dot to be held |
CursorControl
| CursorType | Choose from Eye-tracker, mouse, or joystick. Meant to be used with an eye-tracker, the mouse and joystick are currently not optimized and are just used for debugging. |
| ShowCursor | Enable to show the participant the cursor on their screen |
| CursorColor | Color of the cursor (if shown) |
| CursorSize | CursorSize (if shown) |
| UseVelocity | Enable to control the cursor by adding a velocity to it. Otherwise, the cursor is set with position. |
ProgressBar
The progress bar lets the experimenter know how much time has passed and how much is left. These parameters allow for customization of the bar.
PhotoDiodePatch
A photodiode patch is for use with a photodiode, which measures if the light input is below or above a threshold. Used for measuring the exact time ofthe screen presentation. These parameters allow for customization of the location of the patch, the shape, and the (in)active colors.
States
All states are integers.
| CursorPosX | The X position of the cursor, between 0 (left) and 1000 (right) |
| CursorPosY | The Y position of the cursor, between 0 (top) and 1000 (bottom) |
| TargetX | Column of the target that the cursor is in |
| TargetY | Row of the target that the cursor is in |
| TargetType | Each color is a type. Type of the target that the cursor is closest to |
| Score | Each round's score |
| TrialPhase | Phase of trial we are currently in
|
| Trial | Trial number (1 - number of trials) |
| Dwelling | Number of blocks that have occurred when the participant has been dwelling on the dot. Once it gets above the time set by #DwellTime, the reward is given and it goes back to 0 |
| DotExists | Describes which dots exist in a trial. Each target is stored in a bit. The order starts top left, goes through the row, then goes to the next row. For example, in a trial with 3 rows and 4 columns, the starting value will be 2^12 = 4096. If the top left target gets acquired, it no longer exists so the first bit will be flipped: 4096 - 2^0 = 4095. If the bottom right one gets chosen next, the 12th bit will be flipped: 4095 - 2^11 = 2047. This way, when decoded, you can be certain about the dot matrix after the experiment. |