Environment — это ИК-разметка зоны трекинга, по которой трекер определяет свое положение в пространстве.
Структура Environment
Environment состоит из ИК-маркеров. Все маркеры идентичны по своим свойствам, частоте излучения и длине волны, и постоянно излучают свет в ИК-диапазоне. Они не обладают каким-либо определенным ID.
Для удобства применения ИК-маркеры могут группироваться в элементарные паттерны, которые называются референс-барами (reference bar).
Алгоритм работы трекера с Environment
Трекер определяет свое положение, опираясь на уникальные комбинации расположения ИК-маркеров — фичи (feature). При первом включении или после потери положения (например, после закрытия объектива рукой) трекер пытается обнаружить фичу из маркеров, находящихся в поле его видимости.
В дальнейшем, после определения положения трекер видит маркеры и сравнивает их с Environment. Если расположение маркеров соответствует разметке, трекер продолжает работу по ИК-маркерам; если не соответствует — запускает процесс поиска фич.
Параметры Environment
У каждого Environment есть 2 ключевых параметра:
качество фич: показывает равномерность распределения фич. Чем выше качество фич, тем быстрее трекер определяет свое положение после включения;
качество трекинга: показывает равномерность распределения ИК-маркеров. Чем равномерней расположены ИК-маркеры, тем стабильнее и точнее работает система трекинга.
Эти параметры противоположны по своей сути. Максимальное качество трекинга достигается при равномерном размещении ИК-маркеров. При этом локальная уникальность их положения (фичи) не учитывается. Аналогично, достижение максимального качества фич снижает качество трекинга, т.к. перегруппировывает ИК-маркеры безотносительно равномерности их распределения.
Таким образом, при настройке параметров Environment нужно стремиться к балансу между качеством трекинга и фич.
В Arbitrary2D Environment маркеры также расположены в одной горизонтальной плоскости, но в отличие от HorizontalGrid Environment, они располагаются в координатной сетке произвольно и независимо друг от друга.
В Vertical Environment маркеры расположены на вертикальных поверхностях или в наших специальных вертикальных конструкциях (pillars).
Помимо Arbitrary2D Environment, создать собственный вариант Environment можно альтернативным способом. В этом случае пользователь может не только расположить ИК-маркеры произвольным образом, но и создать свой вариант алгоритма поиска маркеров (matching):