Je controller meenemen in de virtuele realiteit

Glenn
Bergmans

Introductie

Met de Oculus Rift en de HTC Vive zijn de eerste virtual reality headsets stilaan op de consumentenmarkt aan het druppelen. Deze head-mounted displays zijn beeldschermen die op het hoofd gedragen worden en je gezichtsveld inpalmen om een virtuele wereld te laten zien. Deze toestellen laten het toe om een virtuele omgeving te ervaren alsof  je er echt bent. Ze doen dit door je de wereld in 3D te laten zien en je vrij rond te laten kijken m.b.v. head-tracking. Tracking houdt in dat de computer gaat kijken wat de positie is van een bepaald voorwerp in de echte wereld en de bewegingen hiervan gaat bijhouden.

Het feit dat het gezichtsveld bedekt is door de head-mounted display heeft echter als gevolg dat de echte wereld niet meer zichtbaar is, wat vervelend kan zijn als je je controller kwijtraakt. Sommige virtual reality headsets hebben speciale controllers die getrackt worden en zo zichtbaar zijn in de virtuele realiteit op dezelfde locatie als ze zich in de echte wereld bevinden, maar deze tracking is jammergenoeg niet beschikbaar voor alle andere soorten controllers.

Dit leidt tot toestanden waar je bv. aan het opgaan bent in de atmosfeer van een virtual reality horror game, je de controller laat vallen als je je verschiet en dan de headset moet afzetten om de controller terug te vinden waarmee al de suspense verloren gaat.

Handen zien met de Leap Motion

De oplossing die we gevonden hebben voor dit probleem maakt gebruik van de Leap Motion. Dit apparaat heeft het formaat van een grote USB-stick en kan vastgemaakt worden aan een virtual reality headset. Het doel van de Leap Motion is om de computer handen te kunnen laten zien. Om dit te doen maakt de Leap Motion gebruik van twee infraroodcamera’s. Zoals de naam zegt filmen deze camera’s infrarood licht, wat buiten het lichtspectrum valt dat mensen kunnen waarnemen. De Leap Motion straalt ook zelf dit licht uit m.b.v. drie LED’s. Hiermee beschijnt het de handen en kijkt het naar de verschillen in afstand tussen bepaalde punten van de hand om de positie ervan te bepalen. De twee camera’s van de Leap Motion werken dus ongeveer hetzelfde als de ogen van een mens om afstanden in te schatten.

Uitbreiden naar controllers

Onze manier van controllers tracken werkt min of meer hetzelfde als de manier waarop de Leap Motion handen trackt, maar heeft een beetje extra hulp nodig. De Leap Motion weet immers exact waarnaar hij moet zoeken, namelijk handen. Onze tracker moet werken op alle soorten controllers, of het nu een klassieke controller is, een stuurwiel, een joystick of iets helemaal unieks. We weten dus ook helemaal niet of de controller infrarood licht kan reflecteren zoals handen dat doen. Om dit op te lossen moeten we markers aanbrengen die infrarood licht uitzenden of reflecteren. Dit kunnen infrarood LED’s zijn, motion capture markers, reflecterende stickers, etc. Zolang ze helder genoeg zijn om gezien te worden door de Leap Motion werkt alles. Minstens drie markers moeten zichtbaar zijn om de tracking te doen werken, maar meer geeft een nauwkeuriger resultaat. De markers mogen in elk patroon geplaatst worden, behalve in  gelijkhoekige figuren. Het is immers onmogelijk om te zeggen welke zijde van een vierkant de bovenkant is.

Nu dat we zeker weten dat de controller zichtbaar is voor de Leap Motion, moeten we het programma aanleren hoe jouw markerpatroon er uit ziet. Dat kan eenvoudigweg door de controller op een plaats en positie te houden aangegeven door het programa. Deze kan dan kijken waar jouw patroon zich bevindt t.o.v. de controller. Hierna kan het programma weten exact waar en in welke positie de controller is door het gekende patroon te vergelijken met het patroon dat het momenteel ziet, zolang er minstens 3 markers zichtbaar zijn voor de Leap Motion.

Gebruikerstests

We hebben de tracking ook door verschillende personen laten testen. Wanneer de testpersonen hun controller kwijt waren, konden ze dankzij de tracking rustig rondkijken en de controller in 1 of 2 gecontroleerde bewegingen oprapen. Zonder tracking begonnen de testpersonen echter in het wild rond te tasten op hun bureau, wat gevaarlijk kan zijn als er bv. een glas water op staat. De testpersonen hadden gemiddeld 3.64 pogingen nodig om de controller op te rapen zonder tracking. Dat is meer dan het dubbel van de gemiddelde 1.39 pogingen die nodig waren met de tracking. Een van de participanten zei ook “Het is handig dat de controller zichtbaar is om hem terug te vinden, want het gevoel van waar ik hem had neergelegd gaat deels verloren.

Conclusie

Met onze tracking kunnen we aan elk soort controller ondersteuning voor virtual reality toevoegen door er simpelweg een aantal markers aan te bevestigen die infraroodlicht uitzenden of reflecteren. Nadat het programma is aangeleerd hoe het markerpatroon er uit ziet, kan er een virtuele voorstelling van de controller weergegeven worden op de locatie waar de fysieke controller zich bevindt. Dit maakt het niet alleen mogelijk om de controller makkelijker terug te vinden, maar kan er ook door de ontwikkelaar extra functionaliteit aan de virtuele voorstelling toegevoegd worden naargelang de applicatie. De toepassingen zijn virtueel eindeloos.

Download scriptie (2.06 MB)
Universiteit of Hogeschool
Universiteit Hasselt
Thesis jaar
2016
Promotor(en)
Prof. Dr. Johannes Schöning