Alvöru byssur sem stjórnendur: Hvernig á að fá allt í VR

Ég er Christopher O'Hagan, hugbúnaðarverkfræðingur hjá @KainosSoftware og ég starfa í hagnýtri nýsköpunardeild. Einbeittu þér að grípandi tækni. Þetta blogg fjallar um það hvernig við breyttum nýlega næstum fullkomlega virkum riffli í sýndarveruleika stjórnanda og hvernig við tókum á þeim málum sem honum fylgdu.

Nýverið leitaði til okkar af kanadískum viðskiptavini sem var að leita að hjálp við að byggja upp raunhæfa skotleik sem aðdráttarafl fyrir spilakassa þeirra. Þetta er hluti af vaxandi þróun sem við höfum séð þar sem grípandi tækni eins og VR er notuð til skemmtunarfyrirtækja á staðnum eins og flóttaherbergi og rússíbana. Búnaður og uppsetning, þó dýr, séu arðbær vegna mikillar umferðar og nýs umhverfis sem þessi fyrirtæki bjóða upp á. Gott dæmi um skemmtun á staðnum er raunverulegur paintball, búinn til af fyrirtækjum eins og The Void.

Stærsta áskorunin okkar fyrir þá gríðarlegu skotleik sem við hjálpuðumst að var að smíða og nota alvöru skotvopn ... eða að minnsta kosti eitthvað sem leit út og fannst eins og eitt.

Fáðu þér stjórnandann

Við héldum upphaflega að það væri erfitt að fá stjórnandi. Við náðum til staðbundins mjúkvopnasala, Gear of War. Kröfur okkar voru:

  • Loftmjúkur riffill sem leit út, fannst og þyngdist eins og alvöru riffill
  • Vopn sem, þegar það er rekið, framleiðir raunhæfa hrökknun
  • Kveikja og öryggi hlerunarbúnað svo að við gætum notað þau fyrir inntak í eftirlíkingu okkar

Við héldum að þetta væri að spyrja mikið en vorum hissa á að þetta virtist eðlilegt fyrir þá. Þeir bjuggu til mikið af leikmunum fyrir sjónvarp og kvikmyndir og höfðu fengið ókunnugri beiðnir vegna þess. Við notuðum síðan uppsettan Vive rekja spor einhvers til að rekja byssuna í VR.

Setja upp stjórnandann

Þetta var þar sem við upplifðum okkar helsta vandamál, titring: vandamálið stafaði af raunhæfu hraki vopnsins. Vegna þess að Vive Tracker notar IMU (Inertial Movement Units) til að rekja á hátíðni og Vive Lighthouse kerfið til að rekja á tiltölulega lægri tíðni og til að leiðrétta rek. IMU vinna með því að mæla hröðun í hverjum ás og reikna síðan tilfærslu frá þeirri mælingu. Þegar IMU-ingar titra grimmt, t.d. B. Ef þeir eru festir á raunhæft skotvopn geta þeir ekki rakið nákvæmlega. Það var vandamál.

Þar sem við erum ekki sérfræðingar í titringi gerðum við nokkrar tilraunir til að leysa vandamálið en náðum litlum framförum. Við ákváðum síðan að senda reddit færslu til r / Vive. Viðbrögð samfélagsins hafa verið gagnleg. Við löguðum nokkra einfalda hluti sem okkur yfirsást, svo sem að rekja spor einhvers væri of langt upp á járnbrautinni. Það kom okkur á óvart að HTC hafði samband við verkefnið og sýndi því sem við vorum að reyna að gera áhuga. Þeir voru með beta útgáfu af Vive Tracker vélbúnaðinum sem gæti hjálpað til við að búa til lága framhjá síu fyrir IMU sem þeir gáfu okkur.

Línurit yfir venjulegt inntak miðað við inntak eftir að hafa lágmarkssíu notað

Lágstreymissíuna er hægt að stilla í gegnum USB-HID tengi. Við gátum sent 0xB3 skýrslur sem senda grunnupplýsingar um tækið í notkun, sem og lága framhjástillingu frá MacBook til rekja spor einhvers og höfum réttar stillingar til að draga nægjanlega úr titringnum. Næsta skref var að senda virkniskýrsluna, sem gerir okkur kleift að senda breytingar á stillingum sem og stjórn á HID tækjum frá Raspberry Pi til rekja spor einhvers, þar sem við þurftum eitthvað sem gæti passað í skothylki byssunnar með því notandinn gat ekki séð raflögnina.

Lágstreymissía

Þetta eru skrefin til að setja upp Raspberry Pi fyrir þessa tegund verkefna

  • Settu Raspberry á Raspberry Pi
  • Uppfærðu Pi útgáfuna af „Node.js“
  • Settu upp „hnút-falið“ bókasafn í verkefninu þínu til að fá sérstakar leiðbeiningar
  • Í udev skaltu bæta við skrá sem heitir „60-HTC-Vive-perms.rules“ með þessari línu
KERNEL == "hidraw *", SUBSYSTEM == "hidraw", ATTRS {idVendor} == "28de", ATTRS {idProduct} == "2022", TAG + = "uaccess"

Hugsanlegt vandamál er að rangt vísitölugildi er notað af hnútum. Í þessu tilfelli er vísitalan notuð til að bera kennsl á viðmótið eða til að senda skýrsluna. Hér er eitthvað til að kynnast USB beiðnum. Þú getur ekki tilgreint viðmótið við „Node-Hid“. Sem betur fer var skráin „show-devices.js“ sem fylgdi bókasafninu „node-hid“ og sýnir öll tengd HID tæki mismunandi leiðir fyrir hvert viðmót.

Notaðu skjáinn show-devices.js sem fylgir hnútasýndu bókasafninu. Þú getur fundið leiðina sem þú vilt nota í kóðanum þínum ef hún lítur öðruvísi út

Ef þú átt í öðrum vandræðum með handritið fylgir 'usbmon' með Raspbian og gerir þér kleift að skoða allar USB beiðnir sem eru að koma fram. Hér er gagnlegur hlekkur sem þú getur notað til að ráða þessar kröfur. (Byrjar á blaðsíðu 15)

Niðurstaða

Að nota byssu sem VR stjórnandi var engan veginn auðvelt. Titringurinn frá byssuskotinu er nógu sterkur til að trufla getu IMU til að rekja sig nákvæmlega. Með því að nota lága framhjásíu rekja spor einhvers og innbyggða Raspberry Pi náðum við að leysa þetta vandamál án þess að hafa áhrif á rakningu eða kraft sem byssan titrar með.

Takk fyrir lesturinn @ cohagan154