PDK*_*PDK 17 ios core-motion ios11 xcode9-beta arkit
在启用世界跟踪的情况下运行ARKit会话时,Xcode控制台会显示关于(我假设:减少)跟踪性能的日志消息,即使
AR Session处于Normal跟踪状态,
我在光线充足的办公室里使用该设备,有很多"功能"来检测,和
TLDR:我想了解可能导致它们的原因,它们有什么影响,以及如何防止它们,或者在它们发生时(重新)对它们采取行动 - 注意.不是简单地隐藏错误.
[Technique] World tracking performance is being affected by resource constraints [0]
[Technique] World tracking performance is being affected by resource constraints [1]
Run Code Online (Sandbox Code Playgroud)
控制台应用程序显示这些来自库ARKit并属于日志记录类别技术.虽然它们听起来像是警告,但Console应用程序会将其类型显示为错误.
正如预期的那样,在使用世界跟踪时,控制台应用程序确实会CoreMotion在错误发生时显示大量日志,但这些行似乎不包含任何错误,警告或其他有助于我诊断正在发生的事情的信息.
当错误出现在日志中时,没有委托回调,但最终(5秒或50秒之间的任何事情)屏幕将冻结,回调会话失败:
Error Domain=com.apple.arkit.error Code=200 "World tracking failed." UserInfo={NSLocalizedDescription=World tracking failed., NSLocalizedFailureReason=World tracking cannot determine the device's position.}
Run Code Online (Sandbox Code Playgroud)
ARKit源代码/ 文档没有提供关于"资源限制"可能导致无法确定设备位置的任何提示,它只是读取:
世界跟踪遇到致命错误.
我已经尝试(没有成功)阻止警告出现:
重置会话跟踪:仍然是错误,
通过删除所有ARAnchors:仍然错误重置会话,
禁用平面检测(一旦不再需要):仍然是错误,
暂停AR会话会使警告静音(有意义,因为这意味着设备会在暂停时停止跟踪其移动),但在恢复会话时,警告会返回.
当关闭会话并重新创建它(即关闭VC并重新创建)时,虽然没有移动相机(或更改了照明),但问题并不总是重新出现.
我最好的猜测是,在Apple 解释世界跟踪如何工作的情况下,闪烁的TL灯是导致跟踪性能警告的原因:
...视觉惯性测距法.此过程将来自iOS设备的运动感应硬件的信息与设备相机可见场景的计算机视觉分析相结合.ARKit识别场景图像中的显着特征,跟踪视频帧中这些特征的位置差异,并将该信息与运动感测数据进行比较.
(iPhone 6S,iOS 11 beta 4,后台没有其他应用程序运行)
问题:
[0]和之间有什么区别[1]?
什么可能导致这些错误?
在ARSession尚未失败的情况下对他们有什么影响?我假设我们会看到"跳跃"模型,因为帧更新提供的世界坐标不准确 - NB.在重置/停止ARAnchor跟踪之后仍然发生错误.
我们是否知道AR会话即将失败,还是意外?(再次,ARSession跟踪状态变为"有限"后不会立即失败)
有没有办法解决这个问题,例如,释放这些提到的"资源限制" - 甚至可以防止它们发生?
这个错误发生在我身上,因为我在故事板上手动添加了一个视图控制器,并向ARSKView其中添加了一个。这会将其作为子视图添加到 a 中UIView,默认情况下,该视图是 a 中的子视图UIViewController。因此,为了支持横向和纵向,我必须添加自动布局约束,这由于某种原因触发了此错误。
当我查看库存 AR 项目时,它ARSKView是视图控制器的直接子级,它支持开箱即用的所有视图尺寸和方向,没有自动布局约束。当我这样设置时,错误就消失了。
| 归档时间: |
|
| 查看次数: |
6589 次 |
| 最近记录: |