N1.09.1yaw driftdesignresearch

Yaw drifts over time and needs a recentre entry point

Aliases: heading drift · recenter · recentre orientation · gyro bias

What it is

After a quarter of an hour the virtual door has swung toward the real desk — the head did not turn that far; the reported yaw did. Integrating gyro rate into heading accumulates bias; that is yaw drift. Sitting up straighter will not unwind it. The wearer needs an explicit recentre (recenter) control that redefines the current facing as content-forward.

The topic is heading error after long integration, not where the origin was frozen at start-up, and not what to do when position tracking dies.

Why it happens

A MEMS gyro reports angular rate plus a slowly wandering bias. Integrated over minutes, the bias becomes a heading error, mainly about the vertical axis: roll and pitch can still be tied down by gravity, yaw has almost no indoor absolute reference. Magnetometers are too noisy around rebar and displays to serve as a compass.

Visual–inertial tracking can lock heading to room texture, so inside-out six-degree-of-freedom headsets drift slowly when features are plentiful. Purely inertial three-degree-of-freedom devices, and feature-starved places (blank walls, dark rooms, hair over the cameras), accumulate error on a minutes-long timescale. People rarely notice a world that “is rotating”; they notice when they reach for a real object, or take the headset off, and content-forward no longer matches the room.

Automatic north is unreliable, so the correction has to be user-timed: a press at the moment the room needs to be realigned, not a guess by the runtime.

Studying it

Compare headset yaw against a ground-truth heading source (optical motion capture, a surveyed landmark) and plot heading error against time; log temperature, because bias is thermally sensitive.

Independent variables: tracking modality (IMU-only vs visual–inertial), scene texture, uninterrupted wear duration, whether mid-session recentre is allowed. Dependent variables: heading error in degrees, time to first noticed drift, angular error when pointing at a real landmark.

A more product-native probe: declare a real doorframe as “12 o’clock in the virtual world” and ask, at intervals, where the door is. That says more about needing a recentre entry than a comfort score does.

Where it stops holding

On a headset whose localisation stays locked to the room, yaw drift over a quarter of an hour can be below threshold — the recentre control should still exist, because a seat change, a bumped headset, or a relocalisation will offset heading anyway. In a vehicle that is itself yawing, “forward” is cabin-forward, not geographic north. Roll and pitch, gravity-constrained, almost never need a manual reset; complaints are about yaw. Industrial IMUs used in the lab do not represent consumer-headset bias.

Applying it

  • Expose one-shot recentre at the system layer: current facing becomes content-forward. Do not also snap the wearer back to the coordinate origin unless the product is explicitly a “return to spawn”.
  • Bind it to a key that can be found by touch on the headset or controller. Do not bury it in nested menus — drift is noticed when the wearer is already uncomfortable, and a missing button leads to doffing.
  • On recentre, give a brief world-stabilisation cue (a short fade or a horizon settling). A wall that jumps ninety degrees with no warning reads as a fault.
  • How to check: start a timer, disable recentre, then have the wearer point their head at a pre-agreed real landmark. Measure how many degrees virtual “forward” has wandered. Repeated double-digit error means the entry point is not optional.

Related

  • Same group: N1.09.2 The origin definition decides which side of the person content appears on · N1.09.3 Panoramic footage is inherently 3DoF; translation cannot be added in post · N1.09.4 Loss of positional tracking needs a degraded mode, not an interruption
  • Nearby: N1.02 Degrees of Freedom · N4.01 Teleport Locomotion
  • Search terms: yaw drift · recenter · heading error

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/N1.09.1