ARDK v2.0.0 too much drift?

  • Issue category: Real-time Mapping-Depth
  • Device type & OS version: Android
  • Host machine & OS version: Windows
  • Issue Environment : On Device
  • ARDK version: 2.0.0
  • Unity version: 2020.3.35f1

At first I thought it was just my device’s fault.

Then, it was this BBit-Solutions post that reported the same issue.

And then it was Dilmer Valecillos’ video that shows clearly two simple cubes that can’t stay firmly at their placed position.

As it seems, drifting is apparent on ARDK 2.0 on three different Android devices.

ARDK has been on my radar since day one because it succeeds in areas where ARCore/ARFoundation don’t go yet, but I fear that the basic or essential elements have been left behind. So, do you have an explanation for this behavior?

Did you use “Gravity” ?
WorldAlignment = WorldAlignment.Gravity; //Supposedly fixes drift issues while using tracking (at least that is how it was explained in a tutorial I was doing.)

After that I wouldn’t be sure what to look at, but hope you find solution :slight_smile:

Hi Natalie, thanks for the suggestion. However, this is an iOS-only setting while my tests are on Android.

My bad, And I hope you can find a solution.

Hello Manos,

Are you able to provide screenshots or video of your project experiencing drift? As explained in the video you provided, the drift occurs when localization is attempting to get the best position for the particular Wayspot. It’s also important to note that once the position was found, the drift went away almost entirely, including after clearing and re-establishing the payload.

Hi Erik. Here’s a video I shot today from an AR Core (v1.13) app I did a couple of years ago and runs on my Mi9 Pro phone. I’ve deliberately shaken my camera quite abruptly in this one:

And here’s an ARDK version using the Object Placement template, same model, same lighting conditions, same Mi9 Pro phone:

I believe it’s not just me who notices the differences…

Any feedback on this? Does anyone else experience the same drift just by using the tempates ?

I am wondering if this is my device’s problem since I didn’t have the chance to test it with another device brand (e.g. Samsung). Also, I’m curious to know if any of the following make any difference (note: they didn’t in my case):

  • -Using Application.targetFrameRate

  • -Using AR Semantic Segmentation Manager together with AR Depth Manager

  • -Disabling occlusion entirely or using a specific OcclusionMode

If i can help you to troubleshoot with more information or so, just let me know.

Accuracy issues with any AR tracking system can be caused by unintentional shaking or inconsistent motion of the camera. Please ensure steady movement when scanning locations. Additionally, since Wayspot anchors are dependent on the planes generated by the ARDK, scanning the environment for a bit first before loading Wayspot anchors can help to minimize anchored object drift.

Thank you Erik but this is not a VPS - related thread so there are no Wayspot anchors involved. This is just a simple example using the Object Placement template

Hi @Manos_Tsotros are you seeing the same amount of drift in ARDK 2.0 that you were seeing in previous versions, or does it feel like it’s increased? If you can point to an earlier release where the drift wasn’t present (or as severe) we could do a side by side comparison on our end. I’m finding it hard to compare the two examples you currently have since there are different scales to the objects, and the later ones are animated, with the camera seemingly pushed back a bit. I also noticed that the in the ARCore version, the virtual object appears to snap to a different position at some point, which could be how that version of ARCore handled the drift at the time.

Hi David, I’m happy to see that this thread is back on the right track.

First of all, let me clarify: the different position the object snaps in the ARCore video is because I placed it after tapping on the screen. So, no problem there. You’ll also notice that the ARCore object also has some basic idle animation on it.

All my tests with ARDK 2.0 templates so far result in the unsteady placement of the virtual object (as shown in the video). However, I repeat that I’m only testing with one specific device, the Xiaomi Mi9T Pro with Android version 10. I come to suspect the phone after so many tests but I can’t tell for sure because I didn’t test on another phone yet.

If you’re determined to test side by side on your end, I’d happily help by providing extra test results. However, my previous experience with ARDK was with version 1.0.1 and this version is not compiling with Unity 2019+ anymore. I could try to show results with ARDK v.1.3 if you could point me to a link to download v.1.3.