Tobii Pro SDK Python API
hmd_calibration.py
1 def execute(eyetracker):
2  if eyetracker is None:
3  return
4 
5  # <BeginExample>
6  import time
7  import tobii_research as tr
8 
9  calibration = tr.HMDBasedCalibration(eyetracker)
10 
11  # Enter calibration mode.
12  calibration.enter_calibration_mode()
13  print("Entered calibration mode for eye tracker with serial number {0}.".format(eyetracker.serial_number))
14 
15  # Define the points on the HMD we should calibrate at.
16  # The coordinates are are in the HMD coordinate system.
17  points_to_calibrate = [(0.0, 0.0, 100.0), (20.0, 0.0, 100.0), (0.0, 20.0, 100.0)]
18 
19  for point in points_to_calibrate:
20  print("Show a point on the HMD at {0}.".format(point))
21 
22  # Wait a little for user to focus.
23  time.sleep(0.7)
24 
25  print("Collecting data at {0}.".format(point))
26  if calibration.collect_data(point[0], point[1], point[2]) != tr.CALIBRATION_STATUS_SUCCESS:
27  # Try again if it didn't go well the first time.
28  # Not all eye tracker models will fail at this point, but instead fail on ComputeAndApply.
29  calibration.collect_data(point[0], point[1], point[2])
30 
31  print("Computing and applying calibration.")
32  calibration_result = calibration.compute_and_apply()
33  print("Compute and apply returned {0} and collected at {1} points.".
34  format(calibration_result.status, len(calibration_result.calibration_points)))
35 
36  # The calibration is done. Leave calibration mode.
37  calibration.leave_calibration_mode()
38 
39  print("Left calibration mode.")
40  # <EndExample>