Если коротко:
SLAM одновременно строит карту помещения и определяет положение VR-гарнитуры относительно найденных ориентиров. Камеры наблюдают изменение сцены, а инерциальные датчики быстро измеряют поворот и ускорение; система объединяет эти данные. Однотонные поверхности, слабое освещение, отражения и перемещение предметов могут ухудшить локализацию и вызвать дрейф или потерю трекинга.
SLAM VR — применение одновременной локализации и построения карты для определения положения гарнитуры. Устройство наблюдает окружающее пространство, выделяет устойчивые ориентиры и оценивает, как камеры переместились относительно них. Одновременно уточняется карта помещения и положение пользователя на этой карте.
Зачем гарнитуре карта
Одного гироскопа достаточно, чтобы заметить поворот головы, но недостаточно для точного перемещения вперёд, назад и в стороны. Камеры видят, как меняется изображение комнаты, а алгоритм связывает изменения с движением устройства.
Слово «карта» не обязательно означает понятную человеку трёхмерную модель. Система может хранить набор характерных точек, плоскостей и связей между кадрами. Этого хватает, чтобы сопоставить новое наблюдение с уже известным местом.
Какие датчики участвуют
В автономной гарнитуре обычно совместно работают:
- камеры, направленные наружу;
- гироскоп и акселерометр;
- временные метки и калибровка взаимного положения датчиков;
- вычислительный модуль, выполняющий визуально-инерциальную оценку.
Инерциальные датчики реагируют быстро, но их ошибка накапливается. Камеры дают внешние ориентиры, однако зависят от освещения и текстуры поверхностей. Объединение сигналов позволяет использовать сильные стороны обоих каналов.
Как проходит оценка движения
Упрощённая цепочка выглядит так:
- Камера получает новый кадр.
- Алгоритм находит отличимые участки изображения.
- Эти участки сопоставляются с предыдущими кадрами и картой.
- Инерциальные измерения дают предварительную оценку движения между кадрами.
- Система уточняет положение и исправляет накопившуюся ошибку.
- Runtime передаёт позу приложениям и системе границ.
В реальном устройстве эти операции выполняются непрерывно. Для пользователя результатом становится устойчивый виртуальный мир: при наклоне к объекту он остаётся на месте, а не движется вместе с головой.
SLAM и inside-out tracking — не одно и то же
Inside-out tracking описывает расположение датчиков: камеры находятся на гарнитуре и смотрят наружу. SLAM — один из вычислительных подходов, который может использовать их данные. Поэтому фразы часто встречаются рядом, но обозначают разные уровни системы.
Подробнее общая цепочка разобрана в статье о трекинге в VR. Внешние базовые станции решают похожую задачу другим способом: создают или наблюдают ориентиры извне, тогда как автономная гарнитура анализирует помещение своими камерами.
Почему трекинг теряется
Алгоритму трудно работать в темноте, при резких изменениях света и рядом с однотонными поверхностями без заметных деталей. Зеркала и движущиеся экраны создают ложные признаки, а перекрытие камер руками уменьшает доступную информацию.
К сбоям также приводят:
- слишком быстрое движение;
- загрязнённые камеры;
- повторяющиеся узоры, которые сложно различить;
- перестановка крупных объектов после сохранения границы;
- недостаток вычислительного времени;
- ошибки калибровки датчиков.
Если текущий кадр удаётся сопоставить с ранее построенной картой, система выполняет повторную локализацию. Если нет, виртуальная сцена может сдвинуться или границу придётся настроить заново.
Что важно разработчику
Приложение обычно получает готовую позу через runtime или OpenXR, а не реализует SLAM самостоятельно. Но разработчик должен учитывать потерю трекинга, смену origin и восстановление координат. Нельзя предполагать, что сохранённый объект всегда останется в той же точке комнаты без механизма пространственной привязки.
Для смешанной реальности поверх базовой локализации нужны плоскости, mesh помещения, семантические метки или пространственные якоря. Эти возможности зависят от устройства и разрешений.
Итог
SLAM VR помогает гарнитуре одновременно понимать собственное положение и поддерживать карту окружающего пространства. Камеры ограничивают инерциальный дрейф, а быстрые датчики заполняют промежутки между кадрами. Устойчивость зависит от света, видимых ориентиров, калибровки и программной обработки, поэтому потеря трекинга — свойство всей измерительной цепочки, а не только камеры.