pushrax / OpenVR-SpaceCalibrator

Use tracked VR devices from one company with any other.
MIT License
670 stars 111 forks source link

WMR headsets introduce reversible drift when moving through play space after accurate calibration #45

Closed jgr526 closed 3 years ago

jgr526 commented 3 years ago

Calibration is very accurate but a slight constant/reversible drift occurs when moving the WMR headset through the play space. Drift is reversed when moving back to original point of calibration result.

Original video showing drift: https://youtu.be/l2jhvU0e-4Q

Could you please post a comment if this happens to you with a WMR headset?

More details:

  1. Video showing that it happens only when you move the G2 WMR headset through the play area
  2. Video showing that it happens on Samsung Odyssey WMR headset but manifests itself a little different

Observations:

  1. Calibration and movement of steam vr controller is accurate after initial calibration, but once you move through the play space with WMR headset, subtle drift is evident.
  2. Drift is most evident once you reach the edge of the play space.
  3. Drift is reversed when moving back to original location of accurate calibration (for most users this is the center of the play area).
  4. Drift is about an inch for every 1.5 feet of movement through play space with the G2 headset as demonstrated in video 1.
  5. Drift is about an inch for ever 2 feet of movement through the play space with the Samsung Odyssey headset as demonstrated in video 2.
  6. Drift direction is constant for each headset (but different between them) and software changes/calibration don't seem to affect which direction the drift occurs in.
  7. Drift characteristics are not affected by recalibrating, lighting in room. It is a constant amount of drift in each headset.
  8. Drift amount and direction could potentially be different between WMR headsets of the same model or different room environments.

Steps taken to attempt to resolve issue:

Additional steps that had no effect on drift: -Clearing WMR environments and relearning the room with dimmed or bright lights had no effect. -Clearing WMR environments and relearning the room with Lighthouse Basestations not running (as some slight flashing lights coming from lighthouses is visible in WMR cameras). -Clearing WMR environments and relearning the room with multiple fiducial markers on all 4 walls.

killzon32 commented 3 years ago

I experience the same issue, I noticed it after having re-calibrated dozens of times because the tracking was off I use full body so the feet tracking never seemed right and it made my brain hurt unless I fixed it.

The issue is I found no matter how many times I calibrate if i'm not in the spot where I calibrate its off center. I also think the fact the body trackers are farther away it makes it off center and I am not sure if there is a way to manually calibrate each puck.

jgr526 commented 3 years ago

Thanks for your input. What headset are you using?

I have attempted a few other things in attempts to resolve the issue:

-Relearned environment with:

  1. Different lighting levels.
  2. Added fiducial markers to all 4 walls.

Environment changes seem to have an effect on how accurately WMR initially syncs to my space (like for example, a more accurate default floor height), but there doesn't seem to be a traceable effect to the amount of drift that occurs with the lighthouse devices when moving the WMR headset through the play space.

Every time I clear my environment and relearn the room, the drift seems to be slightly different, but I can't seem to lower it with any specific changes to the room. My next attempt might be to bring in some different lights to see if I can affect the amount of drift that happens. So far I'm still lost to any thing that affects the amount of drift in a controllable manner.

killzon32 commented 3 years ago

I use a windows mixed reality Reverb g2 I have a 1600lumen light in my room thats blocked off directly shining in the view of the wmr headset while keeping it bright.

I have a bunch of random things in my room and on the floor are random geometric shapes to get better tracking.

pushrax commented 3 years ago

This looks like the scaling factor of the two spaces might actually be different (i.e. 1cm for the Index controllers is bigger than 1cm for the G2). The calibration currently assumes they are the same. I do have some old code that may be able to handle this better, in the next batch of updates I will try to add it back in as an option for people to test.

23 tracks what I believe is the same issue. I am going to close this one as a duplicate, but I really appreciate all the detailed info!

jgr526 commented 3 years ago

Thank you. Hopefully your old code resolves some of this. I'll keep a close eye on #23