Drift Control
Drift Control in XR Experiences with MultiSet VPS
Drift is a common issue in Augmented Reality (AR) experiences where the virtual content gradually misaligns from its intended real-world position. This phenomenon can detract from the immersive nature of AR applications and disrupt user interaction.
What is Drift and How Does it Occur?
Drift is the incremental error in the calculated position and orientation of a device within a physical space. In AR, this results in virtual objects appearing to "drift" or "swim" away from their anchored points in the real world. This occurs because Simultaneous Localization and Mapping (SLAM) systems, like ARKit and ARCore, rely on visual-inertial odometry. This process continuously estimates the device's motion by tracking visual features and sensor data, which can lead to cumulative errors over time.
The severity of drift depends on several factors:
Mobile Device Type: Different devices have varying sensor quality and processing power, affecting the accuracy of the tracking data.
Operating System: The underlying SLAM algorithms and their implementations in iOS (ARKit) and Android (ARCore) can influence drift.
Environment: Poor lighting, reflective surfaces, or large, featureless areas can make it difficult for the system to track visual features, increasing the likelihood of drift.
Device Movement: Fast or erratic device movements can cause tracking to be lost temporarily, leading to significant drift.
How MultiSet VPS Helps
MultiSet's Visual Positioning System (VPS) works in tandem with underlying SLAM systems like ARKit and ARCore to provide a robust solution to drift. While ARKit and ARCore are responsible for continuous, short-term tracking, MultiSet VPS offers a global, persistent coordinate system. When drift is detected, MultiSet VPS can recalibrate the device's position, effectively "snapping" the virtual content back to its correct real-world location.
Relocalization Events for Drift Reduction
The MultiSet VPS SDK actively works to reduce drift by performing relocalization at certain key events. These events can be customized by developers to best suit the needs of their application. The SDK attempts to relocalize when it detects drift, and developers can configure the following triggers:
1. Relocalization on AR Tracking Lost
The MultiSet SDK can trigger a relocalization event when the underlying SLAM system (ARKit/ARCore) loses tracking. This often occurs due to:
Fast device movement
Poor lighting conditions
Uniform or featureless surfaces
By initiating relocalization as soon as tracking is lost, the system can quickly re-establish the correct position and orientation once tracking is regained.
2. Relocalization on App State Change
When an application is sent to the background and then brought back to the foreground, the AR session is often interrupted, which can lead to a loss of tracking and cause drift. The MultiSet SDK can be configured to automatically trigger a relocalization event when the app comes back to the foreground, ensuring a seamless user experience.
3. Background Relocalization
For applications that require a high degree of accuracy over extended periods, the MultiSet SDK offers a background localization feature. Developers can set a duration, ranging from 15 seconds to 2 minutes, for periodic relocalization attempts. This proactive approach ensures that drift is continuously corrected before it becomes noticeable to the user.

Last updated
Was this helpful?