No ground on ARDK v2.0

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

Bug reproduction steps:
Has something changed with the ground detection?

When i build my project with ARDK 1.3.1, everything works fine, but when building exactly the same with ARDK 2.0.0, my Pixel 6 Pro only detects walls and ceiling, but no ground anymore.
1.3.1 also seems to detect the whole mesh ways faster and precise… :thinking:

Has anybody the same issues or an idea?

Hi BBIT,

In order to help you further I need to collect some information. Could you please tell me the following:

  • What is the OS on your device?
  • What version of windows are you using?
  • Have you checked the release notes for Version 2.0? ARDK 2.0.0 Release Notes 2022-05-17

There are two breaking changes that have been noted for [Contextual Awareness].

  • [Contextual Awareness] Removed ARCameraFeed and the ARCameraRenderingHelper, which were deprecated when the new ARFrameRenderer (and ARRenderingManager and ARVideoFeed extensions) were introduced. See the Release Notes for ARDK 1.0 (available on the docs site) for a guide on how to switch projects from using ARCameraFeed + ARCameraRenderingHelper to the new rendering APIs.

  • [Contextual Awareness] Removed obsolete DepthPointCloudGenerator.Settings properties. Replaced IARWorldTrackingConfiguration.DepthPointCloudSettings with IARWorldTrackingConfiguration.IsDepthPointCloudEnabled property.

Could you try adjusting your build with these changes in mind? Please let us know if this helps.

1 Like

Hi Jason, thanks for trying to help.

  • It’s Android 12 on my device. (But i build it for Target API Android 10, because of the problems which are discussed in lots of other threads in the forum here^^)
  • It’s Windows 10
  • I don’t use neither ARCameraFeed nor ARCameraRenderingHelper → only ARRenderingManager
  • Also don’t use the DepthPointCloudGenerator, only the ARDepthManager (with Occlusion Mode set to None)

Hi @Jason_Rose1 , any news about that?
ARDK 2.0 just works unfortunately in general so extremely worse and slower than 1.3.1, also for all the templates etc.

Are you aware of that and will it be fixed, or is this version using completely new CV algorithms in the background now?

Would be just good to know, if it makes sense at the moment to switch to 2.0 with the project, and risk it’s not working well anymore or stay on 1.3.1 and risk that it will be deprecated soon.

@BBIT-Solutions,

Low performance is one of those things that are just hard to troubleshoot, so I’m going to need to dig a bit to figure out exactly what’s going on. Regarding your questions though,

Are you aware of that and will it be fixed, or is this version using completely new CV algorithms in the background now?

Hard to say, there is a known issue that could be related:


[Contextual Awareness] Call to SemanticsProcessor.GetChannelNamesAt() takes ~0.1 ms which adds up when sampling multiple pixel locations

Having said that, I can try to investigate and see if I can find a root cause for the slow down, do you see the performance difference in any of the samples/tutorials in the lightship docs?

Would be just good to know, if it makes sense at the moment to switch to 2.0 with the project, and risk it not working well anymore or stay on 1.3.1 and risk that it will be deprecated soon.

This is kind of up to you really, we obviously suggest switching to the newest versions since otherwise you won’t have access to new features, improvements and bug fixes. But if those are not worth the change for you, then you can keep working with the older version.

At the moment there is no NEED to upgrade and there is no plan on deprecating already working features in 1.3.1.

Hi @Gilberto , thank you.
I see, if i can help you to troubleshoot with more information or so, just let me know.

ok, that’s at least good to know. I also would of course prefer to use the latest version, but for now it’s more important that it works :slight_smile:

Yes, i tried e.g. something like this one. Or also the 3 different templates in the Contextual Awareness section, which are using meshes.

Little Update:
I have 2 Projects:
Project A: Uses ARDK 1.3.1 and the Examples and Mock environment for it
Project B: Uses ARDK 2.0.0 and the Examples and Mock environment for it

In each one I’ve build a scene only to visualize Meshing. (Without using any prefabs, templates or similar). So that i have now in each project the exact same scene with exact same Hierarchy (same GameObjects, same Components).

Project A shows the ground and finds everything immediately and the mesh is very fine. Project B only finds walls and ceiling, is (subjectively) very slow and the mesh is extremely “rough” (e.g. you can’t regognize Bottles on a desk or similar).

When i bring the scene from Project B into Project A, so that there are really the exact same scenes in the same Project, it still does not show the ground.

But when i go the other way and bring the scene, which was originally created in Project A, into Project B, i can see the ground in a project using ARDK 2.0.0 :partying_face:

It is really confusing, because it seems then in the end not to be a problem with the ARDK 2.0.0 itself, but with anything else (just what???)

So, this is at least a workaround, to be able to use Ground Detection on a mesh in ARDK. Maybe it helps anybody, too. Or it helps you for troubleshooting @Gilberto

But really wonder why it works, and would be nice, if it could be fixed, so that you can create a scene also directly in the project, which you really use :slight_smile:

Hi @BBIT-Solutions , when you say that performance is generally worse in ARDK 2.0 vs 1.3, is this just for meshing, or are there other features that you’re referring to as well, (such as depth and semantics). If so, could you please list out what those are so that we can take a look?

Also, are you just seeing this on Android, iOS, or both? Thanks in advance.

Hi David,
i tested it only on Android so far and mainly for meshing, where it’s extremely noticable.

Also have the feeling that the plane detection is a bit slower (but that’s pretty subjective and not sure if it’s based on the same CV algorithm anyhow).

Have not tested/compared the other features so far.

1 Like