ARKit 2 Motion Tracking Improvements in iOS 12
Apple's ARKit 2, introduced with iOS 12, significantly refined augmented reality performance by delivering higher precision, lower latency, and greater environmental stability. This article examines the key technical advancements made to motion tracking in ARKit 2, focusing on enhanced Visual-Inertial Odometry (VIO), persistent spatial mapping, improved relocalization, and refined surface detection capabilities.
Enhanced Visual-Inertial Odometry (VIO)
At the core of ARKit's motion tracking is Visual-Inertial Odometry, which combines camera sensor data with the device’s Core Motion sensors (accelerometer and gyroscope). In iOS 12, Apple overhauled these sensor-fusion algorithms to provide higher positional accuracy. The updated system significantly reduced tracking drift—the gradual accumulation of errors over time or distance—allowing virtual objects to remain securely anchored even during rapid camera movement or across larger physical spaces.
Persistent World Mapping and State Saving
ARKit 2 introduced the ARWorldMap class, allowing
devices to capture, serialize, and store the 3D feature points and
spatial understanding of an environment. This mechanism fundamentally
improved tracking consistency. Instead of building an environmental
understanding from scratch upon each session, apps could reload an
existing world map, maintaining the exact positional orientation and
coordinate system relative to the physical world across multiple
sessions.
Robust Relocalization
Tracking interruptions—such as covering the camera lens, stepping out of a room, or receiving an incoming phone call—previously resulted in tracking loss or virtual object shifting. ARKit 2 introduced advanced relocalization algorithms that quickly recognize previously mapped feature points when the camera returns to a known space. The system seamlessly realigns the virtual coordinate system with the physical space without requiring a full recalibration from the user.
Improved Plane Detection and Non-Rectangular Boundaries
While the original ARKit could detect horizontal and basic vertical surfaces, ARKit 2 introduced the ability to detect non-rectangular, irregular boundaries. By better defining the exact contour of surfaces like circular tables or irregularly shaped walls, the motion tracking system reduced anchor jitter and improved the depth stability of objects placed on complex planes.
3D Object Recognition and Dynamic Image Tracking
Motion tracking accuracy was also bolstered by anchoring coordinate frames to physical reference objects. ARKit 2 added 3D object detection and enhanced 2D image tracking to support moving targets. The framework can detect real-world objects, estimate their position, and continuously update the motion tracking model relative to those dynamic anchors, creating a more cohesive spatial tracking experience.