- 15/07/2021 at 18:43 #20870
I am currently using the Tobii Unity XR SDK paired with an HTC Vive Pro Eye for my eye-tracking setup. By using Unity’s built-in update function, I am able to access eye-tracking data at a rate of approximately 24Hz. However, for the project I am currently working on, this rate isn’t fast enough to get the accuracy I need. I was wondering if there was any way to access this data at a rate of around 120Hz. I am currently experimenting with using a callback thread but I am running into a lot of issues.
Thank you for your help!16/07/2021 at 15:15 #20875
Hi @henryrh, the eye tracking component of the Tobii operates natively at 120Hz so I’m afraid it is not clear how you are arriving at this value of 24Hz.. have you checked the FPS setup for the Unity Application?
If you could provide further details with respect to this issue, it would help in reproduction. Many thanks.02/08/2021 at 20:44 #20922
e02/08/2021 at 21:07 #20923
Sorry for the delay @Grant, I was unavailable the last two weeks and did some further testing on my own. I am in the process of testing out the Tobii XR SDK for an eye-tracking research project that I am planning to do in the future. However, for this project to be successful, I need to have eye-tracking data written to an XML file at a resolution of 120 HZ (the native sample rate of the HTC Vive Pro Eye). My current strategy to do this is to use TobiiXR.GetEyeTrackingData(TobiiXR_TrackingSpace) in the update loop to update the data and then use the applicable XMLWriter functions to write that data to the file. However, even after setting Application.targetframerate to 120, I am only getting a resolution of 70-80 Hz in my data file. If it helps, it seems I am getting an FPS of approximately 90 FPS in my project. My question is this: What is the best way to write/save eye-tracking data at 120 Hz?06/08/2021 at 13:47 #20934
Hi @henryrh, unfortunately your question is rather outside the scope of this forum as we have in place a premium supported VR solution called Tobii Ocumen which is indeed setup to provide customer the kind of project solutions that you are looking for. You can read more about Ocumen @ https://vr.tobii.com/sdk/solutions/tobii-ocumen/
However, perhaps you have already noticed that Ocumen does not support the HTC Vive Eye Pro, so I will try to assist you best I can with your current question.
Our sense is that the update loop frequency is determined by refresh rate of application so it would be better to start a separate thread for your application. Ideally you want to be capturing data quite separately from the FPS setting in Unity. Try a separate thread and adjust the FPS setting to see if that is indeed impacting the final frequency of gaze input and let us know the results.09/08/2021 at 13:54 #20936
Over the past few days, I have looked into opening a separate thread and can confirm that this allows me to write data at 120 Hz. However, some of the data I would like to include requires accessing the Unity engine (such as transform.position) which is restricted to the main thread. Do you have any idea of how I could receive this performance increase but still be able to receive information from the main thread when needed.09/08/2021 at 15:16 #20937
Hi @henryrh, glad to hear you managed to make progress on this case however I am afraid that as this use case is quite unique we cannot at the moment divert resources to investigating this specific support question, so hopefully you are able to resolve the situation through further investigation. Please do let us know on this thread of any progress you make.29/10/2021 at 20:25 #21250Ben FalandaysParticipant
Hi @henryrh, I was wondering if you could share the code you used to record data in a separate thread? I have tried this and it looks like the time stamps are not changing uniformly–I get repeated rows many times, and then it’ll jump by about 30ms and repeat that row many times again, etc.
- You must be logged in to reply to this topic.