Using the Device Tracker

Vuforia Engine supports both rotational and positional Device Tracking. The Rotational Device Tracker allows for 3 degrees-of-freedom tracking while the Positional Device Tracker allows for 6 degrees-of-freedom tracking.

This article describes the Device Tracker APIs using examples from the native Android and iOS SDKs. For more information on how to use device tracking in Unity see: Configuring Device Tracking in Unity or Using the MixedRealityController in Unity.

Introduction

Positional Device Tracking

Positional Device Tracking leverages Vuforia Fusion in order to provide positional pose information of the device relative to the world and other objects. Positional Device Tracking allows for features such as Ground Plane and Extended Tracking.

Positional Tracking is enabled by the PositionalDeviceTracker class.

Rotational Device Tracking

Rotational Device Tracking requires inertial sensors on the device. It does not depend on the device's camera to report rotational information and, therefore, allows for head tracking and the development of immersive Virtual Reality (VR) experiences. This functionality allows the creation of apps that can track the rotation of a user's head, when using a VR viewer, and also supports handheld device tracking.

Rotational Tracking is enabled by the RotationalDeviceTracker class, which is a a specialized Tracker type that reports the rotational pose of a handheld or head mounted device. The Rotational Device Tracker can also be configured with a rotational pivot offset to adjust the pose values to coincide with the center of rotation of a user's head or arm.

 

Device Tracking API

The DeviceTracker class tracks the rotational or positional pose of a device within a world coordinate system using data from the device's inertial sensors, camera, or platform enablers like ARKit and ARCore.

Vuforia Image
The RotationalDeviceTracker, PositionalDeviceTracker, DeviceTrackable, and DeviceTrackableResult types


The RotationalDeviceTracker or PositionalDeviceTracker provide pose updates as a DeviceTrackableResult for a single DeviceTrackable instance. These Trackable Results are obtainable from the State object either by calling updateState() from the StateUpdater class instance on the TrackerManager, or from the State object returned by Renderer.begin().

Obtaining State from the StateUpdater:

const Vuforia::State state = Vuforia::TrackerManager::getInstance().getStateUpdater().updateState();

Learn More

For more information on the specific Device Trackers, please refer to the following documents: