如何在Google Tango中检测地板和其他表面?

时间:2017-02-14 18:51:31

标签: android unity3d google-project-tango

我是Tango的新手,我想扫描一个房间

  1. 检测墙壁并将其涂成红色
  2. 检测地板和颜色蓝色
  3. 我查看了可以放猫的Tango教程。看起来{{1}}功能需要触摸位置 这是我可以用来区分墙壁和地板的东西吗?

1 个答案:

答案 0 :(得分:2)

您找到了Floor Finding Example 此外,Java API因为Caporales有更好的2D平面图计划提取。

我没有看到任何有关检测墙壁的信息,我很害怕。一旦你可靠地起到地板,就可以通过确保飞机垂直于地板来识别墙壁。

编辑:对评论的回应。

所以在快速浏览之后我想我会先采用TangoPointCloud._FindFloorWithDepth()并修改它以寻找最高深度点而不是最低点(给我们天花板!)。
现在您知道绘制墙面有多高。听起来你很高兴找到所有垂直于地板的飞机。

我们应该从最简单的情况开始,看一个没有切口的平面矩形墙(门窗等......),并且没有任何物体。我们可以将所有Perpedcidular的平面集合到地板/天花板上,并且只保留那些transform.forward指向玩家的平面。迭代这些并计算它们离开的平均距离,给我们定位墙的位置。另外,取右边和左边看到的最大值,给我们墙的长度 所以我们得到Cieling-Floor的高度,我们的宽度为maxRight-maxLeft,我们的平均位置是平面。