我正在尝试最初源自ARCore示例应用程序(Java)的Android代码库。我没有将锚固定在平面上,而是将摄像机姿势存储在特定场合,然后根据存储的姿势附加锚点,但是有一些位置偏移。这通常可以正常工作但偶尔我会遇到以下问题之一:
当我尝试创建锚点时没有进一步细节的异常, 以前的日志条目: query_timestamp_s不在有效范围内(可能只是巧合)
当我尝试创建锚点时没有进一步细节的异常, 使用先前的隐秘日志消息说:无法创建PoseNode
手机冻结约三秒后重新启动(Google 像素2)
对于更深层次的故障排除以及是否有其他人遇到类似问题的想法表示赞赏。
使用可能的解决方案进行编辑:我收到了谷歌的意见,认为问题可能是由于在某些情况下在帧之间重新使用Pose对象造成的(而不是总是附加锚点和检索新的姿势进行比较)。我模糊地意识到这种限制,但似乎错过了一些地方。初步调查似乎支持这可能是因为我无法迅速重新解决问题。
答案 0 :(得分:0)
我想这是因为
随着ARCore对环境的理解发生变化,它会对其环境进行调整 保持事物一致的世界模型。发生这种情况时, 摄像机和锚点的数字位置(坐标)可以更改 显着保持适当的相对位置 它们代表的物理位置。
作为文档state。也许记录并计算自初始位置以来相机移动的确切路径(以米为单位的方向)。当您需要上一个职位时,只需使用当前位置和您记录的路径来计算过去的职位即可。