lonetech / nolo-osvr

OSVR plugin for LYRobotix Nolo VR tracker system
Apache License 2.0
12 stars 8 forks source link

Stuttering Head Motion in SteamVR when Controllers Powered On #18

Closed nanospork closed 6 years ago

nanospork commented 6 years ago

I just received this report from a user of the Nolo OSVR Fusion Configuration on Reddit, /u/MediaBurn_VR:

So after a couple of weeks I finally had some time to test. And the add-on works great. Still could be smoother on the headtracking. But the tracking it self is done very well. One thing I did notice. Wich was weird. I wanted to play Elite Dangerous. So I figured I don't need the controllers. So I kept them switched off. The head tracking was very very smooth without the controllers. The orientation was off. But still very smooth. I then turned on the controllers to fix the orientation. And the smoothness was gone. I turned back in to the jutterish tracking. So maybe there is some sort of conflict? The devices fighting over bandwidth or something? Is there away to give the devices more processing power? Cuz the weird thing is that it only shows inside the HMD. On my screen the motion and tracking remains fluid.

I haven't yet had time to investigate further and determine whether the smoothness issue resides in SteamVR, the Nolo plugin, or another part of the fusion configuration. I'm opening this issue mostly for record-keeping and as a reminder to investigate.

lonetech commented 6 years ago

This is a good observation! I believe it has to do with the doubled reports. The head tracker's firmware is malfunctioning in that it sends twice as many reports when it is receiving data from the controllers. This should probably be merged with issue #6 and a workaround should be written (to just reject identical updates). It might look fluid on screen simply because the screen is running at 60Hz, the real update rate of the Nolo, while the 90Hz HMDs want to show more frames and thus blend in the incorrect judder of the 120Hz bug.

lonetech commented 6 years ago

I've written some simple code to ignore duplicate reports. This should clean up the data for sensor fusion, velocity derivation and such. Could we get this retested?

nanospork commented 6 years ago

Just tested today, head tracking feels much smoother. This seems to have done it, thank you very much!