I’m setting up a series of experiments that will be run in one session (save for maybe some short break in between) at a single computer, with eye tracking. To avoid annoying participants it would be best if the calibration was done once, except if something happens (like if the participant moves the chair or something), meaning the calibration needs to repeated.
The best strategy here is to calibrate at the beginning of the session (using the normal idea of an experimental session, referring to the overall visit for the day), and then then check the validity of the calibration between trials (i.e. with multiple trials making up your session).
Only actually re-calibrate if the calibration no longer appears to be valid. Calibrating too often can itself lead to problems: only re-do it if it is actually necessary.
Ideally record the calibration checks so you have an objective record of the calibration quality throughout the session (e.g. before each trial, show some stimuli at a succession of known locations and have the subject fixate each in true). This means that each trial of recorded data has an associated record of the calibration quality.
So it really sounds like it should be possible to save the eye tracker calibration data. But how do you actually get a hold of it and store it? After running this:
return_value = my_eye_tracker.runSetupProcedure()
return_value simply has a value of
True, meaning the calibration was successful. Which is good to know, of course. But this means that the
runSetupProcedure doesn’t return any actual results/data from the calibration. I’ve tried looking at the other methods that
my_eye_tracker (an ‘ioHubDeviceView’, apparently) has, but none of them are related to getting the calibration data as far as I understand. I’ve read the PsychoPy book’s chapter on eye tracking, but I didn’t find a description of retrieving/storing calibration data there, either. If anyone can help me out with finding the correct way to get at the calibration data I would be very grateful