获取ARKit中一个点的绝对位置

3
当我在 ARKit 场景中点击某一点时,我会得到该点相对于我的设备位置的 XYZ 坐标(我是正确的吗?)。我想知道该点在地球上的绝对位置,而不仅仅是相对于我的设备。
到目前为止,我的想法是获取设备的经度、纬度、海拔高度、方向(罗盘方向)和姿态(旋转),并基于此计算出该点的绝对位置。
想知道是否有比这更简单的方法。
1个回答

3

ARKit没有跟踪设备位置或在“绝对”地理空间坐标中放置内容的功能。实际上,做到这一点(并且做得好)是一个难题...但有一些东西可以帮助你。

首先,查看 ARSessionConfigurationworldAlignment 设置。使用默认的 gravity 选项,x 和 z 方向是相对于设备的原始方向,即会话开始时的方向。从这里转换到地理空间坐标几乎是不可能的。

但是使用 gravityAndHeading 选项,轴固定为南北和东西方向 - ARKit 坐标系统原点的位置仍然相对于会话开始时设备的位置,但方向是绝对的。这为您提供了基础,以进行地理空间坐标的转换。

但还存在精度问题。ARKit可以跟踪到几米远的特征,精度可达几毫米。Core Location的精度为几米。因此,如果你有一个真实世界的特征,并想在其上放置虚拟内容……你可以将纬度/经度转换为ARKit空间中的位置,但你可能会发现你的内容与实际特征不够贴合。

这不是无法解决的问题,但也不是易如反掌。祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接