Nazoratchi sifatida haqiqiy qurol: qanday qilib hamma narsani VR-ga olib kirish mumkin

Men Kristofer XagHagan, @KainosSoftware-da dastur muhandisi va men Amaliy innovatsiyalar bo'limida ishlamoqdaman. Immersive texnologiyalarga e'tibor qaratish. Ushbu blogda biz deyarli butunlay ishlaydigan miltiqni Virtual haqiqat boshqaruvchisiga qanday aylantirganimiz va u bilan bog'liq muammolarni qanday engib o'tganimiz haqida.

Yaqinda bizga kanadalik xaridor o'zlarining arkadasi uchun o'ziga xos joziba sifatida haqiqiy otishni o'rganish qurishda yordam so'rab murojaat qilishdi. Bu biz kuzatgan tobora o'sib borayotgan tendentsiyaning bir qismi, VR kabi immersiv texnologiya qaerda joylashgan ko'ngilochar korxonalar, masalan qochish xonalari va rollarda o'ynash joylari uchun ishlatiladi. Uskunalar va sozlash qimmat bo'lishi mumkin bo'lsa-da, ushbu korxonalar tomonidan taqdim etilayotgan yuqori darajadagi sharoitlar va yangi muhit tufayli hayotga yaroqlidir. Joylashuvdagi o'yin-kulgilarning ajoyib namunasi virtual peyntbol bo'lib, uni "Bo'sh joy" kabi kompaniyalar muvaffaqiyatli amalga oshirgan.

Biz yordam berayotgan immersive shooter uchun asosiy vazifamiz haqiqiy o'qotar qurollardan foydalanish yoki ulardan foydalanish edi ... yoki hech bo'lmaganda xuddi shunga o'xshash va o'xshash narsalarni topish.

Tekshirish moslamasini olish

Dastlab biz boshqaruvchini topish qiyin bo'lishiga ishongan edik. Biz mahalliy harbiy havo qurollarini etkazib beruvchi "Gear of War" kompaniyasiga murojaat qildik. Bizning talablarimiz quyidagilar edi:

  • Ko'ringan, his qilingan va haqiqiy miltiqqa o'xshash og'irlikdagi replika havo yumshoq miltig'i
  • O'q otgan paytda haqiqiy qo'rquvni keltirib chiqaradigan qurol
  • Simulatsiya qilingan xavfsizlik va biz simulyatsiya ma'lumotlari uchun ulardan foydalanishimiz uchun

Biz bu juda ko'p narsani talab qiladi deb o'yladik, ammo bu ular uchun odatiy bo'lib tuyulgani bilan ajablandik. Ular televidenie va filmlar uchun juda ko'p rekvizitlarni amalga oshirdilar, shuning uchun ular juda qiziq edi. Keyin qurolni VR-da kuzatish uchun o'rnatilgan Vive trekeridan foydalandik.

Tekshirish moslamasini o'rnatish

Bu erda biz asosiy muammomizni, tebranishlarni boshdan kechirdik: Muammo qurolimizning haqiqiy qaytarilishi bilan bog'liq edi. Vive Tracker yuqori chastotada kuzatuv uchun IMU (inertial harakat birligi) va nisbatan past chastotada kuzatib borish va driftni to'g'rilash uchun Vive mayoq tizimidan foydalanadi. IMU har bir o'qda tezlanishni o'lchash orqali ishlaydi, so'ngra bu o'lchovdan joy almashishni hisoblab chiqadi. O'IH tajovuzkor ravishda tebranib turganda, masalan, real o'q otadigan qurolga ulanganda, ular aniq kuzatib bo'lmaydilar. Bu muammo edi.

Biz tebranish bo'yicha mutaxassis emasligimiz sababli, muammoni hal qilishga bir necha bor urinib ko'rdik, ammo unchalik rivojlanmadi. Keyin r / Vive-ga reddit yozuvini yozishga qaror qildik. Jamiyatning javobi foydali edi, chunki biz kuzatib qo'ygan ba'zi oddiy narsalarni to'g'riladik, masalan, trekchi temir yo'ldan juda uzoq bo'lganida. Ajablanarli tomoni shundaki, HTC biz bilan bog'langan loyiha haqida qiziqish bildirmoqda. Ularda bizga yordam berishi mumkin bo'lgan Vive Tracker dasturining beta-versiyasi, O'IH uchun past filtr mavjud edi.

Past kirish filtridan foydalangandan so'ng normal kirishning kirishga nisbatan grafigi

Kam o'tish filtrini USB HID interfeysi orqali sozlash mumkin. Biz tebranishlarni etarli darajada susaytirish uchun to'g'ri sozlamalar bilan MacBook-dan Tracker-ga qurilma va ishlatilayotgan qurilma haqida asosiy ma'lumotlarni, shuningdek past o'tish konfiguratsiyasini yuboradigan "0xB3" hisobotlarini yuborishga muvaffaq bo'ldik. Keyingi qadam, sozlashlardagi o'zgarishlarni va HID qurilmalarini boshqarish imkoniyatini beradigan xususiyati hisobotini Tracker-ga malina pi-dan yuborish edi, chunki biz avtomat kartridjiga foydalanuvchi sig'masligi uchun kerak edi. simga qarang.

Past Pass Filtri

Ushbu turdagi loyiha uchun Raspberry Pi-ni o'rnatish bosqichlari

  • Malinani malina pi ustiga o'rnating
  • "Node.js" ning pi versiyasini yangilang
  • O'zingizning loyihangizga "tuguncha yashiringan" kutubxonani o'rnating
  • Udevga "60-HTC-Vive-perms.rules" deb nomlangan faylni shu qator bilan qo'shing
KERNEL == "hidraw *", SUBSYSTEM == "hidraw", ATTRS {idVendor} == "28de", ATTRS {idProduct} == "2022", TAG + = "uaccess"

Sizda paydo bo'lishi mumkin bo'lgan muammo shundaki, noto'g'ri wIndex qiymati tugun bilan yashiringan holda ishlatiladi, bu holda wIndex interfeys yoki hisobot yuboriladigan joyni aniqlash uchun ishlatiladi. USB so'rovlari atrofida boshingizni aylantirishga yordam beradigan narsa. 'Node-hidden' interfeysni ko'rsatishga imkon bermaydi. Yaxshiyamki, "tuguncha yashiringan" kutubxonasi bilan birga kelgan va barcha ulangan HID qurilmalarini chiqaradigan "show-devices.js" ga qaraganimda, har bir interfeys uchun har xil yo'llar bor edi.

Tugun bilan yashirilgan kutubxona bilan birga keladigan show-devices.js-dan foydalanish. Agar kod boshqacha ko'rinadigan bo'lsa, qaysi usuldan foydalanish kerakligini topishingiz mumkin

Agar sizda skript bilan bog'liq boshqa muammolar bo'lsa, usbmon 'Raspbian bilan birga keladi va usb-ning barcha so'rovlarini ko'rishga imkon beradi. Bu so'rovlarni hal qilishda yordam beradigan foydali havola (15-betda boshlanadi).

Xulosa

VR boshqaruvchisi sifatida quroldan foydalanish unchalik oson emas edi. O'qotar qurolning tebranishi O'IHning o'zini o'zi kuzatib borish qobiliyatini buzadigan darajada kuchli. Tracker-ning past pasli filtri funksiyasidan va bortdagi malina pi-dan foydalanib, biz bu muammoni ta'qib qilmasdan yoki qurol tebranadigan kuchdan mahrum bo'ldik.

O'qiganingiz uchun rahmat
@ cohagan154