Search Unity

  1. We are migrating the Unity Forums to Unity Discussions. On July 12, the Unity Forums will become read-only.

    Please, do not make any changes to your username or email addresses at id.unity.com during this transition time.

    It's still possible to reply to existing private message conversations during the migration, but any new replies you post will be missing after the main migration is complete. We'll do our best to migrate these messages in a follow-up step.

    On July 15, Unity Discussions will become read-only until July 18, when the new design and the migrated forum contents will go live.


    Read our full announcement for more information and let us know if you have any questions.

Question How to improve AR plane floor detection on Android?

Discussion in 'AR' started by 2hTu2, Jun 8, 2022.

  1. 2hTu2

    2hTu2

    Joined:
    Dec 20, 2015
    Posts:
    3
    Good afternoon,

    I am currently working on a floor detection app for testing purposes. I have to say that I'm pretty impressed with the capabilities of what the AR foundation has to offer so far. The plane detection out of the box on Android however, is way too aggressive in my opinion. The first problem that I encountered was that it detected a lot of planes that were simply not there. Because I only need the floor plane I worked around the problem by only allowing the floor plane in the first place and then remove any other plane with the onPlaneAdded listener like so:

    Code (CSharp):
    1.    
    2. void OnPlaneAdded(ARPlanesChangedEventArgs eventArgs)
    3.     {
    4.         if(hasPlane){
    5.             foreach (var plane in eventArgs.added){
    6.                 plane.gameObject.SetActive(false);
    7.             }
    8.         }
    9.  
    10.         hasPlane = true;
    11.     }
    12.  
    Now, this works pretty decent and already looks a lot cleaner. The remaining problem however is that the plane is still very aggressive is extending. For example: It still extends all the way into my kitchen counter as well as travel through walls to connect with a piece of plane on the other side.

    I was wondering if there is any way to improve upon this. I was thinking to restrain the plane on a locked y-axis, but it seems that that is simply not possible without inheriting the AR.subsystems package which again is not possible because all the classes are sealed.

    I uploaded a picture of the problem which you can find in the Attached files. I wish for the plane to be locked only to the ground floor somehow. Is there anyway I can write constraints for when the plane should extend?

    Any other tips regarding this issue are appreciated and thanks in advance!

    Edit1: I tried Niantic's LightSail with the hope that it has better plane detection, but it seems that they just build upon ARCore's plane detection algorithm.
     

    Attached Files:

    Last edited: Jun 8, 2022
  2. AaryanPatil

    AaryanPatil

    Joined:
    Jul 13, 2021
    Posts:
    1
    I dont have a solution but would like to ask - where did you add your above mentioned code