Если коротко:

SLAM одновременно строит карту помещения и определяет положение VR-гарнитуры относительно найденных ориентиров. Камеры наблюдают изменение сцены, а инерциальные датчики быстро измеряют поворот и ускорение; система объединяет эти данные. Однотонные поверхности, слабое освещение, отражения и перемещение предметов могут ухудшить локализацию и вызвать дрейф или потерю трекинга.

SLAM VR — применение одновременной локализации и построения карты для определения положения гарнитуры. Устройство наблюдает окружающее пространство, выделяет устойчивые ориентиры и оценивает, как камеры переместились относительно них. Одновременно уточняется карта помещения и положение пользователя на этой карте.

Зачем гарнитуре карта

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

Слово «карта» не обязательно означает понятную человеку трёхмерную модель. Система может хранить набор характерных точек, плоскостей и связей между кадрами. Этого хватает, чтобы сопоставить новое наблюдение с уже известным местом.

Какие датчики участвуют

В автономной гарнитуре обычно совместно работают:

  • камеры, направленные наружу;
  • гироскоп и акселерометр;
  • временные метки и калибровка взаимного положения датчиков;
  • вычислительный модуль, выполняющий визуально-инерциальную оценку.

Инерциальные датчики реагируют быстро, но их ошибка накапливается. Камеры дают внешние ориентиры, однако зависят от освещения и текстуры поверхностей. Объединение сигналов позволяет использовать сильные стороны обоих каналов.

Как проходит оценка движения

Упрощённая цепочка выглядит так:

  1. Камера получает новый кадр.
  2. Алгоритм находит отличимые участки изображения.
  3. Эти участки сопоставляются с предыдущими кадрами и картой.
  4. Инерциальные измерения дают предварительную оценку движения между кадрами.
  5. Система уточняет положение и исправляет накопившуюся ошибку.
  6. Runtime передаёт позу приложениям и системе границ.

В реальном устройстве эти операции выполняются непрерывно. Для пользователя результатом становится устойчивый виртуальный мир: при наклоне к объекту он остаётся на месте, а не движется вместе с головой.

SLAM и inside-out tracking — не одно и то же

Inside-out tracking описывает расположение датчиков: камеры находятся на гарнитуре и смотрят наружу. SLAM — один из вычислительных подходов, который может использовать их данные. Поэтому фразы часто встречаются рядом, но обозначают разные уровни системы.

Подробнее общая цепочка разобрана в статье о трекинге в VR. Внешние базовые станции решают похожую задачу другим способом: создают или наблюдают ориентиры извне, тогда как автономная гарнитура анализирует помещение своими камерами.

Почему трекинг теряется

Алгоритму трудно работать в темноте, при резких изменениях света и рядом с однотонными поверхностями без заметных деталей. Зеркала и движущиеся экраны создают ложные признаки, а перекрытие камер руками уменьшает доступную информацию.

К сбоям также приводят:

  • слишком быстрое движение;
  • загрязнённые камеры;
  • повторяющиеся узоры, которые сложно различить;
  • перестановка крупных объектов после сохранения границы;
  • недостаток вычислительного времени;
  • ошибки калибровки датчиков.

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

Что важно разработчику

Приложение обычно получает готовую позу через runtime или OpenXR, а не реализует SLAM самостоятельно. Но разработчик должен учитывать потерю трекинга, смену origin и восстановление координат. Нельзя предполагать, что сохранённый объект всегда останется в той же точке комнаты без механизма пространственной привязки.

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

Итог

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

Поделиться:TelegramВКонтакте

Источники

  1. Habr — обзор методов отслеживания положения для VR
  2. Microsoft Research — Introduction to visual-inertial SLAM
  3. VRTrend — как работает отслеживание положения