Как получить более надежное отслеживание позиции Y для Google Tango в Unity?

У нас есть сцена единства, которая использует площадное обучение, которое было чрезвычайно надежным и последовательным в отношении положения XZ. Однако мы заметили, что иногда положение Y камеры танго-дельта «подпрыгивает» очень высоко в сцене. Когда мы принудительно перемещаем танго (закрывая датчики на несколько секунд), положение Y остается очень выключенным. В других случаях положение Y изменяется на 0,5–1,5 единицы, когда мы впервые запускаем наше приложение Unity на танго и удерживаем его в том же положении в той же комнате, используя тот же файл ADF. Есть ли способ получить более надежное отслеживание положения Y и/или исправить эти скачки?


person Veronica So    schedule 31.01.2016    source источник


Ответы (1)


(В этом контексте все координаты XYZ указаны в соглашении Unity, x справа, y вверху, z вперед)

Позиция Y должна работать так же, как координаты XZ, она перемещается по высоте на основе начала координат ADF.

Но обратите внимание, что происхождение ADF - это то, где вы начали изучать (записывать) ADF. Допустим, вы начали сеанс обучения, держа устройство в обычном положении, тогда источник ADF может быть немного выше уровня земли. Когда вы создаете виртуальный мир для перемещения, вы должны учитывать разницу в высоте.

Еще одна вещь, которую нужно проверить, это убедиться, что для префаба DeltaPoseController не установлено смещение или исходное местоположение. DeltaPoseController возьмет начальное стартовое преобразование как смещение, а add up позирует на него. Например, если начальная позиция моего DeltaPoseController находится в (0,1,0), а моя поза с устройства — (0,1,1), то фактическая позиция для DeltaPoseController в Unity будет (0,2,1). Это относится как к перемещению, так и к вращению.

Еще один продвинутый (и предпочтительный) способ определения уровня земли — использовать датчик глубины для определения высоты земли. В примере дополненной реальности Unity, показало, как обнаружить самолет и поставить на нем маркер. Вы можете легко применить аналогичный метод к плоскости земли, выполнив PlaneFinding. и поместите землю на нужной высоте в мировом пространстве Unity.

person xuguo    schedule 02.02.2016