Capturing the floor with scanner app


#1

Not a programmer but wondering if it would be an easy task to capture the floor when scanning an object that is resting on the floor.


Capturing the Floor
#2

Yes, definitely. You can modify the support plane setting in Scanner sample to capture the floor. Room Capture sample will naturally capture the floor, as well.


#3

Interesting. I need to revisit the app. Last time I was playing with it I couldn’t figure this out either. Would be great to be able to lower the plane setting. Not sure I’m a fan of the app auto located the ground, I’ve been so used to how Scanect functions.


#4

This isn’t a setting in the current Scanner app, is it? You’re just saying that we could muck with the SDK and get it to scan the floor, I’m assuming. If not! What are the steps to modify the support plane?

thanks


#5

No unfortunately it’s part of the code


#6

Here are two possible code changes you can try in Scanner sample:

Option 1: This should let you keep the same cube-on-ground but have the ground as part of the model.

Option 2: This will make it a mode Skanect-like volume initialization.


#7

Thank you Jeff much appreciated.


#8

I tried option one before I came to the forums and it did not work.

Seeing it here, I got excited and tried it again and it definitely does not work. To be clear, I am changing the line in ViewController.mm in the function enterScanningState.

Are you sure that is supposed to work or am I doing something wrong?

Second solution did not seem to work for me either. I get a huge blue box that is on the right half of the screen and captures nothing no matter how I place it.


#9

I tried the STCameraPoseInitializerStrategyGravityAlignedAtVolumeCenter and STCameraPoseInitializerStrategyGravityAlignedAtOrigin options with version 0.71 of the SDK.

With the first option the scanning volume appears (in a strange but probably correct location - somehow the far lower left corner of the volume is set, and the scan progresses from there), and it is possible to make a scan. In practice this is far from ideal, because for some objects and environments, it may not be possible to place the device at the required location due to physical obstacles.

With the second option, the scanning volume appears in a more usable location (scanning would need to be started where you want the center of the bounding volume to be in the result, which is more doable), but no colored depth values appear and no scan is produced.

It would be really beneficial if it were possible to set the full bounding volume information (pose and size, in the world coordinate system, where the starting point of the camera is probably 0,0,0) for the scan. The current modes are quite limiting.

If the ability to move the full transformation and size of the bounding volume is present (we really need this functionality in the Unity plugin!), then we could easily implement our own scanning-volume-placement user interface. We need this for example for scanning in technical scenarios, where in some cases the floor is not even flat.

Is a feature like this planned for 0.8, or a future version of the SDK?

It would be extremely valuable for ideas we have for Structure Core as well.


#10

You can do pretty much anything you want with the bounding box. Is this close to what you need?

Fixed bounding box floor capture


#11

Hi Jim,
Thanks for your answer. Yes, that is exactly what we need!

To be precise, we want to be able to do this from Unity, what would it take to make that possible?
AFAIK, the Unity SDK has less flexibility than the native one. Or is the source of the Unity SDK available perhaps? Then we could add the feature ourselves.

I’ll continue in a PM…


#12

Linking to a previous (brief) answer about modifying the Unity plugin. You can tweak / add to the native side, and modify the script side to add interfaces.