3
votes

I'm working on Augmented reality using Project Tango. After loading adf file I place a 3d object to each positions those are marked during area learning process, and it adds 3d objects

I expected 3d object to be static as those objects were placed exactly on particular place using Coordinate object, but those get misplaced and even oscillating when I move camera

What I found to be the reason is whenever Tango gets connected, current position is taken as origin (0,0,0) and objects get placed (after recognising loaded adf, of course) relative to this origin

Is there any other way to precisely place 3d objects and making them static?

2

2 Answers

1
votes

First, the position of object is relative to ADF that being saved. In order to get the object restores to the original location, you will need to get relocalized. That requires: 1. loading the ADF. 2. walk around the area and relocalize the device.

Tango Service start as (0, 0, 0) for the device with respect to start of service pair. But once the device is relocalized, app will start to receive the device with respect to area description frame pair's callback.

If you are using Unity, Area Learning example is doing exactly the same thing you are looking for.

0
votes

Probably if you are placing good the scene, is up to tangoCoordinateFramePairs: Normally if you are using an ADF file you should set :(in java)

   tangoCoordinateFramePairs.add(new TangoCoordinateFramePair(
    TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION,
    TangoPoseData.COORDINATE_FRAME_START_OF_SERVICE));

Then in your render has to place correctly the scene.