Jump to content

Field of view and data validity


Recommended Posts

 

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

Hi, @neomimiz

Validity of the data: 

image.png.72efad528c0d1ca7315996383c5f1480.png

 

image.png.a408ceaf16047e736ba89c2354cf653e.png

 

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

  • Like 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...