СПОСОБ И СИСТЕМА ДЛЯ ОПТИКО-ИНЕРЦИАЛЬНОГО ТРЕКИНГА ПОДВИЖНОГО ОБЪЕКТА
METHOD AND SYSTEM FOR OPTICAL-INERTIAL TRACKING OF A MOVING OBJECT

Область техники
Изобретение относится к способу и системе для обратного оптико-инерциального трекинга подвижного объекта для систем виртуальной или дополненной реальности, систем внутренней (в том числе складской, производственной или торговой) логистики, робототехнических систем, беспилотных подвижных объектов и иных систем производственного, научного, учебного и т.п. назначений.
Уровень техники
Трекинг подвижного объекта в системе виртуальной реальности (VR, Virtual Reality) или в системе дополненной реальности (AR, Augmented Reality) означает отслеживание положения и ориентации подвижного объекта, учитываемых при формировании изображения, демонстрируемого пользователю системы.
По конфигурации системы трекинга различают прямой трекинг, в котором датчик или несколько датчиков расположены в пространстве вне подвижного отслеживаемого объекта, а опорная точка или несколько опорных точек, используемых для отслеживания, находится на отслеживаемом объекте, и обратный трекинг, в котором датчик или несколько датчиков расположены на отслеживаемом объекте, а опорная точка или несколько опорных точек, используемых для отслеживания, находятся в пространстве вне подвижного отслеживаемого объекта.
По виду датчиков различают оптический трекинг, в котором использованы оптические датчики, например, камеры, работающие в видимом или инфракрасном диапазоне света, и инерциальный трекинг, в котором использованы инерциальные датчики, например, гироскопы и акселерометры. Кроме того, в системах трекинга применяются датчики магнитного поля (магнетометры), датчики высоты над уровнем моря (альтиметры) и некоторые другие виды датчиков.
Существуют также системы трекинга с использованием централизованных систем позиционирования - глобальных или локальных, спутникового или наземного базирования.
Большинство систем трекинга, предназначенных для применения в игровых, развлекательных и обучающих системах VR/AR, представляют собой комбинированные системы. В частности, широкое распространение получили оптико-инерциальные системы трекинга, основанные на совместном применении оптических и инерциальных датчиков, дополняющих друг друга и компенсирующих недостатки друг друга.
Известны системы, реализующие обратный оптико-инерциальный трекинг, в которых видео камера расположена на подвижном отслеживаемом объекте, а оптические светоизлучающие или световозвращающие маркеры, представляющие собой опорные точки для оптического трекинга, неподвижно установлены заранее определенным образом на площадке или в помещении рабочей зоны, при этом на отслеживаемом объекте находятся также гироскоп и акселерометр, данные с которых используются совместно с данными с видеокамеры для определения положения, ориентации, скорости и направления движения, ускорения и иных параметров отслеживаемого объекта, причем для предсказания этих параметров с целью компенсации алгоритмических и аппаратных задержек применена экстраполяция данных.
Из патентного документа US9352230 известна система прямого оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра и применена экстраполяция данных для предсказания параметров подвижного объекта. Недостатком такой системы является необходимость применения нескольких неподвижных камер для охвата рабочей зоны, размер которой был бы достаточен для игровых, развлекательных и обучающих систем VR/AR. В документе упоминается возможность реализации обратного оптико-инерциального трекинга, однако технические подробности такой реализации не раскрыты.
Из патентного документа US2017177937 известна система обратного оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра и применена экстраполяция данных для предсказания параметров подвижного объекта. В такой системе отсутствуют маркеры, установленные заранее определенным образом на площадке или в помещении рабочей зоны и представляющие собой опорные точки для оптического трекинга. Использование в качестве опорных точек характерных архитектурных или природных особенностей окружения увеличивает требования к вычислительной мощности системы и в условиях ограниченности вычислительных ресурсов неизбежно приводит к снижению быстродействия системы.
Из патентного документа US2008300055 известна система прямого оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра и применена экстраполяция данных для предсказания параметров подвижного объекта. Недостатком такой системы является необходимость применения нескольких неподвижных камер для охвата рабочей зоны, размер которой был бы достаточен для игровых, развлекательных и обучающих систем VR/AR. В документе упоминается возможность реализации обратного оптико-инерциального трекинга с размещением камеры в браслете, однако технические подробности такой реализации не раскрыты.
Из патентного документа US2016232715 известна система прямого оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра и применена экстраполяция данных для предсказания параметров подвижного объекта. Недостатком такой системы является необходимость применения нескольких неподвижных камер для охвата рабочей зоны, размер которой был бы достаточен для игровых, развлекательных и обучающих систем VR/AR. В документе упоминается возможность реализации обратного оптико-инерциального трекинга с размещением камеры в мобильном устройстве, однако технические подробности такой реализации не раскрыты.
Из патентного документа US2012105473 известна система обратного оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра, размещенных в головном дисплее, и применена экстраполяция данных для предсказания параметров подвижного объекта. В системе не использованы активные маркеры, что увеличивает требования к вычислительной мощности системы и в условиях ограниченности вычислительных ресурсов неизбежно приводит к снижению быстродействия системы.
Из патентного документа US2015029218 известна система обратного оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра, размещенных в головном дисплее, и применена экстраполяция данных для предсказания параметров подвижного объекта. В системе не использованы активные маркеры, что увеличивает требования к вычислительной мощности системы и в условиях ограниченности вычислительных ресурсов неизбежно приводит к снижению быстродействия системы.
Из патентного документа WO2014210342 известна система обратного оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра, размещенных в головном дисплее, и применена экстраполяция данных для предсказания параметров подвижного объекта. В системе не использованы активные маркеры, что увеличивает требования к вычислительной мощности системы и в условиях ограниченности вычислительных ресурсов неизбежно приводит к снижению быстродействия системы.
Из патентного документа US2014354515 известна система прямого оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра и применена экстраполяция данных для предсказания параметров подвижного объекта. Недостатком такой системы является необходимость применения нескольких неподвижных камер для охвата рабочей зоны, размер которой был бы достаточен для игровых, развлекательных и обучающих систем VR/AR. В документе упоминается возможность реализации обратного оптико-инерциального трекинга с размещением камеры в головном дисплее, однако технические подробности такой реализации не раскрыты.
Из патентного документа US2017185171 известна система прямого оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра и применена экстраполяция данных для предсказания параметров подвижного объекта. Недостатком такой системы является необходимость применения нескольких неподвижных камер для охвата рабочей зоны, размер которой был бы достаточен для игровых, развлекательных и обучающих систем VR/AR. В документе упоминается возможность реализации обратного оптико-инерциального трекинга с размещением камеры в непосредственной близи от пользователя, однако технические подробности такой реализации не раскрыты.
Из патентного документа US2017018121 известна система прямого оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра и применена экстраполяция данных для предсказания параметров подвижного объекта. Недостатком такой системы является необходимость применения нескольких неподвижных камер для охвата рабочей зоны, размер которой был бы достаточен для игровых, развлекательных и обучающих систем VR/AR. В документе упоминается возможность реализации обратного оптико-инерциального трекинга с размещением камеры в непосредственной близи от пользователя, однако технические подробности такой реализации не раскрыты.
Из патентного документа US2014062881 известна система обратного оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра, размещенных в головном дисплее, и применена экстраполяция данных для предсказания параметров подвижного объекта. В системе не использованы активные маркеры, что увеличивает требования к вычислительной мощности системы и в условиях ограниченности вычислительных ресурсов неизбежно приводит к снижению быстродействия системы.
Из непатентного документа Hogue et al. [1] известна система обратного оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра, размещенных в головном дисплее, и применена экстраполяция данных для предсказания параметров подвижного объекта. В системе в качестве опорных элементов для оптического трекинга применены изображения, проецируемые на стены лазерным лучом, и не использованы активные маркеры, что увеличивает требования к вычислительной мощности системы и в условиях ограниченности вычислительных ресурсов неизбежно приводит к снижению быстродействия системы.
Из непатентного документа Wormell et al. [2] известна система обратного оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра, размещенных в головном дисплее, и применена экстраполяция данных для предсказания параметров подвижного объекта. В системе в качестве опорных элементов для оптического трекинга применены изображения, нанесенные на стены, и не использованы активные маркеры, что увеличивает требования к вычислительной мощности системы и в условиях ограниченности вычислительных ресурсов неизбежно приводит к снижению быстродействия системы.
Из непатентных документов Atac et al. [3, 4] известна система обратного оптико-инерциального трекинга, в которой использованы данные с камеры, гироскопа и акселерометра, размещенных в головном дисплее, и применена экстраполяция данных для предсказания параметров подвижного объекта. В системе в качестве опорных изображений для оптического трекинга применены штрих-коды, нанесенные на стены, и не использованы активные маркеры, что увеличивает требования к вычислительной мощности системы и в условиях ограниченности вычислительных ресурсов неизбежно приводит к снижению быстродействия системы.
В непатентном документе Pinz et al. [5] обсуждается сочетание обратного оптического трекинга с инерциальным трекингом для реализации мобильной системы дополненной реальности, однако обсуждение носит, в основном, теоретический характер.
В непатентном документе You et al. [6] обсуждается применение данных оптического датчика для коррекции данных инерциальных датчиков в системе оптико-инерциального трекинга, однако обсуждение носит, в основном, теоретический характер.
В непатентном документе Miezal et al. [7] описана система обратного оптико-инерциального трекинга для отслеживания положения головы пользователя с применением единственного пассивного маркера, расположенного в зоне видимости камеры, что ограничивает ее применение теми случаями, когда пользователь сравнительно малоподвижен и делает ее практически неприменимой в игровых, развлекательных и обучающих системах VR/AR.
Таким образом, в системах VR/AR не решена задача быстрого, надежного, точного и относительно недорогого трекинга пользователя, в том числе совершающего резкие движения конечностями и быстрые перемещения корпуса в достаточно большой рабочей области, площадь которой может составлять от нескольких квадратных метров в однопользовательских системах до нескольких десятков или даже нескольких сотен квадратных метров в многопользовательских системах.
Подобные задачи, связанные с трекингом подвижного объекта, актуальны и для других областей техники, в частности, для систем внутренней (например, складской, производственной или торговой) логистики, для робототехнических систем, для беспилотных транспортных средств и иных систем производственного, научного или учебного назначения.
Раскрытие изобретения
Изобретение направлено на решение задачи быстрого, надежного, точного и относительно недорогого трекинга подвижного объекта в различных системах, прежде всего в системах VR/AR, но не ограничиваясь ими.
Эта цель достигается первым аспектом изобретения - способом оптико-инерциального трекинга подвижного объекта, включающим в себя следующие шаги:
(а) обеспечивают излучение множеством маркеров света в ИК-диапазоне;
(б) посредством первого устройства обработки данных считывают изображение с оптического датчика, физически связанного подвижным объектом, и выявляют в считанном изображении пиксели, соответствующие заранее заданным условиям;
(в) на основе выявленных пикселей посредством первого устройства обработки данных выявляют изображения маркеров и определяют параметры этих изображений маркеров;
(г) посредством первого устройства обработки данных считывают данные с, по меньшей мере, одного инерциального датчика, физически связанного подвижным объектом;
(д) посредством первого устройства обработки данных формируют объединенный поток данных, содержащий параметры изображений маркеров и данные с упомянутого, по меньшей мере, одного инерциального датчика, и посредством первого устройства связи передают его второму устройству связи;
(е) посредством второго устройства связи принимают объединенный поток данных и на его основе посредством второго устройства обработки данных определяют данные позиционирования трекера в координатной системе зоны перемещения подвижного объекта;
(ж) посредством второго устройства обработки данных на основе данных позиционирования трекера выполняют валидацию математической модели траектории движения трекера;
(з) посредством второго устройства обработки данных на основе подвергнутой валидации математической модели траектории движения трекера выполняют экстраполяцию данных позиционирования трекера на горизонт экстраполяции.
В данном способе на шаге (б) изображение с оптического датчика может считываться с области, размер которой меньше размера кадра оптического датчика.
В данном способе область считывания изображения с оптического датчика может представлять собой следящее окно.
В данном способе на шаге (б) заранее заданные условия могут содержать пороговое значение яркости пикселя.
В данном способе заранее заданные условия могут содержать требования к группировке пикселей.
В данном способе на шаге (б) выявление пикселей, соответствующих заранее заданным условиям, может начинаться до окончания считывания изображения с оптического датчика.
В данном способе шаг (б) может выполняться с использованием ПЛИС.
В данном способе на шаге (в) параметры каждого изображения маркера могут содержать координаты его центра в координатной системе кадра оптического датчика, эффективный радиус и взвешенную яркость.
В данном способе координаты центра маркера могут определяться с субпиксельной точностью.
В данном способе параметры изображения маркера могут содержать отметку времени, указывающую на момент времени съемки соответствующего кадра.
В данном способе шаг (в) может выполняться с использованием микроконтроллера.
В данном способе инерциальный датчик на шаге (г) может представлять собой гироскоп.
В данном способе инерциальный датчик на шаге (г) может представлять собой акселерометр.
В данном способе данные, считанные с инерциального датчика на шаге (г), могут содержать отметку времени, указывающую на момент времени их считывания.
В данном способе объединенный поток данных, сформированный на шаге (д), может содержать данные с нескольких трекеров.
В данном способе на шаге (е) объединенный поток данных может разделяться на несколько объединенных потоков данных, число которых соответствует числу трекеров.
В данном способе первое устройство обработки данных и первое устройство связи могут быть расположены в трекере, а второе устройство обработки данных и второе устройство связи могут быть расположены в хосте.
В данном способе трекер может быть объединен с хостом.
В данном способе для определения данных позиционирования трекера на шаге (е) идентификация маркеров может выполняться на основе параметров изображений маркеров.
В данном способе идентификация маркеров может выполняться с использованием заранее известного оптического паттерна.
В данном способе оптический паттерн может представлять собой линейный оптический паттерн.
В данном способе линейный оптический паттерн может содержать изображения, соответствующие группе из трех маркеров, расположенных в одну линию, при этом расстояние между первым и вторым маркерами может быть вдвое больше, чем расстояние между вторым и третьим маркерами.
В данном способе из данных позиционирования трекера, определенных на шаге (е) в разные моменты времени, может формироваться набор исторических данных трекинга.
В данном способе валидация математической модели траектории движения трекера на шаге (ж) может выполняться на наборе исторических данных трекинга.
В данном способе набор исторических данных трекинга может включать в себя набор данных S, содержащих многомерный вектор, характеризующий положение, ориентацию и (опционально) параметры движения трекера, и набор данных L, содержащих данные одного или нескольких инерциальных датчиков.
В данном способе набор исторических данных трекинга может включать в себя набор данных OF, содержащих информацию о лучах в локальной координатной системе трекера, направленных на маркеры, изображения которых выявлены на шаге (в).
В данном способе при валидации математической модели траектории движения трекера на шаге (ж) возможно вычисление данных S в обратном направлении на всю глубину исторических данных трекинга, оптимизация данных S в самой ранней точке истории, а затем вычисление оптимизированных данных S в прямом направлении на всю глубину исторических данных трекинга.
В данном способе может вычисляться вектор E ошибки позиционирования трекера, определяемый путем сравнения координат маркеров, вычисленных на основе данных OF, с заранее известными фактическими координатами маркеров, в обратном направлении на всю глубину исторических данных трекинга и оптимизация данных S в самой ранней точке истории может выполняться с использованием вектора E ошибки позиционирования трекера.
В данном способе координаты маркеров, вычисленные на основе данных OF, могут представлять собой полярные координаты.
В данном способе оптимизацию данных S в самой ранней точке истории может выполняться методом наименьших квадратов.
В данном способе оптимизация данных S в самой ранней точке истории может выполняться с использованием алгоритма Левенберга-Марквардта.
В данном способе может вычисляться вектор E ошибки позиционирования трекера в прямом направлении на всю глубину исторических данных трекинга и валидация математической модели траектории движения трекера может выполняться путем сравнения векторов E ошибок, вычисленных в обратном направлении, с векторами E ошибок, вычисленными прямом направлении, и путем вычисления целевой функции, значение которой используется для принятия решения относительно актуальности математической модели траектории движения трекера.
В данном способе целевая функция может представлять собой взвешивающую функцию.
В данном способе результатом валидации математической модели траектории движения трекера могут быть оптимизированные данные S, обеспечивающие минимальную ошибку позиционирования трекера.
В данном способе определение данных позиционирования трекера на шаге (е) может выполняться каждый раз при поступлении новых данных, по меньшей мере, одного инерциального датчика в объединенном потоке данных.
В данном способе валидация математической модели траектории движения трекера на шаге (ж) может выполняться каждый раз при поступлении новых параметров изображений маркеров в объединенном потоке данных.
В данном способе экстраполяция данных позиционирования трекера на шаге (з) может выполняться путем задания горизонта экстраполяции, задания базы экстраполяции и экстраполяции траектории движения трекера на горизонт экстраполяции.
В данном способе горизонт экстраполяции может задаваться на основе данных, полученных от 3D-движка, выполняющего рендеринг 3D-сцены.
Данный способ может дополнительно содержать шаг, на котором выполняется рендеринг 3D-сцены на основе экстраполированных данных позиционирования трекера и выполняется вывод 3D-сцены на головной дисплей пользователя системы виртуальной или дополненной реальности.
Цель изобретения также достигается вторым аспектом изобретения - системой для оптико-инерциального трекинга подвижного объекта, содержащей:
- по меньшей мере, одно множество маркеров, содержащее маркеры, излучающие свет в ИК-диапазоне;
- по меньшей мере, один трекер, физически связанный с подвижным объектом, содержащий оптический датчик, по меньшей мере, один инерциальный датчик, первое устройство обработки данных и первое устройство связи, и выполненный с возможностью считывания, посредством первого устройства обработки данных, изображения с оптического датчика, выявления, посредством первого устройства обработки данных, в считанном изображении пикселей, соответствующих заранее заданным условиям, выявления, посредством первого устройства обработки данных, изображений маркеров на основе выявленных пикселей, определения, посредством первого устройства обработки данных, параметров этих изображений маркеров, считывания, посредством первого устройства обработки данных, данных с упомянутого, по меньшей мере, одного инерциального датчика, формирования, посредством первого устройства обработки данных, объединенного потока данных, содержащего параметры изображений маркеров и данные с упомянутого, по меньшей мере, одного инерциального датчика, и передачи, посредством первого устройства связи, объединенного потока данных в хост;
- по меньшей мере, один хост, содержащий второе устройство связи и второе устройство обработки данных и выполненный с возможностью приема, посредством второго устройства связи, объединенного потока данных, определения, посредством второго устройства обработки данных, данных позиционирования трекера в координатной системе зоны перемещения подвижного объекта на основе объединенного потока данных, выполнения, посредством второго устройства обработки данных, валидации математической модели траектории движения трекера на основе данных позиционирования трекера, выполнения, посредством второго устройства обработки данных, экстраполяции данных позиционирования трекера на горизонт экстраполяции на основе подвергнутой валидации математической модели траектории движения трекера.
В данной системе первое устройство обработки данных может быть выполнено с возможностью считывания изображения с области оптического датчика, размер которой меньше размера кадра оптического датчика.
В данной системе область считывания изображения с оптического датчика может представлять собой следящее окно.
В данной системе заранее заданные условия могут содержать пороговое значение яркости пикселя.
В данной системе заранее заданные условия могут содержать требования к группировке пикселей.
В данной системе первое устройство обработки данных может быть выполнено с возможностью начинать выявление пикселей, соответствующих заранее заданным условиям, до окончания считывания изображения с оптического датчика.
В данной системе первое устройство обработки данных может содержать ПЛИС, выполненную с возможностью считывания изображения с оптического датчика и выявления в считанном изображении пикселей, соответствующих заранее заданным условиям.
В данной системе параметры каждого изображения маркера могут содержать координаты его центра в координатной системе кадра оптического датчика, эффективный радиус и взвешенную яркость.
В данной системе первое устройство обработки данных может быть выполнено с возможностью определения координат центра маркера с субпиксельной точностью.
В данной системе параметры изображения маркера могут содержать отметку времени, указывающую на момент времени съемки соответствующего кадра.
В данной системе первое устройство обработки данных может содержать микроконтроллер, выполненный с возможностью выявления изображений маркеров на основе выявленных пикселей и определения параметров этих изображений маркеров.
В данной системе инерциальный датчик может представлять собой гироскоп.
В данной системе инерциальный датчик может представлять собой акселерометр.
В данной системе данные, считанные с инерциального датчика, могут содержать отметку времени, указывающую на момент времени их считывания.
В данной системе объединенный поток данных может содержать данные с нескольких трекеров.
В данной системе второе устройство обработки данных может быть выполнено с возможностью разделения объединенного потока данных на несколько объединенных потоков данных, число которых соответствует числу трекеров.
В данной системе трекер может быть объединен с хостом.
В данной системе второе устройство обработки данных может быть выполнено с возможностью идентификации маркеров на основе параметров изображений маркеров для определения данных позиционирования трекера.
В данной системе второе устройство обработки данных может быть выполнено с возможностью идентификации маркеров с использованием заранее известного оптического паттерна.
В данной системе оптический паттерн может представлять собой линейный оптический паттерн.
В данной системе линейный оптический паттерн может содержать изображения, соответствующие группе из трех маркеров, расположенных в одну линию, при этом расстояние между первым и вторым маркерами может быть вдвое больше, чем расстояние между вторым и третьим маркерами.
В данной системе второе устройство обработки данных может быть выполнено с возможностью формирования набора исторических данных трекинга из данных позиционирования трекера, определенных в разные моменты времени.
В данной системе второе устройство обработки данных может быть выполнено с возможностью валидации математической модели траектории движения трекера на наборе исторических данных трекинга.
В данной системе набор исторических данных трекинга может содержать набор данных S, содержащих многомерный вектор, характеризующий положение, ориентацию и (опционально) параметры движения трекера, и набор данных L, содержащих данные одного или нескольких инерциальных датчиков, при этом данные S и L могут соответствовать параметрам математической модели траектории движения трекера.
В данной системе набор исторических данных трекинга может содержать набор данных OF, содержащих информацию о лучах в локальной координатной системе трекера, направленных на маркеры, изображения которых были выявлены.
В данной системе второе устройство обработки данных может быть выполнено с возможностью вычисления данных S в обратном направлении на всю глубину исторических данных трекинга, оптимизации данных S в самой ранней точке истории и вычисления данных S в прямом направлении на всю глубину исторических данных трекинга при валидации математической модели траектории движения трекера.
В данной системе второе устройство обработки данных может быть выполнено с возможностью вычисления вектора E ошибки позиционирования трекера, определяемого путем сравнения координат маркеров, вычисленных на основе данных OF, с заранее известными фактическими координатами маркеров, в обратном направлении на всю глубину исторических данных трекинга и с возможностью оптимизации данных S в самой ранней точке истории с использованием вектора E ошибки позиционирования трекера.
В данной системе координаты маркеров, вычисленные на основе данных OF, могут представлять собой полярные координаты.
В данной системе оптимизация данных S в самой ранней точке истории может выполняться методом наименьших квадратов.
В данной системе оптимизация данных S в самой ранней точке истории может выполняться с использованием алгоритма Левенберга-Марквардта.
В данной системе второе устройство обработки данных может быть выполнено с возможностью вычисления вектора E ошибки позиционирования трекера в прямом направлении на всю глубину исторических данных трекинга и выполнения валидации математической модели траектории движения трекера путем сравнения векторов E ошибок, вычисленных в обратном направлении, с векторами E ошибок, вычисленными прямом направлении, и вычисления целевой функции, значение которой используется для принятия решения относительно актуальности математической модели траектории движения трекера.
В данной системе целевая функция может представлять собой взвешивающую функцию.
В данной системе результатом валидации математической модели траектории движения трекера могут быть оптимизированные данные S, обеспечивающие минимальную ошибку позиционирования трекера.
В данной системе второе устройство обработки данных может быть выполнено с возможностью определения данных позиционирования трекера каждый раз при поступлении новых данных, по меньшей мере, одного инерциального датчика в объединенном потоке данных.
В данной системе второе устройство обработки данных может быть выполнено с возможностью выполнения валидации математической модели траектории движения трекера каждый раз при поступлении новых параметров изображений маркеров в объединенном потоке данных.
В данной системе второе устройство обработки данных может быть выполнено с возможностью задания горизонта экстраполяции, задания базы экстраполяции и экстраполяции траектории движения трекера на горизонт экстраполяции.
В данной системе горизонт экстраполяции может быть задан на основе данных, полученных от 3D-движка, выполненного с возможностью рендеринга 3D-сцены.
Данная система дополнительно может содержать устройство вывода и, по меньшей мере, один головной дисплей, выполненный с возможностью демонстрации 3D-сцены пользователю системы виртуальной или дополненной реальности, при этом экстраполяция данных позиционирования трекера может выполняться с целью последующего рендеринга 3D-сцены на основе экстраполированных данных позиционирования трекера и вывода 3D-сцены на головной дисплей пользователя системы виртуальной или дополненной реальности.
Данное изобретение позволяет повысить точность позиционирования подвижного объекта. Кроме того, данное изобретение позволяет легко масштабировать зону трекинга. В системах VR/AR данное изобретение позволяет улучшить точность отслеживания движений пользователей и за счет этого повысить качество демонстрируемых пользователям 3D-сцен, в частности, исключить или снизить до порога заметности задержку отображения 3D-сцен относительно движения пользователей и/или их частей тела, обеспечить эффект присутствия и исключить проявления морской болезни (VR sickness) у пользователей.
Краткое описание чертежей
На фиг. 1 показан пример реализации системы VR/AR в соответствии с изобретением.
На фиг. 2 показан пример размещения на теле пользователя устройств системы VR/AR в соответствии с изобретением.
На фиг. 3 представлена структурная схема трекера в соответствии с изобретением.
На фиг. 4 представлена схема событий при компоновке данных с датчиков в объединенный поток данных.
На фиг. 5 показан пример установки на головном дисплее трекера с использованием сменного модуля.
На фиг. 6 показан пример трекера, содержащего базовый модуль и сменный модуль.
На фиг. 7 показан другой пример установки на головном дисплее трекера с использованием сменного модуля.
На фиг. 8 показан другой пример трекера, содержащего базовый модуль и сменный модуль.
На фиг. 9 показан еще один пример трекера, содержащего базовый модуль и сменный модуль в виде игрового манипулятора.
На фиг. 10А, 10Б показан пример маркерной полосы в развернутом и свернутом виде.
На фиг. 11 показан пример установки маркеров с использованием элементов упругих сборных покрытий для пола (puzzle floor mats).
На фиг. 12 показан пример расположения маркерных полос на полу.
На фиг. 13 показан пример монтажа маркерных полос на потолке.
На фиг. 14 показан пример расположения маркерных полос на полу с заданием границ виртуального мира на безопасном расстоянии от стен помещения.
На фиг. 15 представлена структурная схема хоста в соответствии с изобретением.
На фиг. 16 представлена блок-схема алгоритма, иллюстрирующая принцип действия системы VR/AR в соответствии с изобретением.
На фиг. 17 представлена блок-схема алгоритма, иллюстрирующая процесс подготовки к работе системы VR/AR в соответствии с изобретением.
На фиг. 18 представлена блок-схема алгоритма, иллюстрирующая процесс получения и обработки данных трекинга в трекере.
На фиг. 19 представлена блок-схема алгоритма, иллюстрирующая процесс получения и обработки данных трекинга в хосте.
На фиг. 20 представлена схема обновления данных позиционирования.
На фиг. 21 показан пример затенения маркеров в многопользовательской системе VR/AR.
На фиг. 22 представлена блок-схема алгоритма, иллюстрирующая процесс обработки объединенного потока данных позиционирования.
На фиг. 23 представлена блок-схема алгоритма, иллюстрирующая процесс валидации математической модели траектории движения трекера.
На фиг. 24 представлена блок-схема алгоритма, иллюстрирующая процесс экстраполяции данных позиционирования.
Осуществление изобретения
Далее изобретение описано на примере использования способа обратного оптико-инерциального трекинга в системе VR/AR.
Изобретение реализует способ обратного оптико-инерциального трекинга, в котором устройство, обеспечивающее трекинг (трекер) расположено на подвижном объекте отслеживания, а источники света (активные маркеры), образующие характерные сочетания на фиксируемом трекером изображении (оптические паттерны), неподвижны и расположены в пространстве рабочей зоны системы VR/AR. Система VR/AR может содержать один или несколько трекеров, при этом каждый трекер позволяет определять положение и ориентацию соответствующего подвижного объекта (или его части) независимо от других трекеров.
Текущее положение и ориентация каждого трекера определяются с высокой точностью за счет сочетания оптического и инерциального принципов трекинга, а предсказание положения и ориентации трекера в момент времени вывода изображения на дисплей позволяет компенсировать задержку, связанную с обработкой и выводом информации в системе VR/AR. Эта задержка (полная задержка) складывается из нескольких составляющих - задержки трекинга, длительности рендеринга 3D-сцены и времени на ее отображение на дисплее.
В существующих системах VR/AR задержка трекинга оценивается величиной от 1 до 20 мс. Длительность рендеринга 3D-сцены определяется ее объемом и производительностью GPU (графического процессора, Graphics Processing Unit) и может составлять от приблизительно 8 мс (при частоте рендеринга кадров 120 Гц) до приблизительно 16 мс (при частоте рендеринга кадров 60 Гц). В качестве времени вывода изображения на экран можно принять длительность кадра, т.е. порядка 11 мс при экране с частотой обновления изображения 90 Гц и порядка 16 мс при экране с частотой обновления изображения 60 Гц. Таким образом, если даже не учитывать время передачи изображения на экран, полная задержка может составлять от 20 мс до 52 мс.
Согласно одной оценке специалистов, в системе VR/AR допустимая полная задержка отклика изображения на поступательное движение наблюдателя не должна превышать 16-32 мс, а на поворот головы наблюдателя должна составлять от 2 до 18 мс при частоте вывода кадров 60 Гц, причем задержка менее 3 мс считается практически незаметной [8]. Согласно другой оценке, порогу чувствительности наблюдателя соответствуют значения задержки от 7 до 15 мс [9].
Указанное значение полной задержки справедливо как для систем без предсказания положения наблюдателя, так и для систем с предсказанием положения наблюдателя, т.е. с временной экстраполяцией координат наблюдателя. В последнем случае речь идет об эффективной полной задержке, которая представляет собой промежуток времени от момента начала определения положения наблюдателя до момента вывода изображения на экран с учетом компенсации задержки, при этом основным критерием качества системы виртуальной реальности становится достоверность предсказания положения пользователя.
Особенностью данного изобретения является высокая точность предсказания положения наблюдателя в момент будущего вывода изображения на дисплей. Следует отметить, что наличие компенсации задержки в системе VR/AR само по себе не гарантирует точность перестроения трехмерной сцены при изменении положения и ориентации наблюдателя в пространстве, поскольку предсказание положения наблюдателя носит вероятностный характер и в силу этого является дополнительным источником неопределенности.
Предсказание обеспечивается применением алгоритмов экстраполяции. Результаты работы алгоритмов экстраполяции крайне чувствительны к количеству и качеству входных данных. В частности, на точность экстраполяции влияют:
(i) возраст данных - точность экстраполяции нелинейно и резко снижается при увеличении возраста данных;
(ii) объем выборки, по которой производится экстраполяция - точность экстраполяции повышается при увеличении объема выборки, однако при фиксированной частоте дискретизации повышение объема выборки сверх некоторого критического значения приводит к снижению точности экстраполяции, что связано с устареванием данных в начале выборки;
(iii) зашумленность данных - точность экстраполяции снижается с увеличением уровня шума;
(iv) горизонт экстраполяции - точность экстраполяции нелинейно и резко снижается с увеличением дальности горизонта экстраполяции.
Для обеспечения высокой точности предсказания в данном изобретении реализован комплекс технических решений:
- применение гибридного оптико-инерциального трекинга позволяет увеличить объем выборки за счет высокой частоты считывания данных с инерциальных датчиков;
- применение активных маркеров позволяет снизить зашумленность оптических данных и уменьшить время экспозиции оптического датчика и, таким образом, уменьшить аппаратную задержку при формировании оптических данных;
- опциональное применение «следящего окна» в оптическом датчике позволяет дополнительно уменьшить аппаратную задержку при формировании оптических данных;
- автоматическая актуализация математической модели траектории движения трекера позволяет повысить точность трекинга в условиях затенения маркеров, а также расширить горизонт экстраполяции без снижения надежности прогнозных данных.
На фиг. 1 и фиг. 2 показан пример реализации изобретения, в котором система 1 VR/AR содержит головной дисплей 5 в виде шлема, трекер 10, размещенный на головном дисплее 5, центральное устройство (хост) 6, также размещенный на головном дисплее 5, трекер 20, трекер 30, и маркерную полосу 4, содержащую активные маркеры 40, 41, 42. Головной дисплей 5 обеспечивает демонстрацию пользователю 7 изображения, формируемого системой 1 на основе данных трекинга, полученных от трекеров 10, 20, 30. Изображение, демонстрируемое пользователю, может быть 3D-изображением виртуальной реальности или 3D-изображением дополненной реальности. Данные трекинга, формируемые трекерами 10, 20, 30, содержат данные о местоположении трекеров и, следовательно, соответствующих частей тела пользователя 7, об их ориентации в пространстве, и о параметрах их движения - направлении, скорости и ускорении. Эти данные сохраняются в системе 1 и используются для определения текущего положения, ориентации и (при необходимости) параметров движения частей тела пользователя 7, а также для предсказания их положения, ориентации и параметров движения в будущем в пределах горизонта экстраполяции. Данные трекинга могут обрабатываться системой 1 с учетом физической и кинематической моделей пользователя 7, обеспечивая расчет положения его тела (включая позу, жесты и т.п.), когда это применимо, исходя из назначения системы 1, сценария и сюжета, с периодичностью и точностью, требуемой для обеспечения эффекта присутствия в виртуальной или дополненной реальности и отсутствия симптомов морской болезни.
Трекер 10 (фиг. 3) содержит оптический датчик 101, гироскоп 102 и акселерометр 103. Данные с оптического датчика характеризуются высокой точностью при определении положения в пространстве и ориентации устройства, однако частота получения данных с оптического датчика сильно уступает частоте получения данных с инерциальных датчиков - гироскопа и акселерометра. В частности, частота получения данных с оптического датчика обычно составляет 60 кадров в секунду при полном кадре и может быть увеличена до 400 кадров в секунду при применении техник ROI (region of interest) и уменьшении размера кадра (принцип «следящего окна»), а частота получения данных с акселерометра и гироскопа обычно составляет порядка 2000 выборок в секунду. Однако при использовании данных только гироскопа и акселерометра быстро накапливается абсолютная ошибка позиционирования вследствие зашумленности и дрейфа этих данных.
Следует отметить, что в иллюстративном варианте осуществления изобретения в трекере использованы два инерциальных датчика - гироскоп и акселерометр. Тем не менее, в других вариантах осуществления изобретения количество инерциальных датчиков может быть меньше или больше двух и принцип действия инерциальных датчиков также может быть иным.
В данном изобретении точность оптических данных в сочетании с высокой частотой и малой задержкой данных инерциальных датчиков позволяет получить объединенный поток данных трекинга, пригодный для реализации алгоритма определения текущих и предсказания будущих данных позиционирования - положения, ориентации и параметров движения пользователя, обеспечивающего высокие характеристики системы VR/AR.
Передача изображения с оптического датчика целиком требует высокой пропускной способности канала связи между трекером и хостом и неизбежно вносит дополнительную задержку, связанную с передачей изображения. Для минимизации задержек обработки данных трекинга, связанных с передачей и обработкой изображения, изображение с оптического датчика обрабатывается непосредственно в трекере и на хост передаются вычисленные координаты и размеры изображений маркеров, обнаруженных на изображении.
Для обработки данных трекинга трекер 10 содержит устройство 104 обработки данных. Устройство 104 обработки данных обеспечивает синхронизацию всех датчиков, получение данных с оптического датчика, гироскопа и акселерометра, обработку данных с оптического датчика для получения информации о маркерах, содержащихся в кадре, формирование объединенного потока данных с гироскопа, данных с акселерометра и данных о маркерах.
Устройство 104 обработки данных может быть реализовано на основе микроконтроллера, процессора цифровой обработки сигналов (DSP), процессора с полным набором команд (CISC), процессора с сокращенным набором команд (RISC) и т.д. В иллюстративном варианте осуществления изобретения устройство 104 обработки данных реализовано на основе микроконтроллера с RISC-архитектурой STM32F446MEY6 (STMicroelectronics, Switzerland).
Устройство 104 обработки данных также может содержать устройство 108 предварительной обработки данных с оптического датчика, например, на основе ПЛИС, что позволяет применять высокоскоростные алгоритмы для параллельной обработки строк изображения и поиска в нем групп пикселей, предположительно соответствующих маркерам. В этом случае обработка изображения производится в один проход на шаге считывания данных с оптического датчика без необходимости хранения всего кадра в запоминающем устройстве 107 трекера, что существенно снижает вычислительную сложность последующей обработки данных трекинга в устройстве 104 обработки данных и позволяет дополнительно сократить задержки в системе VR/AR. Кроме того, такое решение позволяет снизить требования к объему памяти запоминающего устройства 107. В иллюстративном варианте осуществления изобретения устройство предварительной обработки данных с оптического датчика реализовано на основе ПЛИС LCMXO3LF-2100E-5UWG49CTR50 (Lattice Semiconductor Corporation, USA).
Трекер 10 также содержит устройство 106 связи для обеспечения информационного обмена между трекером 10 и хостом 6. С трекера 10 на хост 6 передается объединенный поток данных трекинга с частотой от приблизительно 2000 до приблизительно 4000 выборок в секунду, при этом данные с акселерометра и данные с гироскопа обновляются с частотой 2000 выборок в секунду, а данные с оптического датчика - с частотой от 60 до 400 выборок в секунду. С хоста 6 на трекер 10 передаются сигналы управления в соответствии с назначением системы VR/AR, ее сценарием и сюжетом действия. Канал связи может быть оптическим, проводным или беспроводным. Например, в качестве беспроводного канала связи в системе 1 может быть использован канал WiFi, Bluetooth и т.д. В иллюстративном варианте осуществления изобретения устройство 106 связи обеспечивает проводной канал связи на основе интерфейса USB с пропускной способностью не менее 6 Мбит/с и временем задержки не более 1 мс и беспроводной канал связи в частотном диапазоне 2,4 ГГц с проприетарным протоколом обмена, обеспечивающим пропускную способностью не менее 1 Мбит /с и время задержки не более 0,4 мс.
Трекер 10 также содержит источник 105 питания, обеспечивающий электропитание трекера. Источник 105 питания представляет собой традиционный узел, хорошо известный специалистам в данной области техники, поэтому его подробное описание опущено.
Объединение всех датчиков в одном устройстве обеспечивает синхронизацию датчиков. Такая архитектура позволяет использовать точные временные метки получения данных с каждого из датчиков. Кроме того, поскольку съемка кадра в оптическом датчике и его обработка занимает определенное время, зависящее от времени экспозиции, которое, в свою очередь, зависит от внешних условий (в частности, от освещенности рабочей зоны), в объединенном потоке данных фиксируется время начала съемки кадра и содержится уведомление об окончании обработки кадра и появлении новых оптических данных.
На фиг. 4 представлены события записи данных с датчиков в объединенный поток данных: событие A - поступление данных с акселерометра; событие G - поступление данных с гироскопа; событие FS - время начала съемки оптического кадра; событие M - поступление данных о маркерах после обработки оптического кадра.
Данные о маркерах содержат 2D-координаты (в координатной системе кадра оптического датчика) и размер изображения каждого из маркеров, обнаруженных на изображении.
Каждый датчик работает на присущей ему скорости и, как видно из диаграммы на фиг. 3, возможна ситуация, когда в объединенном потоке данных несколько раз подряд содержатся данные с одного датчика, например, данные с акселерометра или данные с гироскопа.
Объединенный поток данных поступает на хост 6, где на основе данных о маркерах производится вычисление 3D-координат положения и ориентации трекера (в координатной системе рабочей зоны системы VR/AR), а также параметров его движения - направления, скорости и ускорения. В качестве хоста возможно использование компьютера или мобильного устройства с достаточной производительностью процессора. Например, функции хоста может выполнять устройство, выполняющее в системе VR/AR рендеринг 3D-сцен, выводимых на головной дисплей 5. В некоторых случаях функции хоста может выполнять сам головной дисплей 5, обладающий достаточными вычислительными ресурсами. Кроме того, функции хоста 6 могут быть распределены между несколькими устройствами. В частности, вычисление 3D-координат положения, ориентации и параметров движения трекера может выполняться одним из таких устройств, а рендеринг и вывод на головной дисплей 3D-сцен может выполняться другим из таких устройств, при этом оба таких устройства могут быть расположены в одном месте или могут быть расположены в разных местах и связаны друг с другом с использованием известных средств связи, применение которых для этой цели не представляет сложности для специалиста и поэтому их описание опущено для краткости.
2
Необходимая производительность хоста зависит от назначения системы VR/AR, количества пользователей, размера рабочей зоны, динамичности движений пользователей и т.д. В иллюстративном варианте осуществления изобретения в качестве хоста использован смартфон Galaxy S7 (Samsung, South Korea). С целью упрощения и удешевления системы VR/AR трекер может быть конструктивно отделен от хоста и может поставляться пользователю независимо от хоста. Однако это не исключает возможности конструктивного объединения трекера и хоста, например, в системах VR/AR, не предполагающих использования в них сторонних устройств. В этом случае устройство 106 связи трекера и устройство 61 связи хоста могут быть реализованы с применением внутреннего интерфейса связи, например, IC, или более скоростного интерфейса связи, например, USB или LVDS. Кроме того, помимо конструктивного объединения трекера и хоста, возможно также объединение устройств обработки данных трекера и хоста в едином устройстве обработки данных, что исключает необходимость в использовании устройств связи для передачи данных между устройствами обработки данных.
Трекер 10 может иметь модульную конструкцию. В частности, трекер 10 может содержать базовый модуль 11, содержащий оптический датчик 101, гироскоп 102, акселерометр 103, устройство 104 обработки данных и устройство 106 связи, обеспечивающее проводную и/или беспроводную связь, и сменный модуль, содержащий дополнительные устройства, обеспечивающие выполнение необходимых функций в соответствии с назначением системы VR/AR.
На фиг. 5 показан пример, в котором трекер 10 содержит базовый модуль 11 и сменный модуль 12, представляющий собой монтажную площадку для базового модуля 11 и обеспечивающий установку трекера 10 на хосте 6 и электрическое соединение с ним посредством соединителя 15. Ориентация объектива трекера 10 (вперед и вниз) рассчитана на применение маркерных полос 4, расположенных на полу. Очевидно, что трекер 10 может быть расположен иначе в случае иного расположения маркерных полос 4 (на стенах, на потолке, на мачтах и т.п.).
На фиг. 6 базовый модуль 11 и сменный модуль 12 показаны более крупно. Соединение между базовым модулем и сменным модулем может быть реализовано с применением магнитного соединителя 14, обеспечивающего механическое крепление и электрическое соединение.
На фиг. 7 показан пример, в котором трекер 10 содержит базовый модуль 11 и сменный модуль 13, обеспечивающий крепление и проводное подключение через стандартный электрический соединитель к хосту 6, который может представлять собой смартфон и выполнять также функции головного дисплея в системе VR/AR начального уровня сложности. На фиг. 8 базовый модуль 11 и сменный модуль 13 показаны более крупно. Магнитный соединитель 14 аналогичен представленному на фиг. 7.
Трекер 20 и трекер 30 могут быть идентичными трекеру 10 или могут иметь отличия, связанные с иным характером движения соответствующих им частей тела пользователя. В частности, трекеры 20, 30, соединенные с игровыми контроллерами в руках пользователя, могут быть способны отслеживать более быстрые и резкие движения, чем трекер 10, расположенный на голове пользователя. Тем не менее, общий принцип работы системы трекинга при этом остается по существу неизменным.
Контроллер 22, 32 может представлять собой игровой контроллер либо манипулятор для систем образовательного или развлекательного назначения и может содержать средства управления, характерные для подобных устройств, например, кнопки, клавиши, джойстики, трекболы и т.п. В соответствии с модульной концепцией трекера, контроллер 22, 32 может рассматриваться как сменный модуль для базового модуля 21, 31. Передача данных со средств управления контроллера 22, 32 на хост 6 может осуществляться беспроводным способом, например, с использованием того же беспроводного канала связи, который используется для передачи объединенного потока данных с трекеров 20, 30. На фиг. 9 показан пример соединения контроллеров 22 и 32 с базовыми модулями 21 и 31, соответственно, которое может быть реализовано с применением магнитного соединителя, аналогичного представленным на фиг. 7 и фиг. 8.
Трекеры 10, 20, 30, например, относящиеся к одному пользователю, могут образовывать группу трекеров, между которыми обеспечивается информационный обмен по беспроводному каналу связи. В частности, данные с ведомых трекеров 20, 30 (slave trackers) по беспроводному каналу связи могут передаваться ведущему трекеру 10 (master tracker), а с него по беспроводному или проводному каналу связи могут передаваться на хост 6. Это обеспечивает возможность гибкого конфигурирования системы VR/AR, в том числе, возможность ее самостоятельного конфигурирования пользователем. Гибкость конфигурирования, в частности, возможность задания групп трекеров, относящихся к тому или иному пользователю, особенно существенна для многопользовательских систем VR/AR. Вместе с тем, такая архитектура требует большей пропускной способности канала связи, по которому данные с ведомых трекеров (например, с трекеров 20, 30) через ведущий трекер (например, трекер 10) передаются на хост 6. Очевидно, что пропускная способность такого канала связи должна быть пропорциональна количеству обслуживаемых трекеров.
Маркерная полоса 4 (фиг. 10А) содержит основание, представляющее собой узкую гибкую полосу из полимерного материала с гибкими проводниками, обеспечивающими подачу питания к активным маркерам 40, 41, 42. Материал основания может быть тканым или нетканым. Гибкость основания и проводников обеспечивает компактность маркерной полосы в свернутом виде при хранении и транспортировке (фиг. 10Б), при этом конструкция основания обеспечивает ее достаточную жесткость в поперечном направлении (в плоскости ее установки) и постоянство расстояния между маркерами, что необходимо для обеспечения стабильности оптического паттерна. Проводники могут быть металлическими, металлизированными, оксидными, композитными, выполненными по толстопленочной или тонкопленочной технологии, обеспечивающими подачу безопасного напряжения при мощности потребления величиной в несколько ватт. Активные маркеры 40, 41, 42 могут прикрепляться к основанию любым подходящим способом, обеспечивающим надежное крепление в заранее определенных местах и подвод напряжения питания. В иллюстративном варианте осуществления изобретения использованы ленточные металлические проводники, а активные маркеры 40, 41, 42 крепятся к основанию с помощью магнитных разъемов, обеспечивающих быстрый монтаж маркеров на основание и демонтаж с него, при этом легкость демонтажа маркеров предохраняет маркерную полосу 4 от разрушения в случае непреднамеренного физического контакта пользователя с маркерами. Питание на маркеры 40, 41, 42 подается с источника 45 питания через кабель 44 и электрический соединитель 43.
Источник 45 питания может быть любым сетевым или автономным источником питания, обеспечивающим необходимое безопасное напряжение (например, 5, 6, 12, 24, 36 или 48 В) постоянного или переменного тока. Например, в качестве автономного источника питания возможно использование аккумулятора типа PowerBank напряжением 5 В или 12 В постоянного тока, используемого для питания/заряда мобильных устройств, или аккумулятора типа Booster напряжением 12,6 В постоянного тока, предназначенного для облегчения запуска автомобильных двигателей при недостаточном заряде основного аккумулятора. При использовании в системе 1 нескольких маркерных полос 4 питание может осуществляться централизованно, от одного общего источника питания, или же питание может быть распределенным, когда каждая маркерная полоса 4 питается от отдельного источника питания. Централизованное питание может быть предпочтительным в стационарных коммерческих системах VR/AR, особенно, если маркерные полосы 4 встроены в пол или расположены на стенах либо на потолке помещения. Распределенное питание может быть предпочтительным в мобильных любительских системах VR/AR, в частности, пригодных для использования вне помещений.
Кабель 44 и электрический соединитель 43 могут быть любого подходящего типа. Их выбор представляет собой тривиальную задачу для специалиста, поэтому их описание опущено.
Каждый из активных маркеров 40, 41, 42 представляет собой светодиодный излучатель в ИК-диапазоне с диаграммой направленности, близкой к полусферической. Требуемая диаграмма направленности обеспечивается расположением и ориентацией одного или нескольких кристаллов светодиодов, а также рассеивателем, например, выполненным на основе линзы Френеля. Маркер может содержать драйвер, обеспечивающий работоспособность светодиодного излучателя в широком диапазоне напряжений питания.
Комбинация активных маркеров 40, 41, 42, расположенных заранее определенным образом, образует оптический паттерн, наличие и расположение которого в пространстве определяется хостом 6 на основе данных о маркерах, присутствующих в объединенном потоке данных с трекера 10. Использование активных (светоизлучающих) маркеров определяется принципом обратного трекинга и обеспечивает ряд преимуществ по сравнению с использованием пассивных (светоотражающих) маркеров. В частности, при применении активных маркеров не требуется дополнительного питания трекера для обеспечения подсветки пассивных маркеров, что особенно важно, когда трекер размещен на подвижном объекте. Размер зоны трекинга определяется размером и яркостью маркеров. Питание активных маркеров от сетевых или автономных источников питания позволяет многократно увеличивать мощность излучения маркеров, тем самым увеличивая размер зоны трекинга. При этом энергопотребление самого трекера остается неизменным.
Оптический паттерн может быть линейным паттерном, который выделяется алгоритмом обработки данных о маркерах. Линейный паттерн характеризуется заранее заданным соотношением расстояний между маркерами. В частности, в варианте осуществления изобретения с 3 маркерами, лежащими на одной линии в последовательности 40-41-42, как показано на фиг. 10А, расстояние между маркерами 40 и 41 вдвое больше, чем расстояние между маркерами 41 и 42. Разумеется, что соотношение расстояний между маркерами может быть иным с сохранением возможности надежной идентификации оптического паттерна в системе.
Рабочую зону можно масштабировать, увеличивая длину маркерной полосы 4 с сохранением соотношения расстояний и обеспечивая достаточную площадь светящейся поверхности маркеров и яркость их свечения. Это дает возможность существенного увеличения рабочей зоны с сохранением высоких характеристик отслеживания при условии сохранения угловых и яркостных параметров изображений маркеров в кадре оптического датчика.
Разумеется, что оптический паттерн может быть линейным паттерном с большим количеством маркеров, например, с четырьмя, пятью и т.д. маркерами; оптический паттерн также может быть нелинейным паттерном, т.е. маркеры могут быть расположены не на одной линии.
Помимо описанного выше способа увеличения рабочей зоны, существует возможность практически бесконечного масштабирования рабочей зоны за счет добавления дополнительных маркерных полос. В этом случае в картину трекинга добавляются не комбинации отдельных маркеров, а комбинации линейных паттернов. Таким образом, система определяет наличие в кадре заранее известных линейных паттернов и затем определяет расположение этих паттернов друг относительно друга. Это дает возможность спроектировать комбинацию линейных паттернов таким образом, чтобы на основе карты линейных паттернов, построенной при калибровке системы трекинга, система трекинга могла однозначно определить положение трекера внутри рабочей зоны. Такой подход возможно использовать для построения не только рабочей зоны простой формы в одном помещении, но и рабочей зоны сложной формы, в том числе, распределенной по нескольким смежным помещениям.
Таким образом, одним из преимуществ изобретения является простое масштабирование зоны трекинга за счет добавления новых маркерных полос. В системах прямого оптического трекинга с маркерами на подвижном объекте для расширения зоны трекинга требуется добавление дополнительных камер, что, в большинстве случаев, технически сложно и дорого. В заявленной системе стоимость маркерных полос невелика и трудоемкость их монтажа незначительна.
В зависимости от сценария, маркерные полосы могут находиться на полу, на стенах или на потолке. Возможны также комбинированные варианты, например, с расположением маркерных полос на стенах и на потолке или на полу и на стенах. В стационарных вариантах осуществления изобретения маркеры могут быть встроены в пол, в стены или в потолок. В передвижных вариантах осуществления изобретения, например, в выставочных образцах, маркеры могут быть встроены в разборный пол, являющийся частью выставочного инсталляционного комплекта.
В качестве альтернативы, в передвижных вариантах осуществления изобретения маркерные полосы могут быть собраны из элементов упругих сборных покрытий для пола (puzzle floor mats) (фиг. 11), которые в рабочем положении находятся в зацеплении друг с другом, что обеспечивает высокую геометрическую точность построения рабочей зоны, стабильность ее формы и размеров и, соответственно, упрощает настройку системы VR/AR. Маркеры могут быть установлены в заранее заданных местах таких элементов. Заранее заданные места установки маркеров могут представлять собой отверстия соответствующей формы, в которые устанавливаются маркеры, а неиспользуемые отверстия могут закрываться заглушками из того же материала, что и само покрытие. В случае применения централизованного питания маркеров, провода питания могут располагаться под покрытием. Провода питания маркеров могут быть ленточными проводами, что исключает их проявление в виде неровностей на рабочей поверхности покрытия. Возможно также совместное применение маркерных полос, показанных на фиг 10А, 10Б со сборными покрытиями для пола.
Для любительского использования, когда важными факторами являются легкость монтажа и простота применения, предпочтительным может быть напольный вариант, в котором пользователь может расположить маркерные полосы по полу, образовав из них фигуру, близкую к прямоугольнику, и подключить их к одному или нескольким источникам питания (фиг. 12). Время инсталляции подобной системы обычно составляет не более двух минут.
Для коммерческого использования, в частности для VR-парков, важно расположить ленты с маркерами вне досягаемости пользователей, чтобы они своими действиями не могли изменить характеристики рабочей зоны, определенные при калибровке и/или заданные в параметрах настройки системы. Кроме того, коммерческие системы VR/AR часто бывают многопользовательскими и при выборе расположения маркерных полос целесообразно учитывать возможность экранирования маркеров пользователями при их перемещении по рабочей зоне. В этом случае предпочтительным может быть вариант с настенным или потолочным расположением маркерных полос (фиг. 13, потолок условно не показан). Следует отметить, что при потолочном размещении маркерных полос размер рабочей зоны может существенно превышать размер фигуры, ограниченной маркерными полосами.
Для пользователей системы VR/AR может быть важным определить границы виртуального мира, чтобы помочь им избежать столкновения с предметами реального мира, например, со стенами, предметами домашней обстановки и т.п. Заявленное изобретение обладает также тем преимуществом, что маркерные полосы, помимо своей основной задачи создания оптической разметки для трекера, могут задавать границы виртуального мира, в частности при расположении их на полу или на стенах. На фиг. 14 штриховыми линиями показано задание границ виртуального мира, в целях безопасности расположенных на некотором расстоянии от стен. При приближении пользователя к границе рабочей зоны система VR/AR может формировать визуальный и/или акустический сигнал, предупреждающий пользователя об опасной близости предметов реального мира.
Хост 6 (фиг. 15) содержит устройство 61 связи, обеспечивающее обмен данными между хостом 6 и трекером 10, запоминающее устройство 62 для хранения программ и данных, источник 63 питания, обеспечивающий электропитание аппаратуры хоста 6, устройство 64 вывода, обеспечивающее вывод изображения на головной дисплей 5, и устройство 65 обработки данных, обеспечивающее обработку объединенного потока данных с трекера 10. Устройство 64 вывода может содержать устройство связи для передачи данных изображения на головной дисплей 5, если хост 6 конструктивно разделен с головным дисплеем 5 и расположен на расстоянии от него. Устройство 65 обработки данных содержит модуль 66 экстраполяции, обеспечивающий экстраполяцию данных позиционирования, и модуль 67 рендеринга, обеспечивающий построение 3D-сцен для вывода на головной дисплей 5.
В другом варианте осуществления изобретения модуль 67 рендеринга, обеспечивающий построение 3D-сцен для вывода на головной дисплей 5, может быть не частью хоста 6, а частью другого устройства, внешнего по отношению к хосту 6. В частности, функции модуля 67 рендеринга могут быть реализованы в отдельном компьютере или непосредственно в головном дисплее, при этом результаты экстраполяции данных позиционирования могут передаваться из хоста 6 такому компьютеру или головному дисплею, например, через устройство 61 связи.
Устройство 61 связи хоста 6 должно быть совместимым с устройством 106 связи трекера 10 и должно отвечать тем же требованиям, что и устройство 106 связи трекера 10. Запоминающее устройство 62, источник 63 питания и устройство 64 вывода представляют собой традиционные узлы, хорошо известные специалистам в данной области техники, поэтому их подробное описание опущено.
Принцип действия системы 1 VR/AR проиллюстрирован блок-схемой алгоритма на фиг. 16. На шаге S1 выполняется подготовка системы 1 к работе. На шаге S2 выполняется получение и обработка данных трекинга в трекере 10. На шаге S3 выполняется получение и обработка данных трекинга в хосте 6. На шаге S4 выполняется отображение 3D-сцены на головном дисплее 5.
В общем случае система 1 содержит несколько маркерных полос 4 в рабочей зоне, а сама рабочая зона формируется заново и шаг S1 включает в себя несколько шагов (фиг. 17):
S11 - определение конфигурации рабочей зоны; на этом шаге определяется форма и размер зоны, в которой необходимо производить трекинг подвижных объектов;
S12 - формирование плана размещения маркерных полос; на этом шаге для определенной на шаге S11 рабочей зоны рассчитывается такой вариант расположения маркерных полос, который обеспечивает наиболее надежное определение положения трекера внутри рабочей зоны или несколько таких вариантов. Этот шаг необходим в случае рабочей зоны сложной формы и опционален в случае сравнительно простой формы рабочей зоны, он также необходим в случае рабочей зоны простой формы, но большого размера, при котором возможны различные варианты размещения маркерных полос. Для формирования плана размещения маркерных полос может быть использовано специализированное программное обеспечение;
S13 - выбор плана размещения маркерных полос; на этом шаге выбирается план размещения маркерных полос из числа уже имеющихся в системе планов или план, сформированный на шаге S12;
S14 - формирование карты фактического расположения маркерных полос; на этом шаге трекер необходимо перемещать по рабочей зоне до тех пор, пока система не обнаружит все линейные паттерны согласно выбранному плану. Следует отметить, что для рабочей зоны простой формы не требуется точного соответствия геометрии расположения маркерных полос в пространстве геометрии выбранного плана. Так, если выбрана прямоугольная форма, то углы, образованные маркерными полосами, не обязательно должны составлять точно 90°, маркерные полосы достаточно расположить в форме, близкой к прямоугольнику. Система 1 на этом шаге осуществляет автоматическую калибровку путем сопоставления фактического расположения маркерных полос с их расположением согласно выбранному плану. Данное свойство системы 1 весьма важно с точки зрения простоты инсталляции и обеспечивает гибкость использования системы в соответствии с пользовательскими сценариями - как в помещениях, так и на открытом воздухе.
В системах 1 фиксированной конфигурации шаг S1 может быть упрощен за счет исключения действий, требуемых лишь для формирования новой рабочей зоны. В частности, в стационарных системах и в мобильных системах с фиксированной конфигурацией, например, обеспечиваемой сборным напольным покрытием со встроенными в него активными маркерами 40, 41, 42, автоматическая калибровка на шаге S14 может быть пропущена или даже весь шаг S14 может быть пропущен.
Шаг S2 включает в себя несколько шагов (фиг. 18).
S21 - управление следящим окном оптического датчика; следящее окно оптического датчика представляет собой область считывания данных с оптического датчика, которая может перемещаться в пределах кадра оптического датчика в зависимости от положения изображений маркеров в кадре. Применение следящего окна позволяет ускорить считывание данных с оптического датчика и, таким образом, уменьшить аппаратную задержку при формировании оптических данных. В частности, применение следящего окна позволяет увеличить частоту считывания оптических данных с 60 выборок в секунду до 400 выборок в секунду. Пример алгоритма управления следящим окном оптического датчика изложен в публикации WO2016108720A1 более ранней заявки автора данного изобретения, поэтому его подробное описание опущено; этот шаг является опциональным, т.е. если применение следящего окна не требуется, то область считывания устанавливается равной полному кадру оптического датчика.
S22 - считывание изображения с оптического датчика в пределах области считывания; данные с оптического датчика передаются в устройство 104 обработки данных с использованием высокоскоростного стандарта передачи данных LVDS (low-voltage differential signaling), устройство 104 обработки данных в каждой строке считанного изображения определяет пиксели, яркость которых превышает заранее установленный порог, задаваемый в настройках, выявляет группы таких пикселей и записывает в буфер обмена следующую информацию о найденных группах: (а) координату начала группы, (б) размер (длину) группы и (в) три параметра, характеризующие эту группу: сумму значений яркости пикселей группы, сумму значений яркости пикселей группы, умноженных на линейные координаты пикселей в строке, и сумму квадратов значений яркости пикселей группы, умноженных на линейные координаты пикселей в строке; при этом на размер выявленных групп может накладываться заранее определенное ограничение, например, группа может содержать не менее трех ярких пикселей, а в буфер обмена могут попадать данные только тех строк, в которых выявлена, по меньшей мере, одна группа ярких пикселей. В зависимости от назначения системы VR/AR, состав информации в буфере обмена может отличаться от указанного выше, но он должен быть достаточным для выполнения последующих шагов алгоритма. В иллюстративном варианте осуществления изобретения шаг S22 выполняется посредством ПЛИС LCMXO3LF-2100E-5UWG49CTR50.
S23 - выявление изображений маркеров и вычисление их параметров; группы ярких пикселей анализируются для каждой строки, данные которой получены из буфера обмена, при этом группы ярких пикселей анализируемой строки сопоставляются с группами ярких пикселей предыдущей проанализированной строки и соответствующие группы объединяются в изображения маркеров; для каждого выявленного таким образом изображения маркера определяются следующие параметры: (а) 2D-координаты его центра в координатной системе кадра оптического датчика, (б) эффективный радиус и (в) взвешенная яркость; 2D-координаты центра изображения маркера могут определяться с субпиксельной точностью и параметры изображения маркера могут содержать отметку времени, указывающую на момент времени съемки соответствующего кадра и используемую в дальнейшем при обработке объединенного потока данных в хосте 6. В зависимости от назначения системы VR/AR, состав параметров изображения маркера может отличаться от указанного выше, но он должен быть достаточным для выполнения последующих шагов алгоритма. В иллюстративном варианте осуществления изобретения шаг S23 выполняется микроконтроллером STM32F446MEY6.
S24 - считывание данных с гироскопа и акселерометра; на этом шаге с гироскопа и акселерометра с заданной периодичностью считываются данные; эти данные могут содержать отметку времени, указывающую на момент времени их считывания и используемую в дальнейшем при обработке объединенного потока данных в хосте 6. Состав данных инерциальных датчиков и способ их получения с инерциальных датчиков известны специалисту, поэтому он здесь они опущены для краткости.
S25 - формирование объединенного потока данных; на этом шаге данные, полученные на шаге S23, объединяются с данными, полученными на шаге S24, с формированием объединенного потока данных, пример которого представлен на фиг. 4.
S26 - передача объединенного потока данных на хост 6 для последующей обработки.
Шаг S3 включает в себя несколько шагов (фиг. 19).
S31 - прием объединенного потока данных; на этом шаге хост 6 принимает объединенный поток данных с трекера 10; если трекеры 10, 20, 30 объединены в группу и передача данных с трекеров 20, 30 выполняется через трекер 10, то на этом шаге хост 6 также разделяет объединенный поток данных с трекера 10 на объединенные потоки данных с трекера 10, с трекера 20 и с трекера 30, которые в дальнейшем обрабатываются независимо друг от друга.
S32 - обработка объединенного потока данных; на этом шаге хост 6 обрабатывает данные, содержащиеся в объединенном потоке данных с трекера 10, определяет текущие данные позиционирования - координаты положения, ориентацию и, опционально, параметры движения трекера в координатной системе рабочей зоны системы 1; подробно алгоритм обработки объединенного потока данных изложен далее со ссылкой на фиг. 22.
S33 - валидация математической модели траектории движения трекера 10; подробно алгоритм валидации математической модели изложен далее со ссылкой на фиг. 23.
S34 - экстраполяция данных позиционирования; на этом шаге вычисляется прогноз положения и ориентации трекера в координатной системе рабочей зоны системы 1 в заранее определенный момент времени в будущем в пределах установленного горизонта экстраполяции; подробно алгоритм экстраполяции изложен далее со ссылкой на фиг. 24.
S35 - рендеринг 3D-сцены; на этом шаге система 1 на основе текущих и прогнозных данных о положении и ориентации каждого трекера выполняет построение 3D-сцены для каждого глаза каждого пользователя 7.
В зависимости от назначения системы 1 и количества пользователей, рендеринг 3D-сцены для каждого пользователя на шаге S35 может выполняться централизовано в центральном хосте, обладающем большой вычислительной мощностью, и затем транслироваться соответствующим пользователям, либо рендеринг 3D-сцены для каждого пользователя может выполняться децентрализовано в локальном хосте, расположенном на теле пользователя, например, в головном дисплее 5. Возможен также целый спектр промежуточных решений, предполагающих наличие как центрального хоста, так и локальных хостов, и различающихся распределением функций и, соответственно, вычислительной нагрузки 3D-рендеринга между центральным хостом и локальными хостами.
На шаге S32 определяются текущие данные позиционирования - координаты, ориентация и, опционально, параметры движения трекера в координатной системе рабочей зоны системы 1. В процессе работы в системе 1 накапливается набор исторических данных трекинга, содержащий данные со всех датчиков в заданном интервале времени. В частности, на интервале времени в 4 секунды, который оказывается оптимальным в большинстве игровых приложений, исторические данные содержат информацию о приблизительно 17000 обновлений данных с датчиков. Исторические данные сохраняются в запоминающем устройстве 62 хоста 6. Исторические данные позволяют определить траекторию движения трекера и соответствующей части тела пользователя в заданном интервале времени в прошлом и предсказать ее в будущем, в пределах горизонта экстраполяции.
0
0
1
1
1
0
1
n
n-1
n-2
2
n
n-1
n-2
2
На фиг. 20 представлена схема обновления данных позиционирования. Данные OF - текущие данные оптического позиционирования, полученные на основе данных оптического датчика. Данные L - текущие данные инерциального позиционирования, полученные на основе данных инерциальных датчиков, после получения данных OF. Данные OF - предыдущие данные оптического позиционирования, полученные на основе данных оптического датчика. Данные L - предыдущие данные инерциального позиционирования, полученные на основе данных инерциальных датчиков, между данными OF и OF. Данные OF, OF, OF, …, OF - более старые данные оптического позиционирования в заданном интервале времени, а L, L, L, L - соответствующие им более старые данные инерциального позиционирования. Совокупность данных оптического позиционирования в заданном интервале времени и соответствующие им по времени данные инерциального позиционирования образуют набор исторических данных трекинга.
Данные OF содержат информацию о лучах в локальной координатной системе каждого трекера, направленных на выявленные в оптическом кадре характерные точки - изображения маркеров. Каждому лучу соответствует конкретная характерная точка. Количество характерных точек, выявленных каждым трекером, непостоянно во времени и зависит от взаимного положения трекера и маркерных полос, а также от затенения маркеров пользователями в многопользовательских системах VR/AR (фиг. 21). Частота обновления данных OF может составлять от 60 до 400 выборок в секунду, в зависимости от режима работы оптического датчика.
0
Данные L содержат последовательности данных акселерометра и данных гироскопа, описывающие движение трекера в промежутках времени между поступлениями данных OF. Текущий набор данных L обновляется при каждом поступлении новых данных от гироскопа или акселерометра, частота обновления данных L может быть в диапазоне от приблизительно 2000 выборок в секунду до приблизительно 4000 выборок в секунду при частоте несинхронизированного поступления данных от гироскопа и акселерометра порядка 2000 выборок в секунду. Следует отметить, что частота обновления данных L может быть менее 2000 выборок в секунду или более 4000 выборок в секунду, в зависимости от выбранных моделей инерциальных датчиков; важно, что частота обновления данных L существенно превышает частоту обновления данных OF.
Набор данных S позиционирования трекера представляет собой многомерный вектор и в иллюстративном варианте осуществления изобретения включает в себя координаты трекера в виде глобального 3D-вектора (в системе координат рабочей зоны системы VR/AR), ориентацию трекера в виде глобального кватерниона (в системе координат рабочей зоны системы VR/AR), скорость движения в виде глобального 3D-вектора (в системе координат рабочей зоны системы VR/AR) и поправку к данным одного или нескольких инерциальных датчиков в виде локального 3D-вектора (в локальной системе координат трекера). В иллюстративном варианте осуществления изобретения набор данных S позиционирования трекера содержит 13 параметров, из них 12 параметров являются независимыми (в кватернионе, описывающем ориентацию трекера, один из параметров избыточен). В другом варианте осуществления изобретения набор данных S может содержать большее или меньшее количество данных, в частности, набор данных S может не содержать данных о скорости движения трекера или набор данных S, помимо данных о скорости движения трекера, может содержать данные об ускорении трекера.
Обычно в системе хранится только набор данных S позиционирования трекера для момента времени, соответствующему последнему оптическому кадру (самая актуальная позиция, прошедшая актуализацию и валидацию по оптическим данным). Данные позиционирования для других моментов времени в пределах глубины записи истории вычисляются путем сложения или вычитания приращений по инерциальным данным L.
i
i+1
i+1
i
i-1
i
В частности, при прямом проходе, т.е. при движении S в направлении оси времени, исторические значения данных S вычисляются путем корректировки данных S с использованием данных L, где i = 0…n (при этом корректировка производится сложением значений координат); при обратном проходе, т.е. при движении S в направлении, противоположном направлению оси времени, исторические значения данных S вычисляются путем корректировки данных S с использованием данных L, где i = 0…n (при этом корректировка производится вычитанием значений координат) (фиг. 20). Иными словами, набор данных S позиционирования возможно определить для текущего момента времени и для любого момента времени в прошлом в пределах глубины записи истории (обычно порядка 4 секунд) с временной точностью, соответствующей частоте поступления инерциальных данных.
Положение и ориентацию трекера в заданный момент времени (а, следовательно, и траекторию движения трекера) возможно определить на основе данных S и данных L. Иными словами, совокупность данных S и данных L составляет математическую модель траектории движения трекера, которая изменяется при каждом поступлении новых данных от любого из датчиков и используется алгоритмом экстраполяции для предсказания положения трекера в заранее заданный момент времени в будущем. При поступлении новых оптических данных производится валидация (пересчет) математической модели в части данных S, а при поступлении новых инерциальных данных актуализируется регистр инерциальных данных L. Если новые оптические данные поступают до окончания процедуры валидации по ранее поступившим оптическим данным, то следующая процедура валидации запускается тотчас по окончании предыдущей процедуры валидации и в ней используются эти вновь поступившие оптические данные.
При валидации математической модели вычисляются отклонения траектории движения трекера от реперных точек положения трекера, известных на основе оптических данных. После оптимизации траектории (актуализации математической модели) снова рассчитываются отклонения. Сравнение отклонений траектории позволяет принять решение о том, является ли модель до изменения актуальной или ее следует заменить измененной моделью. Следует отметить, что с учетом состава набора данных S и L, для актуализации всей траектории достаточно произвести оптимизацию только одного вектора S, все остальные точки траектории могут быть вычислены по приращениям на основе инерциальных данных L.
На основе актуализированной математической модели возможно предсказание положения и ориентации трекера в определенный момент времени в будущем, соответствующий горизонту экстраполяции. Далее алгоритмы валидации математической модели и экстраполяции данных позиционирования описаны более подробно со ссылкой на фиг. 23 и фиг. 24.
На фиг. 22 представлена блок-схема алгоритма обработки объединенного потока данных на шаге S32.
Входными данными алгоритма являются данные объединенного потока данных с трекера, полученные на шаге S31.
1
На шаге S3201 обрабатываются данные инерциальных датчиков, в частности, гироскопа и акселерометра, в результате чего новые инерциальные данные добавляются регистр инерциальных данных L этого трекера. При поступлении на шаге S3202 в объединенном потоке данных отметки времени, указывающей на момент времени съемки соответствующего кадра, текущий регистр инерциальных данных закрывается, данные из него записываются в стек инерциальных данных как L на шаге S3203, а для приема новых инерциальных данных открывается новый регистр, при этом нумерация оптических и инерциальных данных в стеке смещается на один шаг назад на шаге S3204.
0
1
1
0
1
1
На шаге S3205 вычисляется набор текущих данных позиционирования трекера - данных S - путем применения данных L для корректировки данных S. В частности, для вычисления данных S значения координат из данных S увеличиваются на значения приращений из данных L.
0
На шаге S3206 обрабатываются оптические данные - 2D-координаты выявленных изображений маркеров в координатной системе кадра оптического датчика. При этом выполняется идентификация маркеров, т.е. определяется их принадлежность той или иной маркерной полосе. Идентификация маркеров выполняется на основе оптических паттернов, соответствующих маркерным полосам. В частности, в маркерной полосе 4 (фиг. 10) использован линейный оптический паттерн, в котором расстояние между маркерами 40 и 41 вдвое больше, чем расстояние между маркерами 41 и 42. Для каждого маркера вычисляется направление на этот маркер (луч) в системе координат того трекера, в данных которого обнаружен и идентифицирован конкретный маркер. Это направление может определяться в полярных координатах. Множество лучей составляет набор данных OF этого трекера, которые записываются в стек оптических данных как данные OF на шаге S3207.
0
0
Таким образом, результатом выполнения шага S32 являются данные S и данные OF.
На фиг. 23 представлена блок-схема алгоритма валидации математической модели траектории движения трекера на шаге S33.
0
На шаге S3301 из локальных 3D-лучей, направленных на маркеры, видимые трекером, формируются глобальные 3D-лучи с использованием информации, содержащейся в текущих данных S. Преобразование 3D-лучей, определенных в локальных координатах конкретного трекера, в 3D-лучи, определенные в глобальных координатах системы VR/AR, необходимо для определения вектора E ошибки позиционирования трекера.
0
На шаге S3302 вычисляется вектор E ошибки позиционирования трекера, который представляет собой многомерный вектор и включает в себя невязку координат маркеров и частные производные невязки по каждому из компонентов набора данных S. Невязка координат маркеров определяется путем сравнения координат маркеров, вычисленных на основе 3D-лучей, сформированных на шаге S3301, с координатами маркеров, известных из плана размещения маркерных полос.
0
На шаге S3303 вычисленный текущий вектор E записывается в стек векторов ошибки E как E.
0
i
i
i
i
i
На шаге S3304 производится вычисление данных S и соответствующих им векторов ошибок E в обратном направлении на всю глубину истории, при этом в качестве начальных значений данных S использованы значения данных S (т.е. самые новые значения, полученные на шаге S3203), а исторические значения данных S вычисляются путем применения соответствующих исторических значений данных L, как описано выше для случая обратного прохода. Иными словами, вычисляются данные S, соответствующие моментам времени данных OF, и векторы E, также соответствующие моментам времени OF, i=0…n, при этом значения векторов E фиксируются в стеке векторов ошибки E.
n
n
После достижения самой ранней точки истории набор данных S позиционирования подвергается оптимизации на шаге S3305. Оптимизация может выполняться методом наименьших квадратов, например, с использованием алгоритма Левенберга-Марквардта. Разумеется, для такой оптимизации могут быть использованы и другие методы, известные специалистам. Входными данными для такой оптимизации являются векторы E, вычисленные на шаге S3304, а частные производные, содержащиеся в векторе E, задают направление изменения набора данных S в ходе оптимизации. Результатом шага S3305 является набор оптимизированных данных S'.
n
i
i
i
На шаге S3306 производится вычисление данных S' в прямом направлении, при этом в качестве начальных значений данных S' использованы значения данных S' (т.е. самые старые значения, полученные на шаге S3305), а исторические значения данных S' вычисляются путем применения соответствующих исторических значений данных L, как описано выше для случая прямого прохода. Результатом такой обработки являются данные S', i=0…n, отражающие измененную траекторию движения трекера, а также векторы E', i=0…n, вычисляемые для новых значений S', которые записываются в стек векторов ошибки E'.
i
i
i
i
i
0
0
0
На шаге S3307 сравниваются векторы из стеков векторов E и E' с целью определения того, уменьшилась ли ошибка позиционирования при использовании измененной математической модели по сравнению с использованием текущей математической модели. Сравнение может выполняться поэлементно для каждой пары векторов E и E' (т.е. сравниваться могут соответствующие элементы многомерных векторов из стеков векторов E' и E) с вычислением целевой функции F = F(E - E'), i = n...0, значение которой сравнивается с пороговым значением ε. Если F > ε, то новый набор данных S' принимается в качестве S на шаге S3308, т.е. в системе VR/AR далее используется измененная математическая модель, а если F ≤ ε, то используется прежний набор данных S, т.е. в системе VR/AR продолжает использоваться прежняя математическая модель, которая считается актуализированной до поступления следующих оптических данных позиционирования.
Целевая функция F может представлять собой взвешивающую функцию. В частности, целевая функция может учитывать размер изображения маркера (изображения маркеров большего размера дают менее зашумленные данные и их вклад во взвешивающую функцию может быть большим), положение изображения маркера на матрице оптического датчика (изображения маркеров, расположенные ближе к центру оптического датчика (особенно, оснащенного широкоугольным объективом типа «fisheye») дают менее геометрически искаженные данные и их вклад во взвешивающую функцию может быть большим) и/или возраст данных (элементы E, относящиеся к текущему моменту времени, могут давать больший вклад во взвешивающую функцию, чем исторические элементы E).
Таким образом, результатом выполнения шага S33 являются оптимизированные данные S, обеспечивающие минимальную ошибку позиционирования трекера.
Следующий раз алгоритм шага S33 запускается при поступлении новых оптических данных в объединенном потоке данных. При этом самые старые исторические значения данных OF и данных L удаляются из стека с применением дисциплины FIFO, т.е. стеки данных OF и данных L сдвигаются на один шаг в направлении более свежих данных позиционирования.
Описанный выше алгоритм обладает следующими преимуществами:
(а) высокая диверсификация - поступление любых данных с датчиков позволяет уточнять положение и ориентацию трекера: поступление новых оптических данных обеспечивает актуализацию математической модели траектории движения трекера, а поступление новых инерциальных данных обеспечивает высокую точность трекинга в промежутках между поступлениями оптических данных;
(б) высокая робастность - даже в случае поступления оптических данных, относящихся лишь к одному маркеру, которые невозможно непосредственно использовать для позиционирования трекера (такое может произойти в многопользовательской системе вследствие затенения маркеров пользователями), эти данные все же могут быть использованы для актуализации математической модели.
Наличие в системе VR/AR актуализированной математической модели траектории движения трекера позволяет точно предсказывать положение трекера в определенный момент времени в будущем. Такое предсказание выполняется с применением алгоритмов экстраполяции.
На фиг. 24 представлена блок-схема алгоритма экстраполяции данных позиционирования на шаге S34. Исходными данными для этого алгоритма являются оптимизированные данные S, полученные на шаге S33, и набор данных L.
На шаге S3401 задается горизонт экстраполяции. Горизонт экстраполяции задается по запросу, поступившему от 3D-движка, ответственного за построение 3D-сцены. 3D-движок запрашивает прогнозные данные позиционирования на определенный момент в будущем, соответствующий моменту вывода 3D-сцены на головной дисплей, исходя из особенностей конкретной системы VR/AR - ее назначения, количества пользователей, динамичности пользователей, характера их движений, известной задержки в этой системе и т.д. Дальность горизонта экстраполяции может быть нулевой, например, если 3D-движок не запрашивает прогнозные данные позиционирования. Дальность горизонта экстраполяции также может определяться ограничениями, заданными в настройках системы VR/AR. Автор данного изобретения опытным путем установил, что для получения высокой достоверности экстраполяции положения и ориентации трекера дальность горизонта экстраполяции не должна превышать 30 мс при частоте обновления данных инерциальных датчиков порядка 4000 выборок в секунду и максимальном возрасте всех видов данных в пределах 4 с.
На шаге S3402 задается база экстраполяции - глубина истории данных L, используемой алгоритмом экстраполяции для построения прогнозной траектории движения трекера на временном отрезке неопределенности - от момента времени поступления последних инерциальных данных до момента времени, соответствующего горизонту экстраполяции. База экстраполяции может задаваться в пределах полной истории трекинга (порядка 4 с). Размер базы экстраполяции может зависеть от доступности вычислительных ресурсов, количества отслеживаемых трекеров в системе VR/AR и т.д. В некоторых случаях оптимизация данных S способна обеспечивать достаточную точность экстраполяции даже на минимальной базе экстраполяции размером в одну или несколько выборок данных L. Следует отметить, что база экстраполяции может задаваться динамически, т.е. может изменяться в зависимости от ситуации в системе VR/AR и может отличаться для разных трекеров.
0
0
э
На шаге S3403 выполняется экстраполяция траектории на горизонт экстраполяции, заданный на шаге S3401, исходя из базы экстраполяции, заданной на шаге S3402, т.е. достраивание траектории до момента времени в будущем, заданного в запросе, поступившем от 3D-движка. Для получения физических координат трекера на горизонте экстраполяции наиболее свежие данные L применяются к данным S и к полученному результату применяется алгоритм экстраполяции. Результатом этого шага являются данные S, соответствующие этому заданному моменту времени в будущем.
Для построения траектории на шаге S3403, в зависимости от назначения системы VR/AR и доступных в ней вычислительных ресурсов, могут использоваться различные известные специалистам алгоритмы экстраполяции - от линейной до полиномиальной, подробное описание которых опущено для краткости. При этом для разных трекеров алгоритмы экстраполяции могут отличаться или при одинаковых алгоритмах экстраполяции могут отличаться параметры экстраполяции.
э
Таким образом, результатом выполнения шага S34 являются прогнозные данные S о положении и ориентации трекера в пространстве рабочей зоны.
Следует отметить, что каждый из процессов, соответствующих шагам S31, S32, S33, S34, выполняется в отношении данных с каждого трекера независимо, т.е. эти процессы являются многопоточными, при этом количество потоков кратно количеству действующих трекеров в системе VR/AR.
Следует также отметить, что в приведенном выше описании отражены лишь те действия, которые наиболее существенны для достижения цели изобретения. Специалисту понятно, что для функционирования системы следует выполнить и другие необходимые действия, например, подключение оборудования, его инициализацию, запуск соответствующего программного обеспечения, передачу и прием команд и подтверждений, обмен служебными данными, синхронизацию и т.п., описание которых опущено для краткости изложения.
Кроме того, следует отметить, что в приведенном выше описании отражены лишь те части устройств, которые наиболее существенны для достижения цели изобретения. Специалисту понятно, что эти устройства должны или могут содержать и другие части, обеспечивающие функционирования системы, описание которых опущено для краткости изложения.
Устройства и их части, способы и их части, упомянутые в описании и чертежах, относятся к одному или нескольким определенным вариантам осуществления изобретения, если они упоминаются со ссылкой на числовое позиционное обозначение, или ко всем вариантам осуществления изобретения, в которых возможно их применение, если они упоминаются без ссылки на числовое позиционное обозначение.
Устройства и их части, упомянутые в описании, чертежах и формуле изобретения, представляют собой программно-аппаратные средства, при этом аппаратные части одних устройств могут отличаться, частично совпадать или полностью совпадать с аппаратными частями других устройств, если иное не указано в явном виде. Аппаратные части устройств могут располагаться в различных частях других устройств, если иное не указано в явном виде. Программные части (модули) могут быть реализованы в виде программного кода, содержащегося в запоминающем устройстве.
Последовательность действий в описании способа носит иллюстративный характер и в различных вариантах осуществления изобретения эта последовательность может отличаться от описанной при условии сохранения выполняемой функции и достигаемого результата.
Части и признаки данного изобретения могут сочетаться в различных вариантах осуществления изобретения, если они не противоречат друг другу. Описанные выше варианты осуществления изобретения приведены исключительно с иллюстративной целью и не предназначены для ограничения объема настоящего изобретения, определяемого формулой изобретения. Все разумные модификации, модернизации и эквивалентные замены в составе, конструкции и принципе действия настоящего изобретения, выполненные в пределах его сущности, входят в объем данного изобретения.
Следует также отметить, что приведенное выше описание изобретения относится к использованию способа и/или системы для обратного оптико-инерциального трекинга подвижного объекта в системах виртуальной или дополненной реальности. Вместе с тем, способ и/или система для обратного оптико-инерциального трекинга подвижного объекта в полной мере применимы в любой другой области для решения задач, связанных с определением положения и/или ориентации и/или параметров движения подвижного объекта.
В частности, описанные выше технические решения могут быть с успехом применены для отслеживания перемещений грузов и операторов в системах складской, производственной или торговой логистики, для отслеживания перемещений участников процесса в системах учебного назначения, для определения положения и ориентации рабочих органов робототехнических систем, для управления беспилотными подвижными объектами, включая беспилотные летательные аппараты, и для решения разнообразных задач, связанных с отслеживанием подвижных объектов в других системах, ныне существующих или тех, что будут разработаны в будущем.
Ссылки на непатентные документы
1. A. Hogue; M.R. Jenkin; R.S. Allison. An optical-inertial tracking system for fully-enclosed VR displays (2008). DOI: 10.1109/CCCRV.2004.1301417 (https://doi.org/10.1109/CCCRV.2004.1301417)
th
2. D. Wormell; E. Foxlin; P. Katzman. Advanced inertial-optical tracking system for wide area mixed and augmented reality systems. Proceedings of the 10 International Immersive Projection Technologies Workshop (2007).
3. Robert Atac; Eric Foxlin. Scorpion hybrid optical-based inertial tracker (HObIT) (2013). DOI: 10.1117/12.2012194 (http://dx.doi.org/10.1117/12.2012194)
4. Robert Atac; Scott Spink; Tom Calloway; Eric Foxlin. Scorpion hybrid optical-based inertial tracker (HObIT) Test Results (2014). DOI: 10.1117/12.2050363 (http://dx.doi.org/10.1117/12.2050363)
5. Axel Pinz; Markus Brandner; Harald Ganster; Albert Kusej; Peter Lang; Miguel Ribo. Hybrid Tracking for Augmented Reality (2002). ÖGAI Journal, 21:1 17-24, 2002.
6. Suya You; Ulrich Neumann; Ronald Azuma. Hybrid Inertial and Vision Tracking for Augmented Reality Registration (1999). Proceeding VR'99 Proceedings of the IEEE Virtual Reality, Page 260.
7. Markus Miezal; Gabriele Bleser; Didier Stricker; Johannes Tumler. Towards practical inside-out head tracking for mobile seating bucks (2012). ISMAR 2012 Workshop on Tracking Methods and Applications Workshop on Tracking Methods and Applications (ISMAR-12), November 5-8, Atlanta, Georgia, USA.
8. John Carmack. Latency Mitigation Strategies. (https://web.archive.org/web/20140719085135/http://www.altdev.co/2013/02/22/latency-mitigation-strategies)
sine qua non
9. Michael Abrash. Latency - the  of AR and VR. (http://blogs.valvesoftware.com/abrash/latency-the-sine-qua-non-of-ar-and-vr)