neomimiz Posted April 28, 2021 Share Posted April 28, 2021 Hi, I have a few questions about the eye tracker output which I was not able to deduce about from the sdk or the unity c# and sample example. I would greatly appreciated your feedback regarding the following topics: Validity of the data: I am currently using this condition (SRanipal_Eye_Framework.Status == SRanipal_Eye_Framework.FrameworkStatus.WORKING) within the update loop before colleting eyes data. Later, I am using the bitmask value (verboseData.left.eye_data_validata_bit_mask) as an indication of data validity (I use only frames in which the bitmask equals 31, as described in- https://www.frontiersin.org/articles/10.3389/fpsyt.2020.572938/full ). Yet, in some cases I still get values that seems incorrect. Are these two conditions the only conditions needed to ensure data validity? What is the meaning of the bitmask value? Calculation of visual angle: I will be glad if you confirm that I understand the eye tracker output and the necessary conversions correctly: In each frame I receive the normalized direction in x , y, z (verboseData.left.gaze_direction_normalized); In order to retrieve the horizontal angle and vertical angle between the eye and the lens, I use: Horizontal angle= arctan (Norm_dir_x/Norm_dir_z) Vertical_angle= arctan (Norm_dir_y/Norm_dir_z); Calculation of screen position in pixels: It is mentioned that the field of view is 110 deg and the the pixel resolution is 1440 x 1600 per lens (https://developer.vive.com/resources/vive-sense/hardware-guide/vive-pro-eye-specs-user-guide/). Does that mean the maximal horizontal angle is 110 deg and that the maximal vertical angle is 110 deg? Does that mean that in the horizontal axis the visual angle pixel ratio is 720 pixels /55 deg= 13.09? While in the vertical it is 800 pixels /55 deg= 14.5? Gaze origin and pupil position: As far as I Understand these variables are not necessary in order to find and analyze eyes position. Is there a specific reason why these are provided? Are they used for calibration or for a different function? Thank you in advance for your help and feedback! Neomi Link to comment Share on other sites More sharing options...
michael_wang Posted May 4, 2021 Share Posted May 4, 2021 Hi, @neomimiz Validity of the data: If I understand correctly, the following shows how it works, though I am not sure if this is correct. Enumerator Binary digit if valid Decimal digit if valid SINGLE_EYE_DATA_GAZE_ORIGIN_VALIDITY 00001 1 SINGLE_EYE_DATA_GAZE_DIRECTION_VALIDITY 00010 2 SINGLE_EYE_DATA_PUPIL_DIAMETER_VALIDITY 00100 4 SINGLE_EYE_DATA_EYE_OPENNESS_VALIDITY 01000 8 SINGLE_EYE_DATA_PUPIL_POSITION_IN_SENSOR_AREA_VALIDITY 10000 16 Calculation of visual angle: Are you asking how to convert a GAZE vector into a rotated vector? we have sample code for this In SDK unity and unreal sample plugin AvartarSRanipal_v2.cs line:189 Gaze origin and pupil position: These are the values generated by Tobi, I think they should be used to calculate the gaze vector 1 Link to comment Share on other sites More sharing options...
neomimiz Posted May 11, 2021 Author Share Posted May 11, 2021 Thank you! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now