如何使用 Frame ARCore 获取翻译?

How to get Translation using Frame ARCore?

我正在做一个旧的 AR 项目,我正在更新它。这使用 ARCore。我能够更新所有功能,但只在某一点感到困惑。 早些时候,我可以使用当前帧并使用以下行对其进行旋转和平移:

arFrame.getPose().getTranslation(翻译, 0); arFrame.getPose().getRotationQuaternion(旋转, 0);

但现在我认为 getTranslation() 和 getRotationQuanternion() 已移至 ARCore 的 Pose 之下。那么,我该如何将其用于框架呢?

谢谢

如果您的项目是使用其中一种 SDK 预览创建的,则 ARCore API 可能会略有变化。当前姿势现在与 Camera 而不是 Frame 相关联。您可以通过先获取对相机的引用来访问姿势:

Camera camera = arFrame.getCamera();
Pose pose = camera.getPose();
pose.getTranslation(translation, 0);
pose. getRotationQuaternion(rotation, 0);

请注意,这仅在 Camera 的当前跟踪状态为 TRACKING 时才有用,因此您可能需要在提取 Pose 之前检查一下:https://developers.google.com/ar/reference/java/com/google/ar/core/Camera.html#getPose()