Jump to content


Verified Members
  • Posts

  • Joined

  • Last visited


0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi, You should maybe find some answers here: Or on this search article: https://www.researchgate.net/publication/346058398_Assessing_Saccadic_Eye_Movements_With_Head-Mounted_Display_Virtual_Reality_Technology Good luck. And if you have again questions, I will try to do a more accuracy answer as I worked also on vive pro eye for my master's degree internship.
  2. @Corvus Thanks a lot for your answers. Unfortunately now I didn't work on eye tracking project, but I shared your answers to my old employer.
  3. Hi, I have some questions about eye tracking , if you want you can try to help me to find answers or confirm what I done : 1-About « SRanipal_Eye_v2.Focus » method , I saw it uses sphere cast but like I want to use it to find object in an Attention area, I need to get a sphere with different radius size according to the distance which there is between my eye and my combined eye, and not a fixed size ? It exists a mean to send raycast with this mecanisms ? Currently I use just rayCast and draw a sphere according to distance between my combined eye and the impact of raycast, and fixing an angle to find radius of attention area. 2-About IPD , currently I found how get this value , making difference between the postion of my two eyes, but I though also IPD was linked with virtual camera in Unity, but currently It’s not the case because when I try to get a similar IPD with my two screens in the headset, virtual camera doesn’t move in Unity ? Is it normal or it’s possible also to modify distance betweens virtual cameras ? 3-About CallBack eye data enabled, CallBack function can be called 120 times per second, compare to Update where it’s just each frame it’s called, is it correct ? 4-In my different test « convergence_distance_mm « attribute continue to doesn‘t work because combined.convergence_distance_validity is always false, is it normal ? 5-I saw few months "timestamp" attribute didn't work correctly and it was better to use frameCount, now "timestamp" works well ? 6-When I display a line renderer to show trajectory of my combined eye, I see that the result is often wrong because start position change very often ? Do you get the same issue ? I have the issue with « localPosition » in SRanipal_Eye_v2.GetGazeRay(GazeIndex.COMBINE, out localPosition , ….) So now just I take the middle of both pupils positions to get a result very stable, is it a good alternative ? 7-Is it possible to get an image of our eyes with this eye tracking, or it’s necessary to ask licence or another thing to use for search ? 8-Do you know how to use parameter.gaze_ray_parameter.sensitive_factor, because it’s seems to be an interesting parameter before to do calibration but I am not sure I use it correctly ? Currently I use it each time before to do a calibration : EyeParameter parameter = new EyeParameter { gaze_ray_parameter = new GazeRayParameter(), }; Error error = SRanipal_Eye_API.GetEyeParameter(ref parameter); Debug.Log("GetEyeParameter: " + error + "\n" + "sensitive_factor: " + parameter.gaze_ray_parameter.sensitive_factor); parameter.gaze_ray_parameter.sensitive_factor = parameter.gaze_ray_parameter.sensitive_factor == 1 ? 0.015f : 1; 9-Eye tracking use Right coordinate system but unity Left, so is it good to do : leftCoordLocalPosition = new Vector3(-1 * rightCoordLocalPostion.x, rightCoordLocalPostion.y, rightCoordLocalPostion.z); Without this methods, my left eye is to the right and my right eye is to the left in my global position in the Unity 3D scene. 10-With eye tracking we can get pupil position but not eye center position, so is it possible to do : centerEye= pupilPosition- eyeDirection*0.0125f because in average the diameter of an eye is 0.025 cm, so the radius is 0.025/2.
  4. @Daniel_Y @jboss I don't know if you already watch this article, but you should find answers here: https://www.frontiersin.org/articles/10.3389/fpsyt.2020.572938/full because app they created used 120hz eye tracking using EyeCallBack, while and coroutines: "We particularly visualized the sampling interval of the first 3600 samples that we recorded; we assumed 30 s of recording time at the sampling frequency of 120 Hz" . And here the git of project : https://github.com/MotorControlLearning/SaccadeVR-mobile and here the script to use 120hz: https://github.com/MotorControlLearning/SaccadeVR-mobile/blob/master/SaccadeVR_ViveProEye/Assets/Scripts/Saccade_measure_rev1.cs "Measure eye movements at the frequency of 120Hz until framecount reaches the maxframe count set"
  5. You downloaded and launched SR Works Runtime and no SR Runtime? You talk about "FormatException: Input string was not in a correct format" ? The method I used remove this error but I don't know if it's the right solution . Also I have not install new version of SR work since august 2020, so maybe trying last update of SRWork It will work, I will try if I find the time because currently I don't use this library in my project.
  6. @Daniel_Y In my case I used also camera.transform.position for "system origin". I think It could be better if It was written in the documentation if this affirmation is good. It could be better also to indicate that origin of eyes is a local position compared to "system origin", because before to read previous posts, I thought it was compared to lens origin left and right. Also like you use right coordinate system whereas Unity uses left coordinate system, it's necessary to do new Vector3(-1 * gazeEyeOrigin.x, gazeEyeOrigin.y, gazeEyeOriginl.z) to get position of an eye, because without make that left eye position and right eye position are inversed. @jboss About "It still would be great to get world coordinates...": you talk about something like that ? : Vector3 GazeDirectionEyeLeft = Camera.main.transform.TransformDirection(GazeDirectionEyeLeftLocal); visualLineLeftEye.SetPosition(0, leftEyeSystemOrigin.transform.position); visualLineLeftEye.SetPosition(1, leftEyeSystemOrigin.transform.position + GazeDirectionEyeLeft *lenghtEyeleftLine);
  7. Is it an issue to correct on your sdk or I am wrong on method to avoid this issue: FormatException: Input string was not in a correct format ?
  8. I found another issue but I found why. Like I am french Unity software uses "," and not "." for float value. So I written in ViveSR_DualCameraCalibrationTool line 196: return float.Parse(angle_array[angle_index].Replace(".",",")); Here what was my issue : FormatException: Input string was not in a correct format. System.Number.ParseSingle (System.String value, System.Globalization.NumberStyles options, System.Globalization.NumberFormatInfo numfmt) (at <437ba245d8404784b9fbab9b439ac908>:0) System.Single.Parse (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) (at <437ba245d8404784b9fbab9b439ac908>:0) System.Single.Parse (System.String s) (at <437ba245d8404784b9fbab9b439ac908>:0) Vive.Plugin.SR.ViveSR_DualCameraCalibrationTool.LoadParamsValue (System.Int32 angle_index, System.Single default_value) (at Assets/ViveSR/Scripts/ViveSR_DualCameraCalibrationTool.cs:196) Vive.Plugin.SR.ViveSR_DualCameraCalibrationTool.LoadDeviceParameter () (at Assets/ViveSR/Scripts/ViveSR_DualCameraCalibrationTool.cs:136) Vive.Plugin.SR.ViveSR_DualCameraRig.Initial () (at Assets/ViveSR/Scripts/ViveSR_DualCameraRig.cs:179) Vive.Plugin.SR.ViveSR.UpdateWhileWorking () (at Assets/ViveSR/Scripts/ViveSR.cs:328) Vive.Plugin.SR.ViveSR.Update () (at Assets/ViveSR/Scripts/ViveSR.cs:175)
  • Create New...