【问题标题】:ARKit – How to track iPhone camera location during ARSession?ARKit – 如何在 ARSession 期间跟踪 iPhone 摄像头位置?
【发布时间】:2021-03-02 19:39:50
【问题描述】:

我是 Xcode 的新手,所以任何和所有的帮助都是天赐之物。我正在尝试编写一个应用程序,以设定的时间间隔保存来自 iPhone 的位置和旋转数据并将其保存到文件中。现在,我不知道在哪里获取这些数据。

CoreMotion 似乎还不够,所以我正在使用 ARKit。我有一个可以看到原点和特征点的场景视图,但同样,当涉及到跟踪相机的位置时,我还是被卡住了。

【问题讨论】:

  • 对于刚接触 iOS/Swift/Xcode 的人来说,这听起来像是一个相当复杂的项目。如果您希望获得帮助,您需要先自己尝试一些东西,向我们展示您的努力和代码,并大大缩小您的问题范围。

标签: swift iphone xcode augmented-reality arkit


【解决方案1】:

您可以通过变换矩阵(simd_float4x4 类型)访问 ARCamera 以检索位置和旋转。此信息包含在运行 ARSession 中的每个 ARFrame 中。

let sceneView = ARSCNView(frame: .zero)

let frame: ARFrame = sceneView.session.currentFrame!
let cameraPosition: simd_float4 = frame.camera.transform.columns.3
let cameraRotation: simd_float3 = frame.camera.eulerAngles

考虑到来自 CoreMotion 的 ARCamera 的姿势值已被过滤。

【讨论】: