Constant shake/wobble in SteamVR

Trinus Forum Forums Trinus PSVR Constant shake/wobble in SteamVR

This topic contains 6 replies, has 3 voices, and was last updated by  mp 1 day, 13 hours ago.

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #7864

    jimnarey
    Participant

    Hi Xavier,

    Having said in an earlier post (here) I was reluctant to start testing different refresh rates when I recall a previous version of Trinus PSVR didn’t have this problem, I ended up giving it a go.

    The problem:
    – When SteamVR is started and throughout use – whether Home, Fallout 4, the default environment – there is a constant, seemingly random small shake of the view in the headset.
    – It doesn’t have the appearance of a frame rate-related jitter.
    – It *seems* slightly less noticeable when the headset is turned in a smooth motion. It is visible in the desktop mirror when the headset is left on a flat surface.
    – I can see in others’ YouTube videos (e.g. a JRaeGames one about setting up Driver4VR) that there is no such shake when starting Trinus PSVR.

    I have tried the following, none of which led to any improvement:

    – Removing other USB devices and swapping to USB ports on different controllers.
    – Using different surfaces (tables, wooden floor, carpeted floor) for the initial calibration.
    – Calibrating with the headset resting normally, calibrating with the read band propped up to simulate the orientation when worn and calibrating while wearing.
    – 60Hz, 90Hz and 120Hz
    – Windowed (60Hz) and fullscreen modes (90Hz and 120Hz).
    – All possible permutations of interleaved re-projection, asynchronous re-projection, force re-projection and supersample filtering at all three refresh rates.
    – Various supersampling overrides (100% – 200%). I can see the new problems this introduces over 150% on Fallout 4, so am pretty certain it’s unrelated.
    – Checking the frame rate in the Steam VR settings dialog throughout the tests (it was ‘good’ at all times).
    – With PSMoveService positional tracking via PSMoveFreePieBridge, via NOLO VR, using Skeleton tracking (for head and head/body) in Driver4VR and without any positional tracking.
    – Ensuring as far as possible no other software is running in the background and certainly nothing which might be interfering with Trinus, SteamVR, FreePie registers etc.

    In between sessions attempting to diagnose this problem and many more hours setting up PSMoveService I have been using the headset on the PS4 and it’s absolutely stable.

    The only thing I have tried which has helped at all is raising the sensor smoothing setting under advanced settings. This makes little if any perceivable difference until turned up to 0.92, at which point the shake subsides a little and an almost imperceptible lag is introduced. Turning up further decreases the level of shake up to 0.99 at which the shake is almost completely gone. However, any increase over 0.92 starts to bring in noticeable lag, becoming impractical to use pretty much immediately. By 0.99 you have to stand and wait for the view to catch up with your head.

    No level of sensor prediction makes any difference, providing quite a strange experience at higher levels when combined with the smoothing.

    So, taken together:
    – It seems unlikely it’s a frame rate/refresh/reprojection issue.
    – It’s not caused by other input to Trinus or SteamVR, e.g. positional tracking.
    – It appears not to be caused by interference from other software or hardware.
    – It does seem related to the output of the headset sensors and whatever Trinus then does with it.
    – The headset is presumably operating within (as far as Sony are concerned) normal parameters.

    This has led me to wonder whether, in terms of some sort of factory calibration, my headset is at the extreme range of ‘normal’ given that other users clearly don’t have this problem.

    I hope there is something you can do to address this which doesn’t share the effects of the sensor smoothing. It’s a real puzzle – I’ve just come off from an hour in Skyrim VR on the PS4 and it’s rock solid.

    I’d be very happy to carry out more tests, try any possible fixes or otherwise help.

    Thanks,

    Jim.

    #7865

    jimnarey
    Participant

    Hi,

    I’ve done some further testing. None of the following have had any effect:

    – Trying each of the currently available versions of SteamVR via the ‘Betas’ section under properties. I have generally been using the 21/6 hotfix so that button presses from PSMoveService work but this isn’t the culprit.
    – Turning off vsync in Nvidia GPU settings.
    – Ensuring any low-power/balanced/power saving settings are disabled for the GPU, PC in general and USB controllers.
    – Turning off power saving for USB devices in Steam.
    – Disabling Windows Defender.
    – Running Steam, SteamVR and TrinusVR as admin.
    – Disabling xHCI in BIOS settings.
    – Calibrating with the headset on a cushion, on a sofa to double check there aren’t some odd vibrations affecting it.
    – Trying the Ghosting Fix setting in Trinus

    Because I had more trouble calibrating the controller magnetometers under PSMoveService than the guy in the Daley Tech YouTube guide (i.e. took longer, and involved moving them across the room) I wondered whether there might be an issue with the environment, in particular the fact that I’m in a basement. However, I compared a compass reading taken in the room with several taken outside and there was, if anything, a little less needle movement when inside.

    I also tried Cinematic mode under Trinus. The image moves left/right and up/down with the headset so it’s not a great comparison, but for what it’s worth it was completely stable. There was no shake/jitter angling my head left and right (i.e. when the image does move relative to the headset).

    So, I’ve pretty much run out of options for things to try. It would be great to be able to try earlier versions, if possible, or expose some calibration/sensor settings (a deadzone?).

    Thanks,

    Jim.

    #7867
    loxai
    loxai
    Keymaster

    Hi, thanks for the detailed report. I’ll see if I can find something causing trouble in the sensor management code.
    In the meantime, I have prepared a fix for 0.9.2 (check the thread about outdated version)

    #7868
    loxai
    loxai
    Keymaster

    Based on this:

    – It does seem related to the output of the headset sensors and whatever Trinus then does with it.

    I’ve prepared a test build that skips most of the sensor code, just delivering raw.
    https://trinusvirtualreality.com/files/psvrTest.zip

    #7871

    jimnarey
    Participant

    Thank you so much. I’m going to try this and the 0.92 patch now.

    #7874

    jimnarey
    Participant

    Thank you for the patch. I’ve had some mixed (and accidental) results.

    I could not get the 0.92 patch to work (see other thread) to test with that. I was able to run the test version you posted in this thread, thank you. When I put the headset on the shake appeared to be reduced noticeably. I decided to load up the normal 0.98 version to compare and to my surprise the shake appeared to be reduced to the same level as in the test version.

    This was after I had re-installed Trinus, including manually deleting the files in AppData, in an attempt to get the 0.92 patch working. This is the only thing I can think of that would account for the improvement. Nothing about the environment or setup has changed, other than several installs of the PSVR Windows driver which needs to be done from time to time anyway (especially if I unplug the USB from the PC).

    The shake is clearly present and it would be hard to use the headset for a real game but nonetheless it’s a big improvement. The frequency is smaller and the size of individual movements less. I’m sorry that it was achieved by something as obvious as re-installing Trinus, which I should have tried earlier.

    I’ve been playing around with the source code for PSVRTest. I’m going to see if I can use it to log some sensor data, especially during turn on, and post it here, unless there’s a better/easier way of doing it?

    In the meantime, would it be possible to introduce a (variable) deadzone or some sort of filter to negate the small, unwanted movements?

    Thanks again for your help, it’s much appreciated.

    • This reply was modified 1 month, 2 weeks ago by  jimnarey.
    • This reply was modified 1 month, 2 weeks ago by  jimnarey.
    #7938

    mp
    Participant

    Try to set “Drift Correction Factor” to negative value (-0.1). It helps me.

Viewing 7 posts - 1 through 7 (of 7 total)

You must be logged in to reply to this topic.