Forum Discussion

TomKojar's avatar
TomKojar
Explorer
30 days ago

World frame for IMU data

Hi, I am trying to understand the IMU sensors in the Quest headsets and controllers.

I am trying to synchronize the Quest with other sensor devices that have world frames, so it would be helpful to know if there is a "world/global frame" for the Quest-IMU sensors that corresponds to magnetic coordinates e.g. north/west/up. 

I am guessing the Quest-IMU data is computed relative to my initial standing pose/boundary.

So I was thinking that since the quest has a built-in magnetometer, I could try to rotate the three Quest-IMU streams to be relative to the magnetic north/west/up.

Any suggestions on pseudo-code or actual code, will be helpful too. Right now, I am building the apps on Android and I have mainly being able to stream Quest-IMU data using UDP packets. But I am struggling to synchronize it with my other sensors. 

 

Thank you and have a nice day.

 

 

2 Replies

  • The Quest IMU data is relative to the headset’s initial pose and the Guardian/boundary setup — it doesn’t provide a built-in global/magnetic north frame. While the headset has a magnetometer, Oculus doesn’t expose it directly for aligning with magnetic north.

    A common approach is:

    Record an initial calibration pose aligned with your reference world frame.
    Rotate all subsequent IMU quaternions by the inverse of that initial orientation to bring them into your “world” frame.
    If needed, apply a fixed rotation offset to align with magnetic north/other sensors.

    Pseudo-code example (simplified for quaternions):

    # q_imu = current IMU orientation quaternion # q_init = initial reference orientation q_world = q_init.inverse() * q_imu

    This way, your Quest IMU data is roughly synchronized with your other sensors in a common frame.

    If you want, I can write a full Android/Java snippet for converting Quest IMU UDP data to a world-aligned frame.

     

→ 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