Skip to main content
New Participant
November 16, 2025
Question

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

LilyRoberts24
Participant
November 16, 2025

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.

 

TomKojarAuthor
New Participant
November 16, 2025

because we work in a medical setting, we need to do precise rotation. I wonder if there is a way to surmise the Quest's magnetometer data through  some app. That data will be useful to do an exact rotation. 

I am looking to do a similar exact synchronization as done here for Pico: HMD-Poser: On-Device Real-time Human Motion Tracking from Scalable Sparse Observations

and

Microsoft Word - Camera and IMU Frame Alignment - SEIA 2018 Paper.docx