Контроллер катары чыныгы мылтык: Виртуалдык режимде баарын кантип алууга болот

Мен Кристофер О'Хаган, @KainosSoftware программасынын инженери жана прикладдык инновация бөлүмүндө иштейм. Иммерсивдүү технологияларга көңүл буруңуз. Бул блог жакында биз дээрлик толугу менен иштей турган мылтыкты виртуалдык чындык контролеруна айлантканыбыз жана аны менен кошо келип чыккан маселелерди кантип чечкенибиз жөнүндө.

Бизге жакында канадалык кардар келип, алардын аркасы үчүн кызыктуу жай катары чыныгы ок атуучу курууга жардам сурады. Бул VR сыяктуу иммерсивдүү технологиялар жер-жерлерде көңүл ачуу бизнеси үчүн колдонулган качуу бөлмөлөрү жана роликтер сыяктуу колдонулуп жаткан тенденциянын бир бөлүгү. Жабдуулар жана орнотуу, кымбат болсо дагы, бул компаниялар сунуш кылган траффиктин жана жаңы чөйрөлөрдүн натыйжасында пайдалуу. Жер-жерлерде көңүл ачуунун жакшы мисалы - The Void сыяктуу компаниялар жасаган виртуалдык пейнтбол.

Биз жардам берген иммерсивдүү аткычтын эң чоң көйгөйү - чыныгы ок атуучу куралды куруу жана колдонуу ... же жок эле дегенде, окшош жана сезилген бир нерсе.

Контроллерди алыңыз

Башында контроллер алуу кыйын деп ойлочубуз. Биз жергиликтүү жумшак курал жеткирүүчү Gear of War компаниясына кайрылдык. Биздин талаптар:

  • Чыныгы мылтыктай болуп көрүнгөн, сезилген жана салмакта болгон аба-жумшак мылтык
  • Ок атылганда, реалдуу кайтарууну жаратуучу курал
  • Триггер жана коопсуздук зымдары аркылуу аларды симуляцияга киргизүү үчүн колдоно алдык

Биз бул көп нерсени сурайт деп ойлочубуз, бирок бул алар үчүн кадимкидей сезилгенине таң калдык. Алар телекөрсөтүүлөргө жана кинолорго көптөгөн реквизиттерди жасашкан, ошондуктан алардын чоочун суранычтары болгон. Андан соң, VR режиминдеги мылтыкка көз салуу үчүн орнотулган Vive трекерин колдондук.

Контроллер орнотулууда

Дал ушул жерде биздин негизги көйгөйүбүз, титирөө сезилген: көйгөй биздин куралдын реалдуу артка чегинүүсүнөн улам келип чыккан. Анткени Vive Tracker жогорку жыштыкта ​​байкоо жүргүзүү үчүн IMU (Инерциялык Кыймыл Бирдиктери) жана салыштырмалуу төмөн жыштыкта ​​байкоо жүргүзүү жана дрейфти оңдоо үчүн Vive маяк системасын колдонот. ӨИКтер ар бир огундагы ылдамданууну өлчөп, андан кийин ошол өлчөөдөн жылышууну эсептеп иштешет. ӨИКтер агрессивдүү дирилдегенде, мис. B. Эгерде алар реалдуу ок атуучу куралга орнотулган болсо, анда так көз сала алышпайт. Бул көйгөй болду.

Биз титирөө боюнча адис эмеспиз, көйгөйдү чечүү үчүн бир нече жолу аракет кылдык, бирок анчалык деле жылыш болгон жок. Андан кийин r / Viveге reddit постун жөнөтүүнү чечтик. Коомчулуктун жообу пайдалуу болду. Биз байкабай калган бир нече жөнөкөй нерселерди оңдоп койдук, мисалы, трекер темир жолдон өтө эле жогору турат. Бизди таң калтырганы, HTC долбоору менен байланышып, биз эмне кылганы жаткандыгыбызга кызыгып койду. Аларда Vive Tracker орнотулган программанын бета версиясы бар, алар бизге берген ӨИК үчүн төмөнкү чыпканы түзүүгө жардам берет.

Төмөн өтүүчү чыпканы колдонгондон кийин кадимки киргизүү менен киргизүүнүн графиги

Төмөнкү чыпканы USB-HID интерфейси аркылуу конфигурациялоого болот. Колдонулуп жаткан шайман жөнүндө негизги маалыматты жөнөтүүчү 0xB3 отчетторун, ошондой эле MacBook'тон трекерге төмөнкү өткөрүү конфигурациясын жөнөтө алдык жана термелүүлөрдү жетиштүү басаңдатуу үчүн туура орнотууларга ээ болдук. Кийинки кадам функциялык отчетту жөнөттү, ал бизге жөндөөлөргө өзгөртүүлөрдү киргизүүгө, ошондой эле Raspberry Piден HID түзмөктөрүн трекерге башкарууга мүмкүндүк берет, анткени мылтыктын картриджине туура келе турган нерсе керек болчу. колдонуучу зымдарды көрө алган жок.

Төмөнкү чыпка

Бул долбоордун ушул түрү үчүн Raspberry Pi орнотуу кадамдары

  • Raspberry Pi-ге Raspberry орнотуңуз
  • "Node.js" пи версиясын жаңыртыңыз
  • Конкреттүү көрсөтмөлөрдү алуу үчүн долбоорго "node-hid" китепканасын орнотуңуз
  • Удевге ушул сап менен "60-HTC-Vive-perms.rules" деп аталган файлды кошуңуз
KERNEL == "hidraw *", SUBSYSTEM == "hidraw", ATTRS {idVendor} == "28de", ATTRS {idProduct} == "2022", TAG + = "uaccess"

Потенциалдуу көйгөй - индекстин туура эмес маанисин node-hid колдонуп жаткандыгы. Бул учурда индекс интерфейсти аныктоо же отчетту жөнөтүү үчүн колдонулат. Бул жерде USB сурамдары менен таанышуу үчүн бир нерсе бар. "Node-Hid" менен интерфейсти көрсөтө албайсыз. Бактыга жараша, "node-hid" китепканасы менен келген "show-devices.js" файлында жана бардык туташкан HID түзмөктөрүндө ар бир интерфейстин жолдору ар башка болгон.

Node-hide китепканасы менен келген show-devices.js файлын колдонуңуз. Сиздин кодуңуз башкача көрүнсө, аны колдонуунун жолун таба аласыз

Эгерде сизде сценарий боюнча башка көйгөйлөр болсо, 'usbmon' Raspbian менен коштолуп, келип түшкөн USB сурамдарын көрө аласыз. Мына ушул талаптарды чечмелөө үчүн колдоно турган пайдалуу шилтеме. (Башталышы 15-бетте)

Корутунду

Мылтыкты VR контроллери катары колдонуу оңой болгон жок. Мылтыктын огунан чыккан термелүүлөр ӨИКтин өзүн так көзөмөлдөп турушуна тоскоол болуп тургандай күчтүү. Трекердин төмөн өткөрүүчү чыпкасы жана орнотулган Raspberry Pi колдонуп, биз бул көйгөйдү байкоо салууга же мылтыктын титирөө күчүнө таасир этпей чече алдык.

@ Cohagan154 окуганыңыз үчүн рахмат