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?

2 Likes

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:

https://lightship.dev/docs/ardk/api-documentation/enum_Niantic_ARDK_AR_Configuration_WorldAlignment.html#doxid-ardk-namespace-niantic-1-1-a-r-d-k-1-1-a-r-1-1-configuration-a89693dc3853c76337a8bb2c0307a915c-1a89693dc3853c76337a8bb2c0307a915c

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.

Trying to bring up this topic once again. I want to make sure there isn’t any exterior reasons why this isn’t working for me as expected.
Personally, I think this is an issue that has to be addressed or at least be explained as to why it works this way. I would definitely prefer ARDK over ARFoundation/ARCore any time if the drift issue was out of the way.

Some of the user videos clearly show examples with drift, while others (iPhone users maybe?) don’t.

I believe there could be eventually an explanation of the type: it doesn’t work well with phones of type X or Android phones in general or because of processing power, lighting conditions, the complexity of the 3D mesh, distance from the camera, etc. Or, even better, “we try to tackle this in a future update”.

I’ve been using Lightship since 1.0 and after upgrading to 2.1 (I was on 2.0 but didnt really do any device builds until 2.1) i’ve noticed quite a bit of drift. It wasnt this way before, tracking was actually impressively solid, but now its actually quite bad. Doesnt seem to matter what Im doing, be it simple object placement, or using VPS, both produce the same amount of drift. I’m hoping this is just a bug in the newest updates that will be fixed. I tested with Android S20, i will follow up with a iOS test soon, but both have been good in the past.

I made this with the last Lightship release before 2.0 (which is 1.3.1 i think) and you can see in the video things are staying in place. Everything being parented to just one anchor object.

1 Like

Hi,

From my experience, performance (FPS) and drift is worse in 2.1.0 than in 2.0.0, as I pointed out here, with 2.0.0 being slightly worse than 1.3.3 as well.

I just tried 2.2.0 and found FPS to be around 20% lower than 2.0.0, and very noticeable drift :frowning: Has anyone else had a similar experience with this new version?

Based on these findings, and taking into account the rest of the comments on this post, I think I’ll stick to older versions for now. I am aware that I am losing many new features, but as @Manos_Tsotros said, performance and stability are essential, especially considering the huge fragmentation of the Android market. Hopefully Niantic will fix these issues in future releases.

Did new tests on the same smartphone with ARDK 2.3 (didn’t test with 2.1 or 2.2) and I see that things now stay in place as expected. I guess Niantic fixed something but I’m not sure what.

So, I suppose this huge hurdle (at least for me) has been fixed in ARDK 2.3, so I mention it here for others to know (and maybe prove me right or wrong).

This topic was automatically closed 2 hours after the last reply. New replies are no longer allowed.