Часто задаваемые вопросы
Определения, используемые в этой документации:
Поза — положение и ориентация.
Голограмма — видимый виртуальный объект.
Реальный мир — физический мир.
Физический мир — реальный мир.
Виртуальный мир — искусственно созданный и смоделированный мир, представленный через электронный носитель.
Маркер в виртуальном мире — поза в виртуальной (смоделированной) системе координат. Это просто определенное положение и ориентация.
Маркер в реальном мире — поза относительно реального мира и камера, соответствующая маркеру в виртуальном мире. Поза маркера в реальном мире определяется комбинацией данных, доступных восприятию.
Видимые объекты — объекты в физическом мире, которые можно распознать визуально.
Что делает World Locking Tools?
Учитывая несоответствия между маркерами в виртуальном и в реальном мире, World Locking Tools предоставляет стабильную систему координат и корректировку камеры, что позволяет уменьшить видимые несоответствия.
Говоря иными словами, World Locking Tools привязывает к миру всю сцену с помощью общего пула привязок вместо того, чтобы привязывать каждую группу объектов с помощью отдельной привязки группы.
Почему маркеры в виртуальном и в реальном мире не согласуются?
Среди многочисленных замечательных технологий Microsoft Mixed Reality особенно удивительной является возможность отслеживания позы гарнитуры смешанной реальности в физическом мире в режиме реального времени без помощи внешних устройств.
Система отслеживания головы весьма точно определяет позу головы относительно известных виртуальных опорных точек в физической среде. В этом обсуждении эти виртуальные точки ссылки будут называться "видимыми объектами".
Если пользователь покидает положение, известное относительно окружающих видимых объектов, например, ходит по комнате, а затем возвращается в исходное положение, система распознает многие из этих видимых объектов. Она также может определить позы этих видимых объектов относительно текущей позы головы, и делает это с удивительной точностью.
Теперь система отслеживания знает, где эти объекты и голова расположены друг относительны друга, но не знает в абсолютном выражении ни координаты головы, ни координаты объектов. Так как в физическом мире нет абсолютной системы координат, правильный ответ отсутствует. Поэтому система отслеживания назначает координаты, которые соответствуют недавним данным, но могут быть непоследовательными в течение всего периода. Таким образом, при возврате в исходную позу у головы могут быть другие координаты. Это форма смещения датчика.
Но если координаты новой виртуальной позы головы сместились в положительном направлении оси X, то все объекты с голограммами, неподвижные в этой виртуальной системе координат, теперь смещены в сторону отрицательного направления оси X относительно головы. Это означает, что для наблюдателя в шлеме они будут смещены относительно реального мира по сравнению с тем, где они были размещены до прогулки по комнате.
Может ли Unity справиться с этим?
Да, хотя и с некоторыми ограничениями. Unity предоставляет отличный механизм для обработки такого смещения, называемый пространственными привязками. Если виртуальное пространство сместилось относительно физического пространства, за счет отслеживания базовых видимых объектов пространственная привязка знает, что нужно сместиться в виртуальном пространстве, чтобы оставаться на месте в физическом пространстве. Все, что присоединено к пространственной привязке, также перемещается в виртуальном пространстве Unity, чтобы оставаться на месте в физическом пространстве.
Ограничения связаны с тем, что видимые объекты становятся ненадежными, если они находятся далеко от камер шлема. Это не удивительно. Видимые объекты, которых не видно, плохо подходят в качестве опорных точек.
Поэтому полезный диапазон пространственной привязки ограничен 3 метрами. В зависимости от требований к точности приложения допустимый диапазон может быть меньше.
Звучит неплохо. И в чем же проблема?
Это более чем неплохо. Это поразительно. Но бывают ситуации, когда пространственные привязки не являются удовлетворительным решением.
Во-первых, каждая пространственная привязка перемещается по виртуальному пространству координат Unity независимо, пытаясь оставаться на месте тационарной в физическом мире. Это означает, что объекты, привязанные независимо друг от друга, перемещаются относительно друг друга, пытаясь оставаться на своих местах в физическом мире. Для приложения, которое пытается сохранить точное расположение, это может быть большой проблемой.
Во-вторых, с учетом ограниченного диапазона, одна пространственная привязка не будет предоставлять хорошие результаты для отдельных объектов, которые больше, чем доступный диапазон этой пространственной привязки. Хотя точки на объекте рядом с пространственными привязками останутся хорошо зафиксированными в мире, из-за эффекта рычага чем дальше находится точка от пространственной привязки, тем больше погрешность. Из-за этого у объектов или коллекции объектов размером приблизительно больше метра нет надежного решения для привязки к миру.
Что еще может пойти не так?
При возврате к ранее занимаемой позе у World Locking Tools достаточно информации для восстановления виртуальной системы координат в то положение, где она находилась относительно физического мира. Благодаря этому голограммы, которые не перемещаются в виртуальном мире, также остаются на месте в физическом мире.
Но смещение может произойти как при перемещении в одну сторону, так и при возврате на исходное место.
В качестве конкретного примера рассмотрим измерение расстояния 10 метров между двумя QR-кодами, помещенными в физической комнате, и моделирование двух соответствующих коробок в виртуальной комнате на расстоянии 10 метров друг от друга. Однако во время выполнения из-за смещения позы головы в виртуальном пространстве прохождение 10 метров между QR-кодами соответствуют перемещению на 11 метров в виртуальном пространстве.
Приложение может задействовать функцию World Locking Tools для устранения этой погрешности, предоставляя сведения для сопоставления расстояния в виртуальном пространстве с расстоянием в физическом пространстве. Поведение, предоставляемое World Locking Tools, заключается в том, что если пользователь, который находится над первым QR-кодом, посмотрит вниз, он увидит первую коробку. По мере прохождения 10 метров в физическом мире лишний метр в виртуальном пространстве будет незаметно удален, чтобы голова переместилась на 10 метров и в виртуальном пространстве. Так что когда пользователь дойдет до второго QR-кода в физическом мире и посмотрит вниз, там будет вторая виртуальная коробка, как и ожидалось.
Обратите внимание, что соответствующие корректировки будут внесены во все привязки, у которых нет эталонных данных, по мере того, как пользователь проходит мимо них по пути между двумя QR-кодами. Эта корректировка применяется плавно и максимально незаметно.
Что делать, если маркеры в реальном мире не стабильны?
Если маркеры в реальном мире обновляются динамически, World Locking Tools может настроить свою систему координат и корректировку камеры так, чтобы оптимально соответствовать текущей конфигурации.
Например, при использовании HoloLens если маркеры в реальном мире являются пространственными привязками, они будут перемещаться со временем. Они также будут перемещаться при повторной загрузке (например, замыкание цикла) и в других случаях. По мере обновления поз World Locking Tools обеспечивает компенсацию путем корректировку камеры, чтобы уменьшить наблюдаемые несоответствия между воспринимаемыми пространственными привязками и их виртуальными аналогами.
Обратите внимание, что эта компенсация обновлений положений привязок может происходить даже в отсутствие эталонных данных о маркерах. Подразумеваемые эталонные данные заключаются в том, что текущие связи между маркерами в реальном мире являются (более) правильными.
Что делать, если несоответствия становятся очень значительными?
World Locking Tools может обнаружить несколько ситуаций, в которых несоответствия между маркерами в реальном и виртуальном мире велики и их можно улучшить. Например, можно получить дополнительные сведения, которые устанавливают пространственное отношение между двумя ранее изолированными пулами маркеров. Или замыкание цикла может предложить смещение маркеров вдоль маршрута, чтобы обеспечить соответствие конечных точек.
В таких случаях World Locking Tools уведомляет клиента о возможном исправлении, и по запросу клиента выполняет исправление и уведомляет клиента о корректировках, которые нужно внести в объекты, отслеживающие маркеры в виртуальном мире. Если клиент не запросит такое исправление, World Locking Tools продолжит минимизировать наблюдаемые несоответствия.