Forum Discussion

Ackermanngue's avatar
Ackermanngue
Explorer
1 year ago
Solved

Calibration of multiple VR Headset

Multi-User VR Application Using Meta Quest and FMETP - Anchor Synchronization Issue Hello everyone, I'm working on a multi-user educational VR application designed to offer an immersive experience ...
  • Ackermanngue's avatar
    1 year ago

    Hello,

    I found a practical workaround that significantly reduced the physical offset between headsets. While it may not be a perfect solution, it worked well enough for my use case, bringing the offset down to around 4-5 cm, which is acceptable for my project.
    Since Meta Quest headsets rely on independent spatial maps, each headset creates its own coordinate space after scanning the room. Here's how I handled this issue:

    Guardian / Room scan Setup:

    • I set each headset to use the "Stage" tracking mode to ensure that all devices start with a consistent floor-level reference.
    • I then performed room-scale Guardian and a room scan on each headset, making sure to replicate the scan and the Guardian as accurately as possible on each device.

    Rotation Offset Calculation:

    • After scanning, I chose one headset as the reference device.
    • I calculated the difference in rotation between the reference headset and the other headsets (they all need to look at the same direction in the real world).
    • I applied this rotation offset to the world to align the coordinate systems between the devices.

    Unfortunately, I couldn't find a way to share the spatial maps or room scans directly between headsets using the OVR Plugin. It seems that the current Meta Quest system doesn't support this kind of functionality natively. Therefore, the solution requires manual Guardian setup and calculation of a rotation offset.

    Anyway this workaround isn't a perfect fix, but it drastically improved the alignment between headsets in my multi-user VR experience. I hope it helps you or at least gives you an idea of how to tackle this issue even if it is not a "clean" way to do.

    If anyone knows a better way to do, I'll be glad to read it !

→ Find helpful resources to begin your development journey in Getting Started

→ Get the latest information about HorizonOS development in News & Announcements.

→ Access Start program mentor videos and share knowledge, tutorials, and videos in Community Resources.

→ Get support or provide help in Questions & Discussions.

→ Show off your work in What I’m Building to get feedback and find playtesters.

→ Looking for documentation?  Developer Docs

→ Looking for account support?  Support Center

→ Looking for the previous forum?  Forum Archive

→ Looking to join the Start program? Apply here.

 

Recent Discussions