Исправление системы координат устройства независимо от ориентации устройства? - PullRequest
0 голосов
/ 15 октября 2018

Я успешно преобразовываю координаты (широта, долгота) в координаты (восток, север) и пытаюсь найти способ точного размещения координат (восток, север) в мире AR.

Пример моей текущей проблемы:

Система координат устройства:

Device coordinate system with positive and negative x, y and z axes, with origin facing camera located on the positive side of the z axis.

Преобразование из координаты (широта, долгота) дает мне (Восток, Север) координаты,

(+x, 0, +z) where x=East, z=North

Теперь, если я смотрю на север, координата EN будет размещена позади меня, поскольку ось, обращенная вперед, равна -z.Если я поверну на юг, координата EN будет размещена позади меня еще раз, потому что она зависит от ориентации моего устройства.

Мой вопрос:

В ARCore это так?Можно ли исправить систему координат устройства независимо от того, в какой ориентации находится устройство?Или есть алгоритм, который учитывает ориентацию устройства и допускает статическое размещение якорей?

РЕДАКТИРОВАТЬ:

Я разместил этот же вопрос на GitHub ARCore-Sceneform ивот ответы, которые я получил:

GitHub Question Thread

1 Ответ

0 голосов
/ 23 апреля 2019

Сначала давайте посмотрим, что инженеры Google ARCore говорят о мировых координатах :

Мировое координатное пространство

Как понимает ARCoreизменяя окружающую среду, он корректирует свою модель мира, чтобы все было согласованно.Когда это происходит, числовое местоположение (координаты) камеры и якорей может значительно измениться, чтобы сохранить соответствующие относительные положения физических местоположений, которые они представляют .

Эти измененияозначает, что каждый кадр должен рассматриваться как находящийся в совершенно уникальном мировом координатном пространстве.Числовые координаты якорей и камеры никогда не должны использоваться вне кадра рендеринга, в течение которого они были получены.Если необходимо рассмотреть положение за пределами одного кадра рендеринга, следует создать привязку или использовать позицию относительно ближайшей существующей привязки.

enter image description here

Но!

Я твердо верю, что смартфон с камерой и датчиками начинает свой путь (в ArSession) из относительного центра координатного пространства (это относительно нас, для ARCore)конечно, это абсолютно):

// X, Y, Z coordinates must be counted from zero, mustn't they?

(x: 0.0, y: 0.0, z: 0.0)

Тогда при определенных обстоятельствах мировое координатное пространство может быть изменено.

...