Log in or register to post comments

ARKit tracking status with DeviceTrackerARController

July 23, 2018 - 12:30pm #1

When using pure ARKit we ask the user to move their device around to establish tracking. We respond to these status changes with session:cameraDidChangeTrackingState. In my experience usually takes  at least 5-10 seconds to establish solid tracking.

I'm working on a project in Unity using Vuforia vumark targets to localize to a physical space but the experience relies heavily on extended tracking. My belief is that with Vuforia 7.2.# this extended tracking should be managed through ARKit. 

So I have my project configured for position device tracking optimized for Image Targets and VuMarks. I am responding to tracking status using 

DeviceTrackerARController.Instance.RegisterDevicePoseStatusChangedCallback(myStatusCallback);

What's happening is that almost instantly I'm getting a callback with TrackableBehavior.Status = 'Tracked' and TrackableBehavior.StatusInfo = 'normal'.

The speed at which this is returned leads me to believe that this callback is not truly reporting on ARKits tracking status, and if I start the experience too quickly tracking does not seem as stable initially.

How can I ensure solid ARKit tracking status before instructing my user's to find the vumark to start the experience?

ARKit tracking status with DeviceTrackerARController

July 24, 2018 - 8:26am #3

Hello,

Whether or not you're using ARKit depends upon how you've set up your Fusion provider. By default, Vuforia will select the best available solution based upon the device being used. If your device supports ARKit, by default, Vuforia will use ARKit for Extended Tracking.

We definitely see a delay when using ARKit and tracking state as reported. There should be a public log message during the run to say if ARKit was selected as the provider, or you can use the currentFusionProvider() API to tell you which provider was selected. You should see a status of LIMITED until the tracking has been set up, assuming we have all of the plumbing correctly mapped.

Thanks,

Vuforia Engine Support

ARKit tracking status with DeviceTrackerARController

July 24, 2018 - 7:08am #2

Is the VuMark in view when you receive TrackableBehavior.Status = 'Tracked' and TrackableBehavior.StatusInfo = 'normal'? Vuforia Engine will always prioritize visible targets before switching into any extended tracking mode.

What is currentFusionProvider() returning at the point where you are checking status / statusinfo?

 

What you may want to do is to disable your vumark and only enable it once the Status goes from LIMITED to TRACKED or EXTENDED_TRACKED.

Log in or register to post comments