Jump to content


Verified Members
  • Content Count

  • Joined

  • Last visited

Everything posted by jboss

  1. @Corvus Thanks for this guide. I'll give it a try after the weekend. One question: in the screenshot you use Eye Version 1. Does that matter? Or does it work with both version 1 and 2?
  2. I've been developing for the Vive for a couple of years now and every now and then I get questions about accuracy and refresh speed. My application is a baseball training and it works with a controller or with a tracker on an actual bat. When people try to hit high speed pitched balls the controller or tracker moves quickly as well. And when people miss the ball they sometimes wonder if the accuracy of the system is good enough for such high speed tracking. One of the features in the training is that I show the path of the bat during the swing and also there I notice strange results when
  3. The same bug applies to the combined gazeray. When I move my gaze to the left the ray goes to the right and vice versa. Up/down is fine. If gaze_orgin_C is the measured combined origin and gaze_direct_C the measured combined direction you need to do the below calculation to use it: fixed_gaze_origin_C = new Vector3(gaze_origin_C.x*-1f, gaze_origin_C.y, gaze_origin_C.z)/1000f, fixed_gaze_direction_C = new Vector3(gaze_direct_C.x*-1f, gaze_direct_C.y, gaze_direct_C.z), Note the division by 1000, as I'm using version 2 of the eyetracking API and there the measured values are in mm and
  4. One think I noticed now that I'm using version 2 is that measured values for origin are in mm, so to use it in Unity I need to divide by 1000. In version 1 this was not necessary, I could use the origin values right away.
  5. @VibrantNebula I agree that if you start the SR-runtime manually first before any application it works fine. But as a user (enterprise or consumer, I don't think this is an enterprise problem) you have to remember that. Every time! Because if you forget, it breaks the immersiveness of VR. You have your headset on and you get the message "next up... Your application' and it just stays there. Because on screen there is the UAC popup. So you have to take off the headset, click OK and put the headset on again. Not a good experience of VR. I changed the properties of SR-runtime.exe to always r
  6. @VibrantNebula my problem is not so much with the calibration itself, but with the UAC popup. If you want me to start a new thread, let me know. Here's what happens. Every first time I run calibration after starting up my PC I get the UAC popup asking if it is ok to allow Vive-Super-Reality-SR_Runtime to make changes to this PC. It makes no difference if I start calibration from SteamVR, from the Unity editor or from a Unity application.exe. If I click Allow, then all subsequent starts work right away. Also if I first run it from my application.exe and then from SteamVR. Since t
  7. Hi @imarin18 I realise I forgot to mention something. I made a small adaptation to the script. In the while loops in the Coroutine Sequence I added a check for a boolean called taskInterrupted. This boolean is set when I press the application menu button on the Vive controller. When that boolean is true this breaks the while loop showing the targets. And then the last part of the Sequence Coroutine is executed and there saccadeEndTime is set. And that actually also breaks the while loop in the EyeCallback method, I see now. Even though cnt_callback < maxframe_count. // ====
  8. I'm sorry that my last post was what rude. I just got taken by surprise that there was a time-limit on editing a post. I'd really apreciate some help getting this working. Especially the freezing of the editor is killing me. After every test run I have to use task manager to end the editor and then start it again. That is not workable. @imarin18 I checked what happens in your application at the end becase that application ends normally and copied that to a Coroutine in my application (see code below) and then use Update to call this Coroutine when the X key is pressed. I can see in
  9. Well, screwed by technology again. Apparently I pressed some button to post this before it was fininshed and now I can not edit it anymore. So here's the full version. Now I'm converting the saccade test project to my own project and I get new errors, so I hope someone can help me with those. First I had to remove the static keyword from the eyecallback method, because I am logging the data and my CreateNewLogEntry method derives from a non-static base method. I can not judge the impact of that, but at least I got no compile errors. Then I need to link the eyetracking log to my
  10. Now I'm converting the saccade test project to my own project and I get new errors, so I hope someone can help me with those. First I had to remove the static keyword from the eyecallback method, because I am logging the data and my CreateNewLogEntry method derives from a non-static base method. I can not judge the impact of that, but at least I got no compile errors. Then I need to link the eyetracling log to my motion log where I log the ball and baseball bat. Since timestamp may have too much variation, I decided to use frame-number. But then I got the error that Time.frameCount c
  11. I found a good Black Friday deal, so I bought a new laptop. And now it looks like I get 8 ms intervals. The values in the 100ns column increase by 40000 per row (which I think relates to 4 ms) and then I get the same SRanipal output, in two rows so that would be 8 ms. I still will try to test this with Unity update rates higher than 120 fps, as I need that for my application. But I expect that the eyetracking will still run at 120Hz
  12. @monetl Yes, thanks, I looked at that article and am trying out the script.
  13. Thanks @imarin18 I did let the test run for a while. I did the practice tests and the first run (60 seconds, if I remember correctly). But even at the end of the output file the interval is 16/17 ms. Do you know if there is a way to check the clock cycle, besides running an empty while loop. Is that related to the CPU frequency? And thanks for the explanation of the 'hanging'. I didn't actually examine the script, I just ran the test. I did notice that he output file size was still increasing when I thought the editor was hanging, so now I understand.
  14. @imarin18 Thanks a lot for this link. I helps me understand the eyetracking a lot better. And I used the project as a check to see if I could get 120Hz. But even at the end of the output file I still see 16/17 ms between samples. So I think this indicates that my computer is simply too slow (it's a five year old laptop, high-end at the time, but not anymore 😃). Strangely, I did get errors in Unity when I wanted to build the application to see if that made any differences in the sample speed compared to running it in the editor: 'Assets\Scripts\Saccade_measure_rev1.cs(227,17): error
  15. @monetl To be honest, I don't really remember what I was looking for at that time 😃 I think I solved it by using an avatar head at the camera position and use the line renderer as a component of that with local coordinates. It may not be 100% accurate, but it looks good enough for now. My issue right now is getting the 120Hz output of the eyetracker to see if that makes the eyetracking more accurate:
  16. Thanks @Dario What I want is that the grab occurs at the start of the scene. Some background: I have a tennis application that is used for training (not a game) and the athlete can choose from a number of drills. It starts with a selection scene where the athlete can select if they are right- or lefthanded and if they use the controller in their hand or the tracker on the racket. And then they select the drill they want to do. Typically during a practice session they will do several drills. Each drill is a separate Unity scene, so at the start of each scene the racket should be attached a
  17. Is it possible to make the Following Duration shorter than 0.02 (seconds, I guess)? I see a remark in the code that it depends on the Update rate, so if I would set fixedDeltaTime to let's say 0.001 (1 ms), can I then get a following duration of 0.001 as well? ( I know I need to add both the [SteamVR] and [ViveInputUtility] prefabs in the scene and in both uncheck the 'Lock physics update rate to render frequency' option to avoid falling back to 90 fps at runtime). The remark I referred to is in RigidPose.SetRigidBodyVelocity(), which is called from GrabbableBase.OnGrabRigidBody(). I
  18. @Asish What issues did you need to solve? I am also getting around 60/70 Hz output. I added a timestamp in the log and there is 15 or 16 miliseconds between the entries in the csv. It makes no difference if I run the scene in the editor or in a build. I have set the fixed Timestep in Unity to 0.008. Also the gaze ray does not work (which looks logical, as it is only set in StartRecord, so that would mean only once, right?).
  19. @chengnay Here's what I did as a test: I started with the ColliderEvent example scene and imported my racket and ball. I found out that the behaviour I need is the one that is on the StickyBockableRigidbody, so I copied the Sticky Grabbable script component from that object to my tennis racket. Now when I move either the left controller or the right controller over the tennis racket and press the trigger the racket is attached to the controller. And it's sticky, so I can release the trigger. What I would like to happen is that I have my own script, RacketControlSelector which does so
  20. I am investigating to see if Vive Input Utility can replace NewtonVR for proper collision detection in my application. It looks like the Sticky Grabbable component works in a similar way and my tennis racket does not go right through the ball, so that's promising. But It only works when pressing a button. There is a large range of possible buttons to select from, but in my application I am using a script to attach the racket to the correct controller (depending on the player's dominant hand) or tracker if that is used. I don't want to bother the player with the action of picking up the ra
  21. Great, thanks! That worked for me as well. And I have to admit I did not check the Unity forum this time, only the Vive forum
  22. I am using a dropdown menu in my application and I noticed that it is very hard to select an option. It looks like the problem is that the selection is not registered when I am moving the controller while clicking. This happens very easily. The problem also occurs in the sample UGUI scene. The other UGUI items such as a toggle are a lot less sensitive and they are easy to select. I hope someone can help me get this fixed. Thanks!
  23. I found out that the [ViveInputUtility] prefab has its own Lock Physics Update Rate flag. I need to set both to false to be able to modify the framerate. So the issue is solved, but I find it strange that VIU has its own flag and does not use the SteamVR flag.
  24. It's the Windows User Account Control. Rightclick on the Start menu icon and select Search. Then type UAC and should see something like (don't have the English Windows version) 'Change settings for User Account Control'. You can also get there through the Configuration screen --> User Accounts --> User Accounts. In the popup you need to move the slider all the way down. Yes, that is the 'Not recommended' setting.
  • Create New...