Skip to content
This repository has been archived by the owner on Mar 2, 2018. It is now read-only.

AreaDescriptionManagement example fails at extending ADF #80

Closed
y22ma opened this issue Feb 13, 2017 · 20 comments
Closed

AreaDescriptionManagement example fails at extending ADF #80

y22ma opened this issue Feb 13, 2017 · 20 comments

Comments

@y22ma
Copy link

y22ma commented Feb 13, 2017

When I select an existing ADF and click extend, the produces the following error message:

Failed to connect to Tango Service.

Same issue can be reproduced when I set area description learning mode to be true, and start the tango application with an existing ADF in AreaLearning example.

@chaosemer
Copy link
Contributor

Hi!

Have you customized the samples at all before running it? There are some configuration options that are incompatible. You should see a warning <!> if that is the case.

It'd be really helpful here if you could share a picture of the scene's Tango Application settings as well as a logcat of the run.

@y22ma
Copy link
Author

y22ma commented Feb 23, 2017

@chaosemer sorry for the late reply, but no I haven't customized the example. Will follow up with the logcat and screenshot.

@y22ma y22ma closed this as completed Feb 23, 2017
@y22ma y22ma reopened this Feb 23, 2017
@bradhoekstra
Copy link

@chaosemer: I've been working with @y22ma on this and see the same issue. Here are my tango settings and the logcat after I click the start button in the area learning scene.

screen shot 2017-02-23 at 11 25 49 am
TangoLearningModeLog.txt

@chaosemer
Copy link
Contributor

Thanks for the logcat, I've reported the issue to our internal bug tracker.

@ryo0ka
Copy link

ryo0ka commented Mar 2, 2017

I have been experiencing the same issue.

Seemingly Tango service is set to time out in 10 seconds as it attempts to load an ADF. When the service takes about 10 seconds to load an ADF, it crashes, given any files that are large enough to make it happen.

This issue has been questioned several weeks ago in SO: http://stackoverflow.com/questions/41722328/file-size-limit-for-extending-adfs and as you can see, the above paragraph is the summary of our two's current observation. I hope this helps you identify the cause.

My project deals with a fairly large area - at the moment I would have to learn the whole area whenever a part of it was not learned enough in the previous learning. I would really appreciate that this issue is addressed soon.

@bradhoekstra
Copy link

Yes, this is the same issue. The ADF we were trying to extend was around 120MB.

@ryo0ka
Copy link

ryo0ka commented Mar 2, 2017

Yes this happens with any ADF's that are large enough for the service to take more than about 10 seconds to load. My ADF's whose size is ranged from 110MB to 180MB all crash the service in said exact time. As far as watching debug info, when the service crashes, the memory allocation depends on the size of ADF's.

@bradhoekstra
Copy link

Thanks @ryo0ka. I think ideally, assuming the loading of the ADF cannot be sped up, that the C# API should expose the ability to customize the timeout.

@ryo0ka
Copy link

ryo0ka commented Mar 2, 2017

@bradhoekstra I think so too. However, timeout is not mentioned in API's of either Unity/Java/C, except in the list of exceptions in UX framework as a "critical error" (https://developers.google.com/tango/ux/ux-framework-exceptions). It's probably set internal to the service itself (https://developers.google.com/tango/apis/overview) not providing an access to it not only for Unity's but also C's, which Unity's is based on. I suppose this is not only about Unity API but their decision making as to what of Tango service should be exposed - anyways yes I think this is appreciated to be somehow configurable.

@rampartisan
Copy link

Hey,

I think I am having a similar issue, with saving large meshes at high scanning resolutions. If my issue is the same (not 100%) then I would also like to add my wish for this to be configureable. In the meantime has anyone found a workaround?

@chaosemer
Copy link
Contributor

Unfortunately, extending existing building-scale area descriptions is not a supported use case. I suggest splitting off the work into two passes: one pass to create an area description for the area you want to reconstruct, and a second pass where you reconstruct the world and load the area description in "Load Existing" mode instead of in "Learning" mode.

Please tell me if this works for you.

@bradhoekstra
Copy link

Unfortunately, this does not work for us. Sometimes we need to add new areas to the ADF after the first scan, and sometimes the initial ADF does not relocalize well in certain areas and needs to be improved. The problem with creating a new ADF is that it invalidates the old co-ordinate frame.

A possibly workaround would be the ability to base a new ADF off the co-ordinate frame of an existing ADF, that doesn't appear to be possible right now either.

@rampartisan
Copy link

Hey chaosemer, the issue i am having is with saving/creating a brand new adf after scanning, if the mesh is too large the adf seems to save (the Device can localise) but the mesh data is empty. It seems that i am timing out when going from tango dynamic mesh to adf mesh and serialising.

@chaosemer
Copy link
Contributor

@bradhoekstra, unfortunately we do not support the use case of extending area descriptions at building scale. You can localize in another area and then walk to the area you want to mesh.

@chaosemer
Copy link
Contributor

@rampartisan, I suggest saving the brand new area description without a mesh. Saving an area description disconnects from Tango and takes multiple seconds. Build a mesh in a second pass.

@rampartisan
Copy link

@chaosemer I am unsure what you mean by second pass: a second scan as an extension or create the ADF, reconnect to the tango service and then save the mesh?

@ryo0ka
Copy link

ryo0ka commented Mar 15, 2017

@chaosemer Thank you for your support.

@chaosemer
Copy link
Contributor

@rampartisan, I would suggest the second of your options. First pass you create an Area Description, then you disconnect from Tango and reconnect without learning mode enabled, just load the Area Description. In this second pass, you create and save the mesh.

@rampartisan
Copy link

@chaosemer I am still a little unclear, this would require a second physical scan by the user?

My current workaround is to call Tango3DRExtractWholeMesh, populate an AreaDescriptionMesh with the data and serialise with a temporary file name BEFORE saving the adf. Then whilst saving the adf I rename this temp file to the ADF uuid.

I currently have an issue loading this mesh, as it can be larger than unity's built in limit but thats a unity issue!

@chaosemer
Copy link
Contributor

Yes, I'm suggesting a second physical scan, but your idea sounds smoother. 👍

In general, I do suggest you capture and Area Description in one dedicated pass when possible and avoid opening existing Area Descriptions in learning mode.

I'm going to close this, sounds like you're unblocked.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants