Log in or register to post comments

From model to ground plane coord?

July 9, 2018 - 1:18pm #1

Hi,

we are currently developing a prototype using Vuforia Fusion (Android 7+). Our physical object has been scanned with Vuforia Scanner. It is glossy and has many round features.. it is pretty much the worst possible case but we don't have the choice. We can recognize the model fairly quickly from the front only but this is okay, we can deal with that.

The main problem is that the world orientation is based on that object. With all these round features and reflections, the 3D model orientation isn't stable at all. Once a move to the sides/back, there is no more live recognition and the system seems to simply switch to the ARCore plane. The model then become stable until I come back to the front. The model recognition reactivates and it's getting messy once again.

I'm trying to find a way to get the 3D position/orientation of our physical object via model recognition. At that moment, I would turn off the physical object recognition and place some kind of anchor and I expect ARCore to handle the rest. I've been searching how to convert the ObjectTargetBehaviour position to the Ground plane stage.

Thank you!

From model to ground plane coord?

July 18, 2018 - 9:02am #3

I can't get this to work. The Anchor returned from TrackerManager.Instance.GetTracker<PositionalDeviceTracker>().CreatePlaneAnchor isn't a gameObject and I can't figure out what to do with it. How to I attach my augmentation to it?



I try to manually set the position of my augmentation to the one from the hitResult but the result is messy and does't seem to be "attached" to the ground.

I even tried to search for that particular ID but can't find it anywhere using this:

Anchor anchor = TrackerManager.Instance.GetTracker<PositionalDeviceTracker>().CreatePlaneAnchor("anchor", aHitResult);

        foreach(var trackable in TrackerManager.Instance.GetStateManager().GetTrackableBehaviours())

        {

            if(anchor.ID == trackable.Trackable.ID)

            {

               // no match

            }

        }

 

EDIT: Just found a crucial information. TIL AnchorBehaviour



Anchor anchor = TrackerManager.Instance.GetTracker<PositionalDeviceTracker>().CreatePlaneAnchor("robot_anchor", aHitResult);

augmentation.GetComponent<AnchorBehaviour>().ConfigureAnchor(anchor);

 

Still have to figure out how to get a valid world position but still.

From model to ground plane coord?

July 9, 2018 - 3:01pm #2

Hello gsylyvain,

You could try performing a hit test (https://library.vuforia.com/content/vuforia-library/en/reference/unity/classVuforia_1_1InteractiveHitTestBehaviour.html#a66edc2fe367469169a5173c785925e25) with the position of your target and then creating an anchor with the positional device tracker (https://library.vuforia.com/content/vuforia-library/en/reference/unity/classVuforia_1_1PositionalDeviceTracker.html) to achieve this.

Thanks,

Vuforia Engine Support

Log in or register to post comments