В продолжение предыдущей статьи.

Сборка

Собрал трекер из следующих комплектующих:
— датчика GY-85 (3 гироскопа, 3 акселерометра, 3 магнитометра);
— платы Arduino Nano V3.0 (микроконтроллер ATmega328P, порт CH340G)

image

Разместил их на однорядной штыревой розетке PBS, соединив проводниками по схеме:
Датчик -> Arduino
VCC_IN -> 3v3
SCL -> A5
SDA -> A4
GND -> GND

image

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

После того как определился порт, запрограммировал Ардуину — рамка отклика в программе FaceTrackNoIR закрутилась!

vk.com/video103034838_171165084?hd=1&t=3s

Настройка

Пришлось создать две различных настройки кривых отклика в программе FaceTrackNoIR:

— для работы с обычным монитором задал непропорциональную прогрессивную зависимость между углами ввода-вывода

image

-для работы с 3D-очками задал прямую линейную зависимость углов ввода-вывода

image

Железки

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

image

И сразу же столкнулся с проблемой возврата в нейтральное положение азимутальной оси (yaw), которая как бы «пружинила».

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

image

Вообще любая железяка вблизи датчиков понижает чувствительность азимутальной оси. Вероятно это действие магнитометра датчика. Ось начинает «пружинить», стремиться к нейтрали после любого поворота.
Вот первый тест трекера с моими 3D-очками.

vk.com/video103034838_171177959?hd=1&t=

Выводы

Такой трекер отличное решения для приложений, в которых необходимо обозревать окружающее вас виртуальное пространство.
Потребность в ресурсах системы у программы FaceTrackNoIR — 0,39 % мощности процессора и около 73 МБ оперативной памяти. Это так сказать на холостом ходу, вне игры.
Размещение трекера на наушниках позволяет использовать его как с 3D-очками так и отдельно.
С обычным монитором движение изображения на экране происходит навстречу повороту головы.
С 3D-очками нет этого противоречия — всё пропорционально и сонаправленно.
Что с монитором, что с очками быстрые движения головы неизбежно вызывают смазывание картинки. При плавных же поворотах с фиксациями направления взгляда восприятие виртуального мира довольно комфортно и естественно. Но требует тщательной настройки кривых отклика, задержек и демпфирования в программе. Это как мне кажется строго индивидуально.
Трекер субъективно лучше клавиш или хатки джойстика.

3D-очки + Трекер = Виртуальный Шлем !

Тестировал в авиасимуляторах LockOn 2 и Ка-50, а также в космическом симуляторе Орбитер 2010.
При совместном использовании трекера с 3D-очками ощущение — как будто «сняли шоры».Наконец появилась возможность осматриваться по сторонам!
Интересные ощущения, трудно с чем сравнимые. После его использования в голове крутится вопрос: «Что это было ?!».
Вообще результатом симбиоза очков и трекера доволен. Но эта штуковина требует привыкания. Поэтому использую свой «виртуальный шлем» дозированно.
Возвращение к реальности после виртуальности тоже радует…
Картина окружающего нас мира всё же не так и плоха…
Шлем с его картонно-мультяшным содержимым только это подтверждает! Но штука забавная… Так что буду использовать!

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


  1. MaximChistov
    10.09.2015 21:40

    сделайте кат повыше, пожалуйста


    1. SergeNovo
      10.09.2015 21:50

      А как? Я тут новичок


      1. MaximChistov
        10.09.2015 22:32

        уже нормально :)


        1. SergeNovo
          10.09.2015 22:34

          :)


  1. Rockerman
    12.09.2015 05:46

    У нас VRD есть готовое решение для подобных проектов

    image

    Плата имеет на борту акселлерометр, гироскоп, магнитометр, аппаратную конус сброса позиции.
    Габариты платы такие поскольку есть USB 2.0 хаб, один порт USB внешний + 2 дополнительных под планируемую периферию.
    Трекер распознаётся как Oculus DK1, но есть возможность транслировать полученные данные в протоколы TrackIR, FreeTrack, мышь и компоновать из одних другие. Сейчас работаем над совместимостью с DK2 и обновлённой платой трекера.
    Кстати, его можно использовать и как средство обзора с обычным монитором, проверялось на леталках.
    В ближайшее время планируем сделать наборы для самостоятельной сборки, то бишь экран + трекер, экран + трекер + корпус или всё в уже собранном виде.
    Кому интересно, наша группа в ВК vk.com/vrdevice

    Автору респект, всегда радовали подобные проекты!


    1. kraidiky
      12.09.2015 10:30

      Уважуха, мужики!!!


    1. SergeNovo
      12.09.2015 13:37

      Спасибо! С интересом слежу за Вашим проектом.
      Хорошо что планируются наборы для самостоятельной сборки.


    1. dcoder_mm
      12.09.2015 13:46

      А что там за чип в TQFP32?


  1. Foror
    12.09.2015 11:25

    Пользуясь случаем, можете подсказать, почему не делают перчатки отображащие координаты пальцев и положение рук? А вместо этого пилят leap motion и подобные технологии? Какие-то технические сложности?


    1. Rockerman
      12.09.2015 18:59

      Разработать девайс — это один вопрос. Другой как его популяризировать, ведь каждое устройство должно иметь свой SDK. Соответственно, разработчикам внедрять SDK под каждый девайс очень утомительно. И вообще, мало игровых студий, которые работают с VR, поскольку их доход не особо зависит от этой отрасли.
      Полагаю, что основная проблема — в отсутствие общего стандарта VR устройств ввода/вывода.
      Пока этот рынок ещё не полностью поделен производители железа тянут одеяло на себя кто как может.


      1. Rockerman
        12.09.2015 19:02

        Соответственно, Leap Motion имеет большую поддержку, в том числе как плагин в Unity. Стоимость перчаток, как правило, в несколько раз выше…


  1. antage
    12.09.2015 21:11

    Насколько я читал про другие подобные проекты, главная проблема с которой сталкиваются разработчики — дрейф гироскопов. За пару часов (вполне реальная длительность игровой сессии) гироскопы «уплывают» и требуют повторной калибровки.
    Вы эту проблему как нибудь решили?


    1. SergeNovo
      14.09.2015 09:51

      По азимуту коррекция осуществляется по видимому магнитометром. Влияют любые железные предметы поднесённые к датчикам — начинается сильно уводить азимутальную ось.
      В прошивке, что я использую, по видимому вообще не задействованы акселерометры, т.к. нет параллельных смещений. Может они могли бы строить местную гировертикаль? :)
      Играл максимум по 10 -15 минут — не заметил существенного дрейфа.
      Да и есть возможность быстро перекалиброваться. Остановить FaceTrackNoIR и запустить его вновь…
      Продолжаю корпеть над настройками чтобы было комфортнее.


  1. MercurieVV
    14.09.2015 14:51

    А какая задержка? Не меряли? На глазок ощущается?


  1. SergeNovo
    15.09.2015 13:51

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