Home Forums Unity SDK Extract Eye Tracking data from Vive Pro Eye (TobiiXR SDK)

Viewing 15 posts - 1 through 15 (of 20 total)
  • Author
    Posts
  • #19241
    TesiRealter
    Participant

    Hello,
    I’ve just started using the THC Vive Pro Eye for a research project in Unity.
    I have TobiiXR SDK but I don’t know how to extract data from the integrated Eye Tracker. I have already contacted the Tobii Pro Support but they could not help me.
    I have also read topics in this forum but I didn’t find what I was looking for.
    Can someone help me explaining how to collect eye tracker data, please?
    Thank you,
    Sara

    #19256
    Thomas Anquetil
    Participant

    Hello,

    What do you mean exactly by extract data ? What are you precisely looking for ?

    I’d recommend you to have a look at this page : TobiiXR Core API. It is a good starting point to work with. But we’d need you to be a little more specific about your needs !

    Regards,
    Thomas Anquetil

    #19257
    TesiRealter
    Participant

    Hello,
    Thanks for your reply. I’ve already look at TobiiXR Core API but unfortunately I didn’t find a solution.

    The data I’m looking for are the eye movements raw data that the Eye Tracker should record.

    Another option is to find the “scan-path”, which should also contain the eye movements data, but I don’t know how to have acces to this.

    Is it possible to save the stream video, acquired during an experiment, so that I can apply some post-processing techniques?

    Thank you,
    Sara

    #19261
    Grant [Tobii]
    Keymaster

    Hi @tesirealterm, thanks for your query. I am afraid that the ‘raw’ data is not exposed within the XR SDK, however the gaze location and direction are fully available.

    We discuss the means to obtain the direction vector of the gaze ray (and origin) @ https://vr.tobii.com/sdk/develop/unity/documentation/api-reference/core/

    TobiiXR.GetEyeTrackingData(TobiiXR_TrackingSpace)

    Where we include the sample code:

    private void Update ()
    {
        // Get eye tracking data in world space
        var eyeTrackingData = TobiiXR.GetEyeTrackingData(TobiiXR_TrackingSpace.World);
    
        // Check if gaze ray is valid
        if(eyeTrackingData.GazeRay.IsValid)
        {
            // The origin of the gaze ray is a 3D point
            var rayOrigin = eyeTrackingData.GazeRay.Origin;
    
            // The direction of the gaze ray is a normalized direction vector
            var rayDirection = eyeTrackingData.GazeRay.Direction;
        }
    
        // For social use cases, data in local space may be easier to work with
        var eyeTrackingDataLocal = TobiiXR.GetEyeTrackingData(TobiiXR_TrackingSpace.Local);
    
        // The EyeBlinking bool is true when the eye is closed
        var isLeftEyeBlinking = eyeTrackingDataLocal.IsLeftEyeBlinking;
        var isRightEyeBlinking = eyeTrackingDataLocal.IsRightEyeBlinking;
    
        // Using gaze direction in local space makes it easier to apply a local rotation
        // to your virtual eye balls.
        var eyesDirection = eyeTrackingDataLocal.GazeRay.Direction;
    }

    Hopefully this should be what you are looking for, please let us know how you get on.

    If you are completely new to programming with Unity, it may be worth first trying out getting started guide @
    https://vr.tobii.com/sdk/develop/unity/getting-started/vive-pro-eye/

    #19262
    TesiRealter
    Participant

    Thank you very much!

    I saw that page but I didn’t understand where should I put the code (I mean if I have to create something and put this script as component or what)
    Can you tell me please?

    Is this free or do need some license?

    Thank you

    #19272
    Grant [Tobii]
    Keymaster

    Hi @tesirealter, please firstly follow the getting started guide to get a feel of how the object within the Unity Scene capture gaze data from our tutorial @ https://vr.tobii.com/sdk/develop/unity/getting-started/vive-pro-eye/

    Here you will see at “Step 5: Add the TobiiXR Initializer prefab to your scene” the place to put the appropriate code above mentioned to capture gaze data.

    If you could kindly clarify your project intentions that would be helpful… naturally, it does not make sense to receive eye gaze data within a Unity scene without at least one object present.

    #19293
    TesiRealter
    Participant

    Okay, thank you.

    I did this, the problem is that I can’t see the saved data. How can I do? I mean to see them for example on a file .txt.

    Thanks

    #19297
    Grant [Tobii]
    Keymaster

    Hi @tesirealter. Please bear in mind that the storage of gaze data requires the purchase of a special licence do to so.

    You can read more about this @ https://vr.tobii.com/sdk/licences/

    All the data that can be extracted from the Core SDK can be found @ https://vr.tobii.com/sdk/develop/unity/documentation/api-reference/core/

    You can place the scripts anywhere in the scene to get the data, and we provide examples of how to do this in the API page (https://vr.tobii.com/sdk/develop/unity/documentation/api-reference/core/).

    We don’t have a recorder or similar to automatically store data in our SDK because Unity offers plenty of ways of doing this with minimal code required.
    I am afraid that the tutelage of basic Unity programming concepts is beyond the scope of this forum. Best Wishes.

    #19953
    Raghu kiran
    Participant

    hiii iam using pico vr i downloaded picovr sdk i given all the settings as per mentioned in document i kept TobiiXRIntializer prefab componenet in the scene but i unable to fetch gaze data .i used this code line

    var eyeTrackingData = TobiiXR.GetEyeTrackingData(TobiiXR_TrackingSpace.World);

    this eyeTrackingData.GazeRay.IsValid value alsways return false what would be the solution any help would be appreciated

    #19954
    Grant [Tobii]
    Keymaster

    Hi @rvejendla, I can assume you have already ran through the Pico setup guide @

    https://vr.tobii.com/sdk/develop/unity/getting-started/pico-neo-2-eye/

    In this case, can you tell us if the sample applications work at detecting gaze? If not, this may indicate an issue with the headset.. are you at least able to properly calibrate and test that we may discount a physical hardware problem?

    #19963
    Raghu kiran
    Participant

    it seems like i dont have any device issue can you tell me one thing if Unity Application is in dark mode thus it find any difficult in Detecting Eye tracking?

    #19965
    Raghu kiran
    Participant

    Sorry for my previous question eye tracking detecting every mode wheter it is light mode or dark mode it is detecting fine

    #19969
    Raghu kiran
    Participant

    hiii i actually checked in demo application Eye tracking detecting and working fine .where if i implemented and merged this code in my actual application and follow the pico vr settings still iam facing this issue .thus selection of layers in G2OM layer mask can effect Eye detection which was in Tobiixr Intializer component any help?

    var eyeTrackingData = TobiiXR.GetEyeTrackingData(TobiiXR_TrackingSpace.World);

    this eyeTrackingData.GazeRay.IsValid value alsways return false

    #19971
    Grant [Tobii]
    Keymaster

    Hi @rvejendla, If you carefully follow our getting started guide as linked above, it should work unless so perhaps a step has been missed somewhere?
    It is difficult to advise you further without additional information.

    A couple of things to consdier:

    – Make sure gaze aware objects have a collider AND implements the IGazeFocusable interface
    – Make sure the TobiiXR Initializer prefab is set exactly as in the working scenes
    – we would recommend also adding a cube with the HighlightAtGaze script attached to see if it highlight when looked at

    Try it out and let us know how you get on. Best Wishes.

    #19972
    Raghu kiran
    Participant

    Hii actually I have two scenes named as
    left_eye scene other right_scene both scenes have attached with Pvr_UnitySDK prefabs .each prefab has left eye camera and right eye camera I make left eye and right eye as two seperate layers so in left_eye scene having Pvr_UnitySDK prefab I kept 3d objects in left eye cam not in right eye like that right_scene having Pvr_UnitySDK prefab I kept 3d objects in right eye cam not in left eye cam after that I take tobiixrinitializer component in both scenes so in left_eye scene having with tobiixrintializer component I check left eye layer unchecked right eye layer on G2OM LAYER MASK and in right_eye scene having tobiixr initializer component I check the right eye layer uncheck the left eye layer on G2OM LAYER MASK thus in these cases botheyes is not detecting?

Viewing 15 posts - 1 through 15 (of 20 total)
  • You must be logged in to reply to this topic.