For my semester project at ETH Zurich, I developed feedback mechanisms for a real walking
virtual reality system under the advisorship of Professor Andreas Kunz and Markus Zank. In
real-walking virtual reality, your movements in a digital environment are enabled by
physically walking through a space. An upward facing camera was attached to an Oculus Rift
headset to pick up known landmarks on the ceiling in a large room. Based upon which visual
landmarks were seen in the camera's frame, the headset can be localized. In our system, a
user is given a a virtual reality headset and a pair of headphones and is encouraged to
explore the virtual world.
When exploring a potentially infinite virtual world while real walking in a constrained
physical space, precautions must be taken so that users don't run into a physical wall. The
virtual world might seem open and clear, but if an obstacle exists in the physical space,
the user won't be able to avoid it. Redirection algorithms were developed that allow a user
to be steered away from physical obstacles unknowingly. This is done by subtly changing the
view frame of the headset to induce a user to walk in arcs instead of in straight lines and
to scale the rotations that a user makes into larger or smaller rotations. While these
techniques are preferred since they don't interfere with user immersion, if a user is very
close to a collision, a representation of the physical walls appear in the virtual space and
indicate for the user to turn away.
Another problem that exists is that users can walk through digital walls, thus ignoring any
maps or objectives that might exist in the virtual environment. This can cause scenes to
become very difficult to design and render, since a user's movements can't be constrained. I
developed feedback mechanisms and algorithms to deincentivize users from walking through
digital walls. Some of these mechanisms are very simple, like flashing a warning or turning
the screen black. Others are very complex, such as teleporting the user outside of the
digital wall so that they face the opposite direction. These complex techniques were
combined with redirections away from physical walls. I also wrote algorithms to determine if
the wall collision was intentional or accidental, since activating these mechanisms for
accidental wall collisions has the potential to frustrate users.
I created a user study to test out these mechanisms. The study puts users in scenarios where
they would accidentally or intentionally collide with digital walls. Different feedback
mechanisms are given to the user with the goal of training the user into operating with the
system in the correct way. Through postering campus with some advertisements and reaching
out to friends, I had 30 users test out the mechanisms I designed and I was able to collect
data about which mechanisms worked best in various scenarios.