HMD Calibration Sample

Tobii = EyeTrackingOperations();

eyetracker_address = 'Address of the desired device';
% Example:
% eyetracker_address = 'tobii-ttp://VRG02-010107022072';

try
    eyetracker = Tobii.get_eyetracker(eyetracker_address);
catch ME
    if (strcmp(ME.identifier,'EyeTrackerGet:error204'))
        fprintf('Unable to connect eye tracker.\n');
        return
    end
end

try
    calib = HMDBasedCalibration(eyetracker);
catch ME
    fprintf(ME.message)
    return;
end
calib.enter_calibration_mode()

points_to_collect = [[0,0,100];[0,20,100];[20,0,100]];

% When collecting data a point should be presented on the HMD in the
% appropriate position.
for i=1:size(points_to_collect,1)
    collect_result = calib.collect_data(points_to_collect(i,:));
    fprintf('Point [%.2f,%.2f,%2f] Collect Result: %s\n',points_to_collect(i,:),string(collect_result));
end

calibration_result = calib.compute_and_apply();
fprintf('Calibration Status: %s\n',char(calibration_result.Status));

if calibration_result.Status == CalibrationStatus.Success
        % Add when we have a calibration result.
end

calib.leave_calibration_mode()