Создание трекеров для отслеживания тела в виртуальной реальности

XXV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Создание трекеров для отслеживания тела в виртуальной реальности

Федотов Н.С. 1
1МБОУ Лицей №1
Сергеева О.В. 1
1МБОУ Лицей №1
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Виртуальная реальность (VR) — это технология, которая позволяет пользователю полностью погружаться в цифровой мир с помощью специальных устройств. В VR пользователи могут взаимодействовать с виртуальной средой так, как если бы они находились внутри неё. С каждым годом виртуальная реальность становится всё более доступной и популярной. Актуальность данной работы состоит в том, что осуществить погружение в виртуальную реальность (VR) можно с помощью отслеживания движений тела игрока. Это позволяет не только улучшить игровой опыт, но и сделать взаимодействие с виртуальным миром более естественным. Однако, несмотря на растущий интерес к этому, многие пользователи сталкиваются с проблемой отсутствия недорогих и качественных решений для отслеживания тела.

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

Цель данного проекта заключается в разработке и сборке недорогих трекеров на основе технологии SlimeVR, что поможет сделать VR-опыт более доступным и увлекательным для всех.

Для осуществления отслеживания тела понадобится минимум 5 трекеров, которые надеваются на пояс, колени и голени. Однако более популярен вариант 5+3, где 5 основных (в основном находится аккумулятор, плата управления и гироскоп) и 3 дополнительных (в дополнительных находится только гироскоп, который подключается проводами к основной плате и создает еще одну точку для отслеживания)

Цена создания подобных трекеров может сильно отличаться, так как можно выбрать комплектующие, из которых их можно собрать. Она зависит от емкости аккумулятора, платы, которая будет использоваться в проекте, и от гироскопа (наиболее сильно на цену конечного комплекта влияет именно он).

История создания трекеров

Кто же первый придумал подобную технологию?

Айвен Эдвард Сазерленд — американский учёный в области информатики и пионер интернета. Получил премию Тьюринга от ACM в 1988 за создание «Sketchpad» — прообраза будущих САПР, имеющего ранний прототип графического интерфейса. Одновременно впервые применил объектно-ориентированный подход к программированию.

С 1965 по 1968 год он работал в Гарвардском университете. С помощью своего студента Боба Спроула он в 1968 году создал то, что считается первым шлемом виртуальной реальности и дополненной реальности. Шлем был примитивным как с точки зрения интерфейса, так и по реализму изображения, а его вес был таким большим, что он подвешивался к потолку. Виртуальная среда состояла из простых каркасных моделей комнат. Он изменял изображение, отображаемое перед глазами пользователя, в зависимости от того, куда человек смотрел. Грозный вид устройства дал ему соответствующее название — Дамоклов Меч.

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

После них эту технологию развивала компания VPL Research. VPL Research была одной из первых компаний, которая разрабатывала и продавала продукты виртуальной реальности . Она была основана ученым-компьютерщиком Джароном Ланье в 1984 году. «VPL» расшифровывалось как «Virtual Programming Languages» (языки виртуального программирования). В 1990 году VPL Research объявила о банкротстве, а в 1999 году все ее патенты были куплены Sun Microsystems.

Они создали DataGlove

Это устройство изначально было задумано как система ввода для компьютеров. Позже оно использовалось для систем виртуальной реальности. Томас Циммерман изобрел прототип DataGlove и начал искать других людей, которые могли бы помочь в работе над ним. Устройство использовало микроконтроллеры 6502. Циммерман встретил Митча Альтмана и попросил его присоединиться к VPL на неполный рабочий день, потому что Альтман знал, как программировать микроконтроллеры. 

Система была подключена к компьютеру. Она была интерактивной и содержала опто-волоконные пучки для отслеживания движений и ориентации. Затем эти данные передавались на компьютер, чтобы информацию можно было дублировать виртуально. Она позволяла людям манипулировать виртуальными объектами.

Так же они создали DataSuit, который представлял собой полноразмерный костюм с датчиками для измерения движений рук, ног и туловища.

На дальнейшее развитие повлияли такие компании, как Ascension Technology и Motion Analysis создали первые системы захвата движений с использованием инфракрасных камер и маркеров, которые прикреплялись к телу. Это позволило отслеживать точные движения актёров, спортсменов.

Компания Vicon (основана в 1984 году) стала лидером в области захвата движений и разработала более продвинутые системы с многокамерным отслеживанием. Их системы стали использоваться в киноиндустрии для создания реалистичных анимационных персонажей.

Сегодня системы захвата движений используются повсеместно, и технологии отслеживания движений развиваются в разных направлениях. Эти технологии используются во многих сферах.

На игровой потребительский рынок с неплохим качеством отслеживания тела зашла Microsoft, которая выпустила Kinect для Xbox 360, который использовал сенсоры глубины и камеры для отслеживания движений всего тела без необходимости носить специальное оборудование. Kinect стал популярным в области интерактивных игр и также нашёл применение в исследованиях и образовании благодаря своей доступности и инновационной технологии.

Полноценным трекингом тела для виртуальной реальности стали трекеры от HTC Vive

HTC Vive Трекеры — это аксессуары для системы виртуальной реальности HTC Vive, которые позволяют отслеживать движения объектов или частей тела в виртуальной реальности. Эти трекеры были представлены в 2017 году и стали важным дополнением для создания более полного и реалистичного опыта в VR. Вот как их создавали и какие ключевые особенности они имеют:

Разработка и создание Vive Trackers:

Цель разработки: HTC Vive Trackers были разработаны для расширения возможностей системы виртуальной реальности HTC Vive. Они предназначены для отслеживания движений дополнительных объектов или частей тела, что позволяет создавать более интерактивные и погружающие VR-опыты. Например, трекеры могут использоваться для отслеживания движений ног, рук или различных предметов, таких как спортивное оборудование.

Технология отслеживания: Vive Trackers используют ту же технологию отслеживания, что и основная система Vive. Это включает в себя:

Лазерное отслеживание: Трекеры взаимодействуют с базовыми станциями (Lighthouse), которые используют лазеры для точного отслеживания положения их в пространстве.

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

Форм-фактор Vive Трекеры имеют компактный и легкий дизайн, что позволяет их легко крепить к различным объектам. Они оснащены универсальным креплением, которое можно цеплять к различным аксессуарам или одежде. Таким образом, трекеры могут быть прикреплены к рукам, ногам, спортивному оборудованию или любым другим объектам, которые требуется отслеживать.

Применение и возможности:

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

Тренировки: В образовательных и тренировочных целях трекеры могут использоваться для симуляции и отслеживания движений в реальных сценариях, например тренировки по боевым искусствам

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

Инновации и развитие: HTC и другие компании продолжили развивать технологии отслеживания, используя новые датчики, улучшая точность и расширяя возможности интеграции трекеров с другими VR-системами и приложениями.

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

Практическая часть

Одним из наиболее впечатляющих продуктов на рынке виртуальной реальности (VR) является система HTC Vive. Она обеспечивает погружающий опыт виртуальной реальности и высокую точность отслеживания движений, что делает её популярной среди пользователей. Однако высокие цены на такие устройства могут стать серьезной преградой для многих людей, желающих попробовать VR-технологии. В связи с этим, я решил провести исследование доступных альтернатив и различных методов отслеживания движений в виртуальной реальности, которые могут быть менее затратными, но при этом достаточно точными и эффективными. Мое исследование привело меня к множеству решений, которые предоставляют возможности для захвата и отображения движений тела в VR.

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

Второй найденный мной способ — это отслеживание, использующее две веб-камеры и маркер на полу. Этот метод осуществляется с помощью программы MocapForAll, которая предлагает более продвинутые возможности для отслеживания движений. Данный трекинг имеет качество отслеживания значительно лучше, чем AprilTag, что делает его более подходящим для использования в виртуальной реальности. Однако стоит отметить, что его тяжело настраивать, и легко сбить калибровку, что может привести к проблемам с точностью отслеживания. Кроме того, он требует много ресурсов компьютера, из-за чего производительность в игре может падать, особенно если система не обладает достаточной мощностью. Это может стать серьезной проблемой для пользователей, которые хотят наслаждаться плавным игровым процессом и избежать задержек или сбоев во время игры. В результате, несмотря на улучшенное качество отслеживания, пользователи могут столкнуться с необходимостью постоянно настраивать систему, что может быть утомительным и отнимать время.

Также я пробовал отслеживание тела с помощью Kinect от Microsoft. Этот метод представляет собой интересное решение, однако стоит отметить, что Kinect скорее предназначен для примерного понимания положения тела, а не для точного отслеживания. Поэтому для VR он не очень подходит, так как не может обеспечить необходимую точность и стабильность, которые требуются для полноценного погружения в виртуальную реальность. Kinect может быть полезен для простых приложений и игр, но для более сложных и требовательных VR-опытов его возможностей недостаточно. Существуют и другие способы трекинга, которые не требуют никаких дополнительных устройств и работают исключительно на предугадывании положения тела. Однако они тоже не подходят для полноценного отслеживания, так как не могут распознать множество положений тела и не обеспечивают необходимую точность, что делает их менее эффективными для использования в VR-приложениях. В итоге, несмотря на разнообразие доступных методов, каждый из них имеет свои ограничения и недостатки, поэтому я продолжил поиски способа максимально точно отслеживать движения.

Так я и пришел к последнему способу — SlimeVR. Эти трекеры для понимания их местоположения используют только гироскопы. Каждый из них отправляет по WiFi информацию о угле поворота гироскопа по осям X, Y, Z, которые получает компьютер. На ПК нужно установить специальное программное обеспечение SlimeVR, настроить пропорции тела, чтобы он понимал, где и при каком угле находится каждый трекер. Программа отправляет данные о местоположениях точек колен, голеней и пояса. В зависимости от количества собранных трекеров, количество точек может быть разным. Чем больше трекеров, тем лучше качество отслеживания.

Для сборки трекеров потребуются такие компоненты: плата управления (обычно используется микроконтроллер esp32), аккумулятор, плата контроля заряда, гироскоп (для дополнительных трекеров, которые крепятся к главным, нужен только гироскоп), корпус, выключатель. Также нужно владеть навыком пайки, что может стать дополнительным барьером для некоторых пользователей. На странице проекта есть схема, на которой показано, как сделать трекер. Для разных плат управления и гироскопов могут быть различные схемы сборки, однако они все очень похожи. Сам же процесс создания требует большого количества времени. У меня на это ушло 12 часов. После чего нужно скачать прошивку для микроконтроллера и сделать в ней настройки для платы управления.

Самая важная часть трекера — гироскоп. Именно от него зависит качество отслеживания. Существует очень много разных моделей, однако наиболее популярные из них — это BMI160 и BNO085. BMI160 — это дешевый гироскоп, который стоит около 100 рублей за штуку, в то время как BNO085 — более дорогой, и его цена уже составляет 1400 рублей за штуку. Разница между этими гироскопами заключается в так называемом дрифте. Дрифт — это смещение значений угла поворота в неправильную сторону, которое можно наблюдать со временем. Чем дольше используется трекер, тем сильнее становится заметен дрифт. Убрать его можно с помощью сброса положений всех трекеров, когда они находятся в положении стоя. Среднее время дрифта у BMI160, когда уже видно смещение, составляет 5- 10 минут, в то время как у BNO085 это время примерно 30 минут. Это и есть главный минус SlimeVR, в отличие от трекеров HTC Vive. Vive, помимо гироскопов, использует и отслеживание в пространстве, что позволяет избежать дрифта и не требует сброса положения трекера.

Чтобы избавиться от дрифта, существует несколько различных способов. Если вы используете гироскоп BMI160, то после сборки их следует откалибровать. Для этого нужно положить трекер на одну сторону, подождать несколько секунд, и так нужно сделать со всеми сторонами. Также при включении следует дать ему полежать на полу 10-30 секунд, прежде чем надевать. В случае с BNO085 калибровка после сборки не требуется, так как она практически ничего не меняет из-за изначальной довольно высокой точности трекеров, но при включении им все равно т ребуется полежать на полу примерно 5 секунд..

Чтобы повысить точность трекеров, можно внести несколько улучшений в процесс калибровки:

Термическая стабилизация: Перед калибровкой дать трекерам поработать 2-3 минуты, чтобы их температура стабилизировалась (гироскопы чувствительны к нагреву).

Магнитометр (если доступен): Включить использование данных с магнитометра (в BNO085), чтобы увеличить точность отслеживания

В программном обеспечении SlimeVR есть настройки компенсации дрифта. Когда вы пользуетесь трекером, периодически необходимо сбрасывать положение, чтобы убрать дрифт. Однако если это сделать несколько раз, программа примерно высчитает, за какое время и на какой угол примерно отклоняется трекер, и будет программно его разворачивать назад. Это позволяет значительно улучшить качество отслеживания и сделать использование трекеров более комфортным.

В целом можно отметить несколько плюсов и минусов данного решения.

Плюсы:

Тонкая настройка и возможность самостоятельно вносить изменения в программное обеспечение. Это позволяет пользователю адаптировать систему под свои нужды и предпочтения.

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

Минусы:

Процесс сборки трекеров может занять значительное количество времени. Это может стать препятствием для пользователей, которые хотят быстро начать использовать VR.

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

Периодически нужно сбрасывать положение трекеров, что может отвлекать от игрового процесса.

Точность у них неплохая, однако в некоторых положениях она не идеальна, при этом дрифт становится заметен быстрее, что может негативно сказаться на общем опыте использования.

Корпус для деталей был напечатан на 3D-принтере, что позволило сделать его удобным для использования. Для крепления трекеров к телу я выбрал текстильную ленту на липучках. Это обеспечивает надежную фиксацию устройства, при этом позволяя легко и быстро снимать и надевать трекеры. Текстильная лента мягкая и комфортная, что делает использование трекеров более удобным, особенно при длительных сессиях. Кроме того, липучки позволяют регулировать степень натяжения, что обеспечивает дополнительный комфорт.

Что касается цены, то стоимость сборки данных трекеров может различаться в зависимости от выбора компонентов, из которых вы собираете устройство. Для сборки нужно иметь: микроконтроллер esp8266 (150 рублей за штуку, в сумме 750 рублей), аккумулятор 1000 мАч (200 рублей за штуку, в сумме 1000 рублей), плата зарядки (50 рублей за 5 штук), гироскопы (существует множество различных гироскопов, но в основном это BMI160 (100 рублей за штуку) или BNO085 (1400 рублей за штуку)). В сумме, соответственно, стоимость сборки составит 2600 рублей на основе использования гироскопа BMI160 (с учетом мелких затрат на пластик, клей, резисторы, провода и т. д. примерно 3000 рублей). На основе использования BNO085 общая стоимость составит 13000 рублей (аналогично, с учетом м елких затрат, увеличим до 14000 рублей).

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

Те комплектующие, которые использовал я являются лишь самыми популярными, однако вместо стандартного микроконтроллера ESP8266 можно взять ESP32 или Arduino.

То же самое и с сенсорами. Да, BMI160 и BNO085 — самые популярные варианты, но кто мешает поэкспериментировать с другими, их огромное количество (BNO085, BNO086, BNO080, MPU-6500, MPU-6050, BNO055, MPU-9250, BMI160, ICM-20948, BMI270, ICM-42688, LSM6DS3TR-C, LSM6DSV, LSM6DSO, LSM6DSR, MPU-6050). Кто-то вообще пробует добавить магнитометр, чтобы уменьшить дрифт, правда, есть вероятность столкнуться с тем, что в комнате слишком много магнитных помех. Так что простор для экспериментов довольно большой.

Даже питание можно организовать по-разному. Кто-то ставит компактные аккумуляторы на 500 мАч, чтобы трекеры были легче, а кто-то, наоборот, жертвует весом ради ёмкости и ставит батареи на 2000 мАч.

Корпуса и крепления для трекеров — это тема, которая открывает широкие возможности для творчества и индивидуализации. Некоторые пользователи предпочитают печатать минималистичные и компактные корпуса на 3D-принтере, что позволяет создать стильный и функциональный дизайн. Другие выбирают гибкие силиконовые ремни, которые обеспечивают надежную фиксацию трекеров и предотвращают их сползание во время активных движений. Есть и такие, кто экспериментирует с магнитными креплениями, что позволяет быстро и удобно снимать трекеры. В этом процессе всё ограничивается лишь фантазией и доступными материалами, что делает каждую сборку уникальной и адаптированной под конкретные нужды пользователя.

И самое приятное — большинство компонентов взаимозаменяемы. Начал с бюджетного варианта на гироскопе MPU-6050? Ничего не мешает позже заменить их на BNO085, оставив те же корпуса и крепления. SlimeVR с открытым исходным кодом позволяет вносить любые изменения, будь то добавление поддержки нового датчика или тонкая настройка фильтров под свой стиль движений.

Так что если кажется, что трекеры работают неидеально, можно попробовать поменять различные комплектующие, из которых он собран.

Таким образом, SlimeVR представляет собой интересное и доступное решение для отслеживания движений в виртуальной реальности, которое может стать отличной альтернативой более дорогим системам, таким как HTC Vive. Несмотря на некоторые недостатки, такие как необходимость калибровки и дрифт, данный подход позволяет пользователям создать свою собственную систему отслеживания, что делает его привлекательным для тех, кто хочет погрузиться в мир виртуальной реальности без значительных финансовых затрат.

Заключение

В ходе реализации проекта по разработке системы полноценного трекинга движений на базе платформы SlimeVR был получен ряд важных результатов и сделаны существенные выводы.

Ключевые преимущества реализованного решения включают в себя:

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

  • Высокая степень кастомизации под индивидуальные требования. Платформа SlimeVR предоставляет пользователям возможность адаптировать систему под свои уникальные нужды и предпочтения.

  • Открытость платформы для дальнейшего совершенствования. SlimeVR является открытым проектом, что позволяет сообществу разработчиков вносить свои улучшения и дополнения. Это создает условия для постоянного обновления и улучшения системы, что в свою очередь способствует её долгосрочной актуальности.

  • Широкие возможности модернизации и замены компонентов. Платформа поддерживает модульный подход, что позволяет пользователям легко заменять или обновлять отдельные компоненты системы, увеличивая качество отслеживания

Перспективы развития проекта включают в себя:

  1. Добавление дополнительных датчиков, увеличивающих точность отслеживания.

  2. Оптимизацию алгоритмов отслеживания. Улучшение существующих алгоритмов позволит повысить скорость и точность отслеживания, что является критически важным для улучшения игрового процесса.

  3. Упрощение создания трекеров. Это позволит любому пользователю без нужного опыта легко собрать их.

  4. Расширение функциональных возможностей системы. Внедрение

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

Полученные результаты демонстрируют, что платформа SlimeVR представляет собой перспективное решение для организации полноценного трекинга движений в виртуальной реальности. Сочетание доступности, гибкости и потенциала для совершенствования делает данный проект особенно ценным для многих людей.

Дополнительные материалы

Дополнительные материалы (презентация, видео-демонстрация работы собранных трекеров) можно найти по следующей ссылке:

https://drive.google.com/drive/folders/19TsHjfpJFJWF6uC4KC-01sQCxSKenRiX?usp=sharing

Список источников

https://en.wikipedia.org/wiki/VPL_Research

https://www.vicon.com/about-us/

https://digitalocean.ru/n/16-maya-1938-goda-rodilsya-uchenyj-ajven-sazerlend

Просмотров работы: 34