Arcore-android-sdk: Tracking never starts on Asus Zenfone AR

Created on 23 Feb 2018  ·  23Comments  ·  Source: google-ar/arcore-android-sdk

Despite having a supported device for release 1.0, ARCore still fails to run on Asus Zenfone AR.

Running any of the sample java projects, such as hello_ar_java, yields a dialog notifying that the application needs the latest version of ARCore. When you click continue, you get a "Item not found. Retry" prompt. Seems the required ARCore service or APK isn't fully accessible for this supported device.

Also, the ARCore store listing within the PlayStore states "Your devices isn't compatible". So I'm unable to manually install the ARCore.apk if that's still required.

bug device support known issue

All 23 comments

Hello. Can you please send the fingerprint of your device? You can obtain it with:
adb shell getprop ro.build.fingerprint

Hey Author.

Thanks for getting back to me. The finger print is:

asus/VZW_ASUS_A002A/ASUS_A002_1:7.0/NRD90M/VZW_ASUS_A002A-V3.7.8-20170922:user/release-keys

I thought it may have been due to the device still running Android 7.0, but I see the latest ARCore release is targeting Android 7.0 and up.

Thanks for catching this and the quick response! We've pushed out a fix, so you should be able to see and install ARCore on your ZenFone now. Please let us know if you encounter any more issues.

Excellent! Can confirm the device was able to find and install the latest ARCore service from Google Play when prompted.

Although I am experiencing a different kind of problem now, as point clouds are failing to generate. May be unrelated, but either way will submit a separate bug ticket if needed after I investigate and debug further. Thanks for the quick turn-around on this!

One thing to realize about ARCore vs. Tango, is that you won't get point clouds when the device is stationary (or at least they won't update). The mapping system needs motion to be able to triangulate feature points.

So far it's failing to find anything compared to running the sample on a Pixel2, which returns a point cloud almost instantly. I think the AR session is just failing to find any trackables, motion or not. Will keep you posted as I keep debugging.

OK, just wanted to make sure expectations were reasonable since you're on a tango device :). Since you have experience on a Pixel I assume you know what the point clouds should look/act like.

Hmm. Plot thickens. Seems camera tracking state always returns "PAUSED", when the sample project calls camera.getTrackingState()

result = {TrackingState@5311} "PAUSED"
 nativeCode = 1
 name = "PAUSED"
 ordinal = 1
 shadow$_klass_ = {Class@4983} "class com.google.ar.core.TrackingState"
 shadow$_monitor_ = -1944524496

Added an error log just to confirm the PAUSED state wasn't a byproduct of being in debug mode. It does in fact always return paused.

02-23 15:31:51.087 24433-24468/com.google.ar.core.examples.java.helloar E/native: vio_initializer.cc:287 Received image measurement before corresponding IMU measurement. [245474.8174062 < 822296.9756885]
02-23 15:31:51.099 24433-24452/com.google.ar.core.examples.java.helloar E/HelloArActivity: OnDrawFrame() stopped. Current tracking state: PAUSED
02-23 15:31:51.133 24433-24452/com.google.ar.core.examples.java.helloar E/HelloArActivity: OnDrawFrame() stopped. Current tracking state: PAUSED
02-23 15:31:51.167 24433-24452/com.google.ar.core.examples.java.helloar E/HelloArActivity: OnDrawFrame() stopped. Current tracking state: PAUSED

I also include an additional error message that's coming through the logs. No idea if it's related or not.

Let me know if you want me to create a new issue at this point, as the acquired camera and tracking are all pulled via the native handles.

Lets just reopen this one for now

Sounds good to me.

Just to anticipate the first question I'm going to get internally: A full log for running for at least 30-60 seconds would be useful. Put it on pastebin or something to not clog up this bug.

Here you go:

Hello AR project Logcat: https://pastebin.com/4xRHG6Lc
Full device logcat: https://pastebin.com/pLHc0a2K

Just taking a wild guess, but this looks suspicious:

02-23 16:04:39.204 30904-10593/? D/VideoPlayerService: session[-1900996486]: asset is null, returned empty session asset
02-23 16:04:39.204 30904-10593/? E/VideoPlayerService: session[-1900996486]: no available player to getCurrentPositionMs

Have continuous instances of those 2 logs statements.

Looking at the logs, the timestamps between IMU and camera data are WAAAAY off (like, 6 days off). Maybe try restarting the phone? We're still looking into how this could have happened.

Pyscho. That actually worked. Sample is now running on restart.

Cool. There's a good chance it will break again if the phone either:

  1. goes into deep sleep for any length of time
  2. stays up for multiple days

Please re-open this issue if it crops up again. The timestamp delta in particular would be interesting (the lines with "Received image measurement before corresponding IMU measurement.")

Roger that. Will do and thanks.

Reopening as a second user has reported.

@inio Let me know if there's anything you want me to try, test, or log since it's fully functioning on my Asus device.

Not much to do. It's a known driver issue. A timer in the camera driver overflows and the camera starts reporting timestamps long in the past. This messes up our tracking algorithms. Restarting the device should fix it.

As a part of ongoing efforts to maintain ARCore repositories, I’m closing this issue as stale since it hasn’t had activity in more than 6 months. If this issue is still relevant, please feel free to file a new bug using the latest version of the SDK.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

alexeypodolian picture alexeypodolian  ·  19Comments

zansbang picture zansbang  ·  39Comments

Godric877 picture Godric877  ·  17Comments

alekostsom picture alekostsom  ·  29Comments

nbsrujan picture nbsrujan  ·  27Comments