Праве пушке као контролери: Како увести било шта у ВР

Ја сам Цхристопхер О'Хаган, софтверски инжењер у @КаиносСофтваре и радим у одељењу Примењене иновације. Фокусирање на имерзивне технологије. Овај блог говори о томе како смо недавно скоро пуку функционалну пушку претворили у контролер Виртуал Реалити и како смо превазишли проблеме који су настали са тим.

Недавно нам се обратио канадски купац који тражи помоћ у изградњи реалног стрелца као атракције за њихову аркаду. Ово је део растућег тренда који смо приметили где се за забавне локације на локацијама, као што су собе за спасавање и ролетне, користе имерзивна технологија попут ВР. Иако опрема и подешавање могу бити скупи, она је одржива због великог пада и нових окружења која нуде ова предузећа. Одличан пример забаве на локацији је виртуелни паинтбалл који су компаније, попут „Тхе Воид“, успеле.

Наш основни изазов за потопни стрелац којем смо помагали био је стварање и коришћење стварног ватреног оружја ... или бар нешто што је изгледало и изгледало као једно.

Добијање контролера

Првобитно смо веровали да ће набавка контролера бити тешка. Контактирали смо локалног добављача оружја са меким ваздухом, Геар оф Вар. Наши захтеви су били:

  • Реплика ваздушно мека пушка која је изгледала, осећала и тежила попут праве пушке
  • Пиштољ који би, када је испаљен, произвео реални повраћај
  • Окидач и сигурност који су ожичени тако да их можемо користити за инпуте наше симулације

Мислили смо да ће се ово пуно питати, али били су изненађени чињеницом да им се то чини нормално. Они су урадили пуно реквизита за ТВ и филмове, па су добили и чудније захтеве. Затим смо користили монтирани Виве трацкер да пратимо пиштољ у ВР-у.

Постављање контролера

Ту смо искусили наше главно питање, вибрације: То је узроковано реалним налетом нашег пиштоља. Будући да Виве Трацкер користи ИМУ-ове (инерцијалне јединице за кретање) за праћење на високој фреквенцији, а Виве-ов систем свјетионика за праћење на релативно нижој фреквенцији и за корекцију одрона. ИМУ раде мерењем убрзања у свакој оси, затим рачунањем помака од тог мерења. Када су ИМУ агресивно вибрирани, као на пример када су монтирани на реално ватрено оружје, они нису у могућности да их тачно прате. Ово је био проблем.

Како нисмо стручњаци за вибрације, направили смо неке покушаје да решимо проблем, али нисмо много напредовали. Тада смо одлучили да направимо реддит пост за р / Виве. Одговор заједнице био је користан, исправљајући неке једноставне ствари које смо пропустили, као што је то да је трацкер био предалеко уз пругу. На наше изненађење, ХТЦ нас је контактирао у вези са пројектом који показује интересовање за оно што покушавамо. Имали су бета верзију фирмвера Виве Трацкер који би могао да помогне, филтер ниског пропусног опсега за ИМУ, који су нам дали.

Графикон нормалног улаза у односу на улаз након употребе филтра ниског протока

Филтер за ниске пропусности може се конфигурирати путем УСБ ХИД интерфејса. Били смо у могућности да пошаљемо извештаје „0кБ3“, који шаљу основне податке о уређају који се користи, као и конфигурацији ниског пролаза, са МацБоок-а на Трацкер са исправним подешавањима да довољно пригуше вибрације. Сљедећи корак је био да пошаљемо извјештај о значајкама, који нам омогућава да комуницирамо промјене у подешавањима као и контролу ХИД уређаја, Трацкеру из малине пи, јер нам је требало нешто што би могло стати у патрону пиштоља тако да корисник не може погледајте ожичење.

Нископропусни филтер

Ово су кораци за постављање Распберри Пи-а за ову врсту пројекта

  • Инсталирајте распбиан на малине пи
  • Ажурирајте пи верзију „Ноде.јс“
  • Инсталирајте библиотеку „скривена од чвора“ у свој пројекат, за специфична упутства да бисте то учинили на пи погледајте овде
  • Додајте датотеку у удев под називом `60-ХТЦ-Виве-пермс.рулес` овом линијом у њој
КЕРНЕЛ == "хидрав *", СУБСИСТЕМ == "хидрав", АТТРС {идВендор} == "28де", АТТРС {идПродуцт} == "2022", ТАГ + = "уаццесс"

Проблем који можете имати је да погрешна вредност вИндек користи ноде скривене, у овом случају вИндек се користи за одређивање интерфејса или места где се извештај шаље. Ево нечега што ће вам помоћи да се осврнете око УСБ захтева. „Сакривен чвор“ не дозвољава вам да одредите интерфејс. Срећом када сам се осврнуо на 'схов-девицес.јс', који долази са библиотеком 'скривен чвор' и шаље све повезане ХИД уређаје, имао је различите стазе за сваки интерфејс.

Користећи схов-девицес.јс, који долази са библиотеком скривеном чвором. Можете пронаћи који пут да користите у коду у случају да се чини другачијим

Ако имате било каквих проблема са скрипту, „усбмон“ долази са Распбиан-ом и омогућава вам да прегледате све усб захтеве који се постављају. Ево корисне везе која ће вам помоћи да декодирате те захтеве (почиње на страни 15)

Закључак

Употреба пиштоља као ВР контролера никако није била лака. Вибрације пуцања пиштоља су довољно јаке да поремете способност ИМУ-а да се тачно прате. Помоћу функције Трацкер-овог нископропусног филтра и уграђеног малиног пи-а успели смо да превазиђемо ово питање без компромисног праћења или силе којом пиштољ вибрира.

Хвала за читање
@ цохаган154