Пространственное сопоставление с использованием текущей позиции ARKit ARCamera.transform

Мне нужно найти расстояние между двумя точками внутри комнаты, используя ARKit. Я объясню мой сценарий. Внутри комнаты у меня есть одна предопределенная точка. Скажите, что это точка (x1,y1,z1). Я взял это значение из текущей позиции ARKit ARCamera.transform. Я динамически переместился в другую точку с текущей позицией ARCamera.transform (x2,y2,z2). Мое намерение состоит в том, чтобы найти реальное расстояние между ними.

func session(_ session: ARSession, didUpdate frame: ARFrame) {
    let currentFrame = frame.camera.transform
    let x = frame.camera.transform.columns.3.x
    let y = frame.camera.transform.columns.3.y
    let z = frame.camera.transform.columns.3.z
    print( "camera transform :\(x),\(y),\(z)")
}

Пожалуйста, найдите приведенный выше код, который используется для получения текущего разрешения камеры.

Теперь вот проблема. (x2,y2,z2) различается при каждом тестировании в одной и той же физической точке (обратите внимание, что моя начальная точка остается неизменной, поэтому сеанс ARKit начинается в одной и той же точке каждый раз), поэтому расстояние изменяется в большей степени. Короче говоря, я не могу полагаться на то, что ARKit даст точную точку моей камеры, текущая позиция ARCamera.transform кажется случайным значением, которое изменяется в зависимости от некоторых неизвестных фактов. По поиску я видел, что текущее положение ARCamera.transform дает положение камеры устройства. Кто-нибудь может указать решение или исправить меня, если я ошибаюсь, или скажите, пожалуйста, какова текущая позиция ARCamera.transform или как мы можем использовать текущую позицию ARCamera.transform в позиционировании в реальном мире?

0 ответов

Другие вопросы по тегам