Предисловие


Раньше я уже писал о своем проекте impulse — костюме захвата движений на базе инерциальных сенсоров. Прежде всего, хочу поблагодарить всех, кто оставил свой отзыв, так или иначе, помог проекту. Должен сказать, что особого развития проект не получил, проблема дрейфов не была решена 9-осевыми датчиками, но компенсации с помощью цифрового компаса значительно помогли, также использование простого оптического трекинга (например 2 светодиодных маркера на голове) позволяет получить среднее значения дрейфа. Но сегодня не об этом. Я хочу рассказать об относительно недорогом способе захвата движения для систем виртуальной реальности на базе HTC Vive без колхоза и паяльника, а также о том, как избавиться от провода, который неизбежно соединяет голову и компьютер, что создает множество неудобств. Еще расскажу, как удалось добиться области трекинга в ~80 метров кв.

Начнем


Система будет работать на оборудовании HTC Vive, это штатный шлем, 2 контроллера и 2 базовые станции, рекомендую приобретать HTC Vive 2, он хорошо себя показал, вероятно из-за обновленных базовых станций. Сейчас, цена снижена до 50 тысяч рублей.

В дополнение к стандартному набору порекомендую аддон VIVE Deluxe Audio, это не просто наушники (что уже удобно), это крайне удобное решение для более комфортного использования шлема, особенно это дополнение актуально при использовании шлема несколькими игроками или посетителями аттракциона. Также это крепление позволит надежно смонтировать систему беспроводного соединения, да и выглядит это круто:
image

VIVE Deluxe Audio. Цена вопроса 10 тысяч рублей.

Долой провода


Прежде всего, необходимо сорваться с этого «поводка» и почувствовать реальную свободу в VR пространстве без тяжелых и нагретых ноутбуков за спиной. Для этого понадобится аддон TPCast — устройство, которое позволит перевести Vive в беспроводной режим.
image

TPCast. Комплектация.

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

Приёмник
image

Отлично крепится на VIVE Deluxe Audio. Подключается к шлему короткими проводами USB и HDMI, другие 2 провода (USB и питание) подключаются к переходнику к аккумулятором.

Power box
image

Далее, нужно убрать в сторону штатный линкбокс Vive, и подключить следующий модуль (передатчик) напрямую в компьютер по HDMI:

Передатчик
image
Можно воспользоваться штатным проводом, или же 10-ти метровым HDMI. Питание от штатного линкбокса необходимо подключить в передатчик TPCast. Должен заметить, что можно использовать комбинацию и с линкбоксом, просто подключив передатчик вместо шлема (не подключая один из трех проводов — USB). Передатчик следует разместить в такой точке в помещении, в которой шлем будет виден всегда, т.к. передатчик работает на высоких частотах, то любая преграда будет помехой для передачи сигнала, та же самая голова, если человек отвернулся. Другими словами, обеспечить прямую видимость. Оптимальным вариантом служит размещение передатчика ровно по центру помещения на потолке, направив его перпендикулярно в пол.

Это еще не все, в комплекте также имеется роутер, который следует подключить в разрез интернет соединения ПК. Проще говоря, ethernet кабель в WAN порт роутера, и ПК подключить к роутеру через LAN. Если такое подключение неприемлемо, следует использовать дополнительную сетевую карту. Теперь почти все готово, осталось только загрузить софт и драйвера с официального сайта TPCast:

Wireless connection assistant for VIVE
image

После установки приложение попросит ввести данные для подключения к точке доступа, логин и пароль указаны на наклейке на переходнике для аккумулятора. Далее остается только нажать Start и запустить SteamVR после успешного соединения. Если что-то пошло не так, то в верхнем правом меню есть пункт Switch channel. В целом потерю соединения несложно восстановить одним нажатием кнопки, так же можно «на лету» менять аккумулятор.

Схема подключения
image

image
TPCast В сборе. Цена вопроса 35-40 тысяч рублей, но вот характеристики:

  • Разрешение 2К (обычное для HTC Vive)
  • 90 FPS
  • Задержка меньше 2мс

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

Теперь можно попробовать походить по Steam Home и не вспоминать про провод, изломы, узлы и другое, разве что аккумулятор заряжать, а лучше приобрести дополнительные. Их хватает на 4-5 часов активного использования.

Выходим за границы дозволенного


Без провода вы быстро почувствуете себя в тесноте, захочется немного прогуляться, но в стандартных 16-ти квадратных метрах это не удастся. Первое что понадобиться — это помещение (100 квадратных метров подойдут), и с потолками повыше (3.5 метра). Это самое сложное. В центре потолка помещения размещается передатчик TPCast. В стороны от него под потолком крепятся базовые станции HTC Vive. расстояние между — 5 метров, так чтобы станции разместились на одной линии (перпендикулярной к двум стенам и параллельной двум другим), проходящей через центр помещения (в центре передатчик). Далее станции нужно наклонить под углом 30 градусов друг к другу (т.е. в большей степени они направлены на пол).

Станции необходимо соединить проводом для синхронизации (оптическая не будет стабильно работать), каналы станций выставить на A и b. После монтажа произвести калибровку комнаты стандартными средствами. Стоить заметить, что на этапе построения шаперона (голубая сетка, обозначающая границы реального помещения) стоит выбрать режим advanced, что позволит указать лишь углы помещения, сетка будет ровным квадратом. Игровую область лучше разместить в центре. Данная конфигурация обеспечит большую область достаточно точного трекинга с минимальным количеством слепых зон и позволит эффективно использовать штатные станции. Перед погружением рекомендую установить OpenVR Advanced settings, их интерфейс будет доступен прямо в VR пространстве в стандартном меню. Эти настройки позволят улучшить разрешение, суперсемплинг и конфигурировать шаперон (область активации, цвет, высота, видимость и т.д.) Разумеется, можно еще поиграться с размещением базовых станций, изменить угол наклона или немного расстояние между ними под определенное помещение. Полученный результат впечатляет, по стандартному Steam Home возможно перемещаться, не вспоминая про телепортацию. В большинстве игр такой области более чем достаточно. В ноябре Vive грозятся добавить поддержку работы с большим количеством базовых станций, но пока не ясно, сможет ли текущее оборудование воспринимать больше двух, или на это будут способны только новые шлемы и контроллеры.

Хватит быть призраком


В целом, все VR игры можно определить как единый поджанр – «симулятор призрака», вы можете поднимать предметы, бросаться ими и так далее. Есть исключения, где вы можете видеть свое неподвижное тело, что сильно диссонирует. Так или иначе, чтобы нарисовать виртуальному протагонисту достоверно двигающееся тело, нужно что-то из области захвата движения. Захват движения — не самое дешевое удовольствие, если отбросить близорукий киннект и подобное, что малоэффективно в такой области трекинга. На выручку приходят две вещи — HTC Vive Tracker и инверсная кинематика (ИК). Первое понадобится для того, чтобы определять положение чего угодно в области трекинга, второе для воссоздания положения тела в виртуальном пространстве, зная положение только 6 точек (это минимум для full body).

image
Vive Tracker. Трекер стоит примерно 8 тысяч рублей

Для минимального набора понадобится 3 таких трекера. В целом, это те же самые стандартные контроллеры, только урезанные и немного в другом корпусе. Каждый такой трекер определяется в SteamVR, единственное отличие лишь в том, что для их подключение нужны специальные донглы (в комплекте), хотя можно привязать их к шлему вместо контроллеров. На задней части находятся контактная площадка для подключения пользовательских кнопок (можно использовать и USB разъем на трекере). Это может быть курок пистолета, кнопка активации светового меча, все что угодно. Нажатия таких кнопок обрабатываются таким же образом, как и нажатия кнопок на контроллере, с точки зрения разработки софта разницы нет. В целом, их можно использовать для трекинга игровых объектов, таких как оружие или инструменты, даже мебель и двери, но нас интересует захват движения.

image

Определять позицию головы возможно с помощью шлема, рук — с помощью контроллеров. 2 трекера следует разместить на обуви (сверху стоп), оставшийся будет неплохо себя чувствовать на поясе сзади. Такой сетап уже позволит поиграть в некоторые игры, поддерживающие такую конфигурацию, но если говорить о разработке своего софта, то для анимации персонажа понадобятся ИК решения. Принципиальное отличие инверсной кинематики от прямой в том, что в случае прямой рассчитывают позицию, зная углы, а в случае инверсной рассчитывают углы, зная позиции. Таким образом, очень простую модель можно сделать самому, зная позицию двух джоинтов рассчитать промежуточную, учитывая то, как обычно гнется человеческое тело. Но существуют готовые решения, такие как Final IK, VRIK и другие средства процедурной анимации. Есть студии, которые предоставляют решения подобного типа. Одна из таких, это IKinema и её продукт под названием Project Orion — софт, позволяющий производить захват движения на основе данных, полученных из SteamVR и транслировать их по протоколу VRPN в любое другое приложение (для Unity и Unreal есть готовые плагины и ассеты). Для бюджетного решения лучше воспользоваться предыдущими средствами, которые достаточно неплохо себя показывают.

image

IKinema Orion (видео)

Далее, уже в движке, полученную анимацию можно немного почистить, хотя Orion справляется с этим, убрать скольжения стоп, рассчитать компенсацию для неровности виртуального пола. У IKinema есть решение в виде плагина для Unreal:

LiveAction

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

image
Manus VR

Заключение


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

Несколько наблюдений:

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

С трекингом тела и объектов открывается огромное количество возможностей для создания игровых механик и эффекта погружения в целом.

Результат сборки такой системы на видео в начале поста. Также пример анимации персонажей в реальном времени:

Комментарии (38)


  1. Fagot63
    24.09.2017 20:42
    +1

    Жду 4к Vive и иду покупать. :)


    1. ObelardO Автор
      25.09.2017 16:16

      Так можно вечно ждать чего-то более технически совершенного. Уже сейчас довольно неплохо, относительно. Смущают не столько пиксели, сколько кольца Френеля.
      И при использовании OpenVR Advanced settings с 90fps качество картинки и ощущения определенно лучше.


      1. Fagot63
        25.09.2017 17:19

        4к считаю минимально комфортным разрешением. Чуть картинка становится менее динамичной и явно видимые пиксели мешают погружению. Плюс проблемы с чтением текста и стрельбой на дальние дистанции(20м++ с мушки). Если с текстом еще решаемо его укрупнением, то в голову целится дальше 20м сложно. Мушка с полтора пикселя и голова с пиксель.


        1. ObelardO Автор
          25.09.2017 18:03

          Так минимально комфортным, или пригодным для прицельной стрельбы?
          Тут множество факторов помимо разрешения, и опять же, если у авторов софта все в порядке с фантазией — то сгладят технические ограничения так, что о них и не вспомнишь. Текст правда можно крупнее делать, а стрельбу сделать через оптический прицел, так даже интереснее. Но для большинства аркадных игр, что есть сейчас, и что пользуются спросом, достаточно того что есть, с оговорками.
          «Мушка с полтора пикселя и голова с пиксель.» — ну будет в 6 пикселей, а голова в 4, принципиально ничего не изменится, но разумеется ждем 4К


          1. Fagot63
            25.09.2017 21:58

            При стрельбе с двух рук, как предполагается использовать оптику? Вполне получалось стрелять по разным векторам одновременно, и даже в противоположных направлениях, просто меняя положение взгляда/головы. С винтовкой другое дело, но контроллеры Vive идеально подходят под стрельбу двумя пистолетами.
            Поэтому и 4к это минимальные мои требования к шлему, при которых я задумаюсь над покупкой. А пока VR клуб подходит как нельзя лучше.
            Под мушку можно оставить те же полтора пикселя, а если на голову уйдет 4 пикселя целится будет можно немного точнее. И даже не смотря на это точность стрельбы/прицеливания приятно поразила меня. С мышкой так быстро и точно не стрелял.


            1. ObelardO Автор
              26.09.2017 00:11

              «А пока VR клуб подходит как нельзя лучше.»
              Абсолютно согласен, пока это так.


              1. Fagot63
                26.09.2017 15:22

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


                1. Fagot63
                  26.09.2017 16:49
                  +1

                  Из ближайших перспектив к покупке PimaxVR 8k с двухсот градусным обзором. Если будет работать не хуже HTC Vive, в плане точности работы контроллеров и поддержки в играх, беру однозначно.
                  P.S. странно что еще не опубликовали здесь. На кикстартере проект болтается уже месяц и собрал больше миллиона долларов.


                  1. ObelardO Автор
                    27.09.2017 00:12

                    Согласен, в целом волна VR не то чтобы набирает обороты


                    1. Fagot63
                      27.09.2017 17:32
                      +1

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


  1. 25080205
    24.09.2017 23:39
    +1

    А вот как владелец Vive — можно я задам вопрос не совсем по теме… Если немного поцарапал линзу — что можно поделать? Они нежные как я не знаю что… И большие. Вроде и не так, чтобы здорово, но все же мозолит глаз. Только замена с разборкой агрегата? Кто уже сталкивался с таким?


    1. ObelardO Автор
      25.09.2017 17:29

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


      1. ebragim
        25.09.2017 20:44

        Но в обычных очках линзы покрывают много чем: для просветления, защиты о царапин, олеофобное...


        1. ObelardO Автор
          26.09.2017 16:15
          +1

          Я говорю об уходе и осторожности, а не сколько о изготовлении


      1. 25080205
        25.09.2017 22:54
        +1

        Это нифига не похоже на очки! Пластиковые очки вполне себе устойчивы (не как стекло, конечно) к превратностям судьбы… А тут я был предельно аккуратен… Но пластик мягкий до безобразия!
        Оттого и практический вопрос — где и что приобрести… Если можно — ткните носом в "правильный" магазин запчастей :-)


  1. Quiensabe
    24.09.2017 23:49

    Спасибо за статью!

    Я так понимаю помещение у вас примерно 11 на 6,5? И на какой высоте висят базовые станции? Когда трекер оказывается «в тени» тела игрока, это не очень мешает? Несколько игроков не пробовали трекать?

    Кстати, vive обещает выпустить чипы трекеров специально для разработчиков. Не рассматривали этот вариант? (ссылка почему то не открывается, есть смысл смотреть в кеше гугла). Правда работать они будут видимо только с новыми базовыми станциями. Но, классный вариант для всякой домашней автоматики :)


    1. ObelardO Автор
      25.09.2017 17:37

      И Вам спасибо!

      Помещение больше, по видео трудно сказать, но область 9х9 метров (на данном видео мешают колонны, шаперон в форме плюса получается). Базовые станции на высоте 3.5 метров, расстояние между ними 5.5 метра, наклонены примерно градусов на 20. если попытаться больше, то трекинг уже неадекватный.
      Как правило, в такой конфигурации трекеры всегда видны одной из станций, принципиального отличая от диагонального расположения нет, так что происходит то же, что и обычно.
      Несколько игроков — возможно. Самый постой вариант — 2 комплекта Vive и 2 машины, базовые станции одни на всех.

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


      1. Quiensabe
        25.09.2017 20:48

        Что-то не могу понять. У вас вот так получается базовые станции закреплены?

        Или они «смотрят» от центра комнаты?

        Почему тогда область трекинга в форме плюса? Получается в помещении 9*9м трекинг работает не везде? Почему тогда ~80 м.кв?


        1. ObelardO Автор
          26.09.2017 00:16
          +1

          Иллюстрация верная, да.

          Конкретно в этом видео, в форме плюса (если смотреть сверху), т.к. стоят 4 колоны в центре помещения, в другом помещении (без колон) это 9х9м без слепых зон в углах, т.е. прямоугольная область.


          1. Quiensabe
            26.09.2017 03:02

            Понял)) Не догадался, что вы говорите о том самом помещении, что на видео.
            Тогда все ясно. Спасибо за ответы!


            1. ObelardO Автор
              27.09.2017 00:13

              И Вам Спасибо.
              Могу я использовать вашу иллюстрацию? (в статье под описанием расположения)


  1. kharlashkin
    25.09.2017 08:31

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

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


    1. ObelardO Автор
      25.09.2017 18:10

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


      1. kharlashkin
        25.09.2017 19:41

        Признаюсь, что я стараюсь повторить Ваш путь с костюмом и 9-ти осевыми датчиками. Некоторые наработки есть, но нет конечного правильного результата. Вот и надеялся на обмен опытом.


        1. ObelardO Автор
          26.09.2017 00:23
          +1

          На какой стадии наработки? Над каким моментом работаете?

          Меня интересует адекватная компенсация дрейфа и уже после, более продвинутые алгоритмы чистки мокапа и стептрекинга


          1. kharlashkin
            26.09.2017 07:35

            Я стараюсь использовать 9250 в своем проекте. На данный момент модифицировал DMP MotionApps v4.1 для этого датчика, чтобы получать данные магнитометра из буфера. Как бонус получил довольно стабильный кватернион, в коде много «магии» и отсутствует подробная документация. Написал скрипт захвата для Blender, сейчас собираюсь из 3-х датчиков сделать захват руки чтобы посмотреть насколько во времени критичен дрейф. Математику компенсации по вертикальной оси продумал и перепробовал несколько вариантов, ни один пока не устраивает.

            Видео


            1. ObelardO Автор
              26.09.2017 16:21

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

              Что там с FIFO буфером, пока нормально? По какой шине датчик подключен и к какому контроллеру?


              1. kharlashkin
                26.09.2017 16:38

                В состоянии покоя дрейф практически отсутствует — десятые градуса за 5 минут, у меня на канале есть. На видео видно как я рьяно кручу датчик в конце, на самом деле угол отклонения от первоначального положения по Z после 3-х или 4-х оборотов, точно не помню, составляет около 30°. Переполнения буфера иногда бывают, от чего зависит не могу сказать — звезды может или луна в не нужной фазе ;)
                В качестве контроллера использую клон Arduino из поднебесной.


                1. ObelardO Автор
                  27.09.2017 00:20

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

                  А про шину я спрашивал, т.к. не пробовал переходить на isp (если это возможно) с i2c еще повозиться придется, когда дело дойдет до 2 датчика, 3, 15-го


  1. ant00xa
    25.09.2017 17:38

    Что? HTC Vive 2 ??? На сколько мне известно, HTC еще даже не озвучила даты выхода второй версии Vive.


    1. ObelardO Автор
      25.09.2017 17:43
      +1

      Имеется ввиду свежие версии с обновленными базовыми станциями (с 9-тью светодиодами с более видимым свечением). Это в круге разработки эту комплектацию просто зовут «двойка». Извиняюсь за путаницу.


  1. ltalash1
    25.09.2017 17:43

    Очень хочется окунуться в мир VR. А еще такой вопрос, сколько все вместе комплектующие стоят примерно?


    1. ObelardO Автор
      25.09.2017 17:47

      Если окунаться — то только в качественный в плане железа и софта. Плохой софт (порты старых игр под VR, то что изначально не делалось под это) портит любые ощущения. Ну а железо — никаких DK и коробочек. То что на видео — позволяет ощутить себя прямо там, особенно если можно увидеть свою тень, отражение и т.п., вот с такого и стоит начинать погружение)

      Я в статье указал примерную цену всех комплектующих, смотрите что Вам надо, а что нет, и прикиньте. Самый минимум это Vive за 50 тысяч (чаще это дороже выходит) и свежий ПК.


      1. ltalash1
        26.09.2017 21:38

        Вы правы, на счет софта и железа и я с вами согласен на все сто. 50 тысяч, да не мало, но если возможно увидеть свою даже тень в виртуальном мире, это этого стоит.
        Спасибо за инфу.


        1. Fagot63
          26.09.2017 23:24

          Самый банальный кооператив на двоих очень сильно отличается по ощущениям в VR и простой версии. Просто разительно, как две разные игры. Одна сделана студентами «на все деньги», вторая крупной фирмой ААА класса.


  1. ebragim
    25.09.2017 20:49

    Очень надеюсь, что снова вернётся эпоха игровых клубов, но уже с vr. Только помещения нужны большие, в каждом подвале не получится разместить, как раньше.
    Насколько сильно изнашивается оборудование при публичном использовании?


    1. Fagot63
      25.09.2017 22:06
      +1

      С подключением. :)
      У нас VR клуб работает примерно год, по заверениям владельца и собственному опыту никакого заметного износа нет(пока). Кабеля к шлему подключены через подвес на потолке, если не махать руками над головой то его присутствие не ощущается. Кабель не болтается, но в то же время не мешает приседать и отходить в сторону(две зоны 2х2 метра). Две базовые станции на два шлема, но проблем с точностью не было замечено.


    1. ObelardO Автор
      26.09.2017 00:31
      +1

      Так уже как есть такое… в основном VR только в клубах и есть. Думаю потом VR перекочует домой и такие клубы тоже уйдут в прошлое)

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