Biomedical Engineering Reference
In-Depth Information
10.3 Isometric Virtual Walking
In this section we present the basic math and algorithms to implement isometric real
walking transformations, i.e., mappings that preserve distances and angles of a user's
movements.
10.3.1 One-to-One Mappings
Assuming the real and virtual workspaces are defined using the coordinate systems
introduced in Sect.
10.2
, basic one-to-one mappings can be implemented by using the
tracked position and orientation of a user's head in the laboratory to define the position
and orientation of a corresponding virtual camera object for each rendering frame.
In particular, a tracked change of one unit (e.g., meter or degree) in the physical
workspace is mapped to a translation or rotation of one unit in the virtual scene.
Examples of such mappings are often found when displaying a virtual replica of a
virtual reality laboratory to users in head-mounted display environments [
12
,
33
], or
in architectural passive haptics environments, in which real and virtual objects are
registered to provide users with haptic feedback when touching virtual objects [
10
].
In such environments, one-to-one mappings can be implemented using the following
simple pseudo code:
Algorithm 1
One-to-one mapping from tracked head to camera coordinates
for all
rendering frames
n
∈
N
0
do
// Get current head tracking state:
(
x
(
n
)
y
(
n
)
z
(
n
)
3
)
,
,
)
←
tracked head position (in
R
r
r
r
(
y
(
n
)
,
p
(
n
)
,
r
(
n
)
3
)
)
←
tracked head orientation (in
[
0
,
360
)
r
r
r
// Set virtual camera state:
(
x
(
n
)
,
y
(
n
)
,
z
(
n
)
)
←
(
x
(
n
)
,
y
(
n
)
,
z
(
n
)
)
// position
v
v
v
r
r
r
y
(
n
)
p
(
n
)
r
(
n
)
y
(
n
)
p
(
n
)
r
(
n
)
(
˜
,
˜
,
˜
)
←
(
˜
,
˜
,
˜
)
// orientation
v
v
v
r
r
r
end for
x
(
n
)
y
(
n
)
z
(
n
)
3
denotes the current three-dimensional
In the pseudo code,
(
,
,
)
∈ R
r
r
r
y
(
n
)
p
(
n
)
r
(
n
)
3
the current yaw, pitch and roll orientation
of the user's head in the physical workspace as provided by the tracking system
for rendering frames
n
position, and
(
˜
,
˜
,
˜
)
∈[
0
,
360
)
r
r
r
x
(
n
)
y
(
n
)
z
(
n
)
3
the computed new
∈ N
0
,aswellas
(
,
,
)
∈ R
v
v
v
y
(
n
)
p
(
n
)
r
(
n
)
3
the new orientation of the camera object
that is used as the basis for rendering the current frame to be displayed to the user.
position and
(
˜
,
˜
,
˜
)
∈[
0
,
360
)
v
v
v