AR Planes generating in thin air + Tracking inaccuracies

Hello All,
Currently building a simple model placement app. Started with the basic intro sort of set up, just a simple ARRaycast from the touch position, if it hits something instantiate a prefab at the hit pose. I have two problems.

  1. The planes that the Plane Manager detect extend off into thin air, and will sometimes also just appear out of nowhere. Their size and shape never gets corrected, they just keep getting bigger and more numerous. The scene very quickly because too cluttered to be able to accurately place anything anywhere.

For reference I also built the SimpleAR scene in the ARFoundation Samples from github, which is a very close match to what I’ve got at the moment. I will occasionally get the same problem, but overall the example scene is much more accurate.

  1. I find I get drifting and jumping a little too often for my placed objects. Important to note I am using ARAnchors as parents (and I have a system in place to insure an anchor component actually exists on the object) and then attaching my content as children to them. Despite this setup, the problem persists. It is also especially noticeable when I have Multithreaded Rendering enabled.

My question is how can I improve the improve the accuracy of trackable detections and tracking in my project? Specifically, is there a way to raise the threshold for what the Plane Manager ‘sees’ before it says that it creates a plane? Is there also a way to constrain/reduce the size of the generated planes so they dont get out of hand?

I am using a Google Pixel 4a with the latest version of android. Any help would be highly appreciated.

Devices without LiDAR will have less accuracy. Out of curiosity, how is the environment you’re scanning? Is it dark, bright? Full of features that can be identified as reference points or just a blank surface? Without LiDAR these are quite important factors to consider.

1 Like

I’ve tried it in a few different environments including my apartment, the shop I work at and outside in the streets as I go for a walk. Lighting ranges from medium to very bright. Definitely plenty of feature points.

I’ve gone and copied all the project settings from the Simple AR sample scene found on Github and made sure I’m using the same package versions and yet the sample scene still seems to be more accurate. I’m wondering if theres some sort of setup script in the samples I’ve missed that configures things to be more accurate?

Hi,

I know that I’m digging an old post but did you ever figure out the issue? Have you tried with another phone than a pixel.
I’m having significant drift on 2 pixel 6 phones I tried my scene on and a pixel 4 but it works fine on a Samsung note and a pixel 3…

Thanks!

Chris

1 Like

Thanks for the heads up @christophe_unity . I’ve also seen very bad ARCore performance on Pixel 6 Pro and don’t have another Android device at my desk to use as a reference.

FYI we are also tracking down a drift issue in AR Foundation 5 (seemingly caused by the Input System’s TrackedPoseDriver) where camera images and AR data are not frame-aligned. The workaround for this issue is to use AR Foundation 4 for now unfortunately. You can follow our progress here: [Bug] ARFoundation 5.0.2 drift issue · Issue #1063 · Unity-Technologies/arfoundation-samples · GitHub

Just wanted to confirm that there is still poor performance of AR Core on the Pixel 6 pro (Unity 2022.3 & AR Foundation 5.0.6).

The same app using the same environment results in completely different results when running an ARkit app on iOS and an ARcore app on Android. The ARkit app picks up many planes almost instantly, vertical or horizontal, and is able to correctly label them. ARcore on the other hand requires looking at the same area for >5 seconds, and then barely will be able to identify only part of the floor plane.

I can post videos of the comparison if needed. But I’m not sure if this is a hardware limitation of the pixel or some ARcore software issue. I don’t have any other android devices available to test at the moment.

We also continue to observe poor ARCore performance on Pixel 6 Pro. We have notified Google of the issue.

Thank you! For my curiosity, do you know if this extends to the pixel 7 pro? I bought a pixel 6 pro to be my android developer device, but if it is fixed with the 7 pro I will return and get the newer device.

I’m using a Pixel 7 and this is the first device I’ve used with AR and so I’ve nothing to compare it to. But I can say that I found plane tracking to be very bad.

The camera input drift happening in AR Foundation 5.X when using TrackedPoseDriver will be fixed starting from the following Unity versions:

  • 2021.3.29f1
  • 2022.3.6f1
  • 2023.1.5f1
  • 2023.2.0a23

This should greatly improve stability for tracked objects.