iVRy Driver for SteamVR

iVRy Driver for SteamVR

Is PSVR drift technically certain to happen / impossible to solve?
Continuing the adventure the more one reads the more it seems that psvr drift is inevitable and the only thing you can do is minimise it? Would be great to get any thoughts if anyone else has tried.

Also if multiple (or rng?) recalibration can reduce the effect, it would be awesome to get some debug or purpose built view in ivry showing the info so we can know when to stop. Maybe even a button to continue to calibrate until a best result value has been achieved.

I have a gut feeling that even with a perfect calibration, moving your head starts it drifting again at some point, so one button to do multiple calibrations and stop on good would come in handy to fix it mid game.

Its been fun tweaking though.

EDIT: More interesting reference https://www.youtube.com/watch?v=2Ew_UVu-3v4

Also at 1:34 of this video is an example of the information that would be good to have displayed

https://www.youtube.com/watch?v=wiBAym-Bplw
Last edited by stokz treeface; Jan 11, 2020 @ 8:33pm
< >
Showing 1-5 of 5 comments
iVRy  [developer] Jan 11, 2020 @ 10:48pm 
There is no technical way to fix drift in a tracking system without a stable reference. It's a problem called "dead reckoning". The only way to fix sensor drift is to occasionally correct the accelerometer/gyroscope sensor readings from a stable reference. This can be (in the case of mobile phones and some headsets) from a compass (magnetometer), or an external tracking reference (camera or tracker like PSVR on PS4, Oculus Rift or Vive/Index). PSVR on PC has neither, and even software like PSMoveService is not able to do it, as it doesn't provide rotation data as part of its HMD tracking.

Obviously the quality of the sensor readings is going to be better if the system is well calibrated. What the first video shows (while getting terminology and technical information wrong) is that repeatedly calibrating the PSVR can improve the quality of the sensor readings in some cases, however it won't fix the problem. You can do the same in the iVRy driver by opening the settings (double click on the icon in the Windows system tray while SteamVR is running) and pressing the "Calibrate" button.

The correct long-term solution to this problem is to use the PS4 camera to track the headset. By tracking the "constellation" of LEDs on the headset, it's possible to derive orientation optically, and then use that to correct drift in the sensors. That is how it is done on the PS4 (you will notice drift there in "cinema" mode too, as that doesn't use the camera), and work is being done to get that tracking working on PC too (will require an adapter to connect the PS4 camera to the PC).

You can recenter the PSVR tracking in iVRy by pressing one of the volume buttons on the inline remote (PSVR v1) or on the headset (PSVR v2). If you are using v1.1.4.x (or later) of the iVRy driver (currently in beta), Driver4VR is able to communicate directly with the iVRy driver to perform the recenter action (as per second video, but with no user setup required).
Last edited by iVRy; Jan 11, 2020 @ 10:55pm
stokz treeface Jan 12, 2020 @ 2:37pm 
Originally posted by iVRy:
There is no technical way to fix drift in a tracking system without a stable reference. It's a problem called "dead reckoning". The only way to fix sensor drift is to occasionally correct the accelerometer/gyroscope sensor readings from a stable reference. This can be (in the case of mobile phones and some headsets) from a compass (magnetometer), or an external tracking reference (camera or tracker like PSVR on PS4, Oculus Rift or Vive/Index). PSVR on PC has neither, and even software like PSMoveService is not able to do it, as it doesn't provide rotation data as part of its HMD tracking.

Obviously the quality of the sensor readings is going to be better if the system is well calibrated. What the first video shows (while getting terminology and technical information wrong) is that repeatedly calibrating the PSVR can improve the quality of the sensor readings in some cases, however it won't fix the problem. You can do the same in the iVRy driver by opening the settings (double click on the icon in the Windows system tray while SteamVR is running) and pressing the "Calibrate" button.

The correct long-term solution to this problem is to use the PS4 camera to track the headset. By tracking the "constellation" of LEDs on the headset, it's possible to derive orientation optically, and then use that to correct drift in the sensors. That is how it is done on the PS4 (you will notice drift there in "cinema" mode too, as that doesn't use the camera), and work is being done to get that tracking working on PC too (will require an adapter to connect the PS4 camera to the PC).

You can recenter the PSVR tracking in iVRy by pressing one of the volume buttons on the inline remote (PSVR v1) or on the headset (PSVR v2). If you are using v1.1.4.x (or later) of the iVRy driver (currently in beta), Driver4VR is able to communicate directly with the iVRy driver to perform the recenter action (as per second video, but with no user setup required).

Thanks for confirming that and the extra info.

Well while we wait for real solutions, it does seem that recalibration can reduce the rate of drift to a value that isn't distracting.. though it always is as you constantly are performing the function.

Just in case you're considering it and its worth it.. putting in a fixed offset would be great for certain cockpit games.. im guessing elite and asseto corsa would be covered and probably are the main uses for vr at the moment outside of demo toys. You can't turn your head sideways down in these games, so any adjustment would be good.. assuming its possible to detect what direction the headset is actually drifting in. But i've noticed drift can increase over time too so...

We can only avoid those games or get a real solution.
Kaggen Jan 5, 2021 @ 1:08am 
While I absolutely agree with iVRy that drift will always happen, there is certainly the possibility to make it worse by poorly implementing truncation/rounding during the integration of rotational/acceleration data.
For example; on TrinusVR i could remove the very large drift by setting "dead zone" to 0. In iVRy I seem to also have a very large drift (around 90 deg left in 1-2 minutes), but no such option.

And let's not forget that the earth's rotation is 15deg/hour, so you are drifting out of center too ;-)

Further reading about IMU errors can be found at Analog Devices
https://www.analog.com/en/analog-dialogue/raqs/raq-issue-139.html#
K A M I I Jan 7, 2021 @ 12:09pm 
Originally posted by iVRy:
and work is being done to get that tracking working on PC too (will require an adapter to connect the PS4 camera to the PC).
Any new insights about when we can expect a release? can't wait! very hyped for it
Mobius Jan 6, 2023 @ 10:44am 
Hi,
is there still Development happening on iVRy?
If so, would it be possible to maybe include a slider to add a simulated continuous "counter motion" of sorts. It appears the drifting only occurs only in the X-Axis.
Would be really apreciated :-)
< >
Showing 1-5 of 5 comments
Per page: 1530 50