Simulating virtual topography using treadmills

Embodiments herein describe techniques for operating an omnidirectional treadmill, the techniques include receiving VR (virtual reality) topographical information comprising a VR environment, and displaying the VR environment to a user wearing a headset. VR topographical information includes information about VR elements in front of the user in the VR environment relative to a facing direction of the user in the VR environment. The method includes sending topographical signals to active elements in an omnidirectional treadmill based upon the VR topographical information where the omnidirectional treadmill permits the user to move along at least two perpendicular directions of motion on a surface of the omnidirectional treadmill. The techniques include activating the active elements, based upon the VR topographical signals, to physically simulate the VR elements in the VR topographical information on the surface by at least one of expanding or contracting the active elements.

BACKGROUND

The present invention relates to enhancing a virtual reality (VR) experience using omnidirectional treadmills, and more specifically to activating active elements on the treadmills to simulate VR elements in the VR topographical information.

Omnidirectional treadmills permit a user to simulate travelling in all directions (forward, backward, left, right, and all combinations thereof) in a VR environment without leaving the omnidirectional treadmill.

SUMMARY

According to one embodiment described herein, a method includes receiving VR (virtual reality) topographical information comprising a VR environment, wherein the VR environment is displayed to a user wearing a headset, and wherein the VR topographical information comprises information about VR elements in front of the user in the VR environment relative to a facing direction of the user in the VR environment. The method includes sending topographical signals to active elements in an omnidirectional treadmill based upon the VR topographical information, wherein the omnidirectional treadmill permits the user to move along at least two perpendicular directions of motion on a surface of the omnidirectional treadmill. The method includes activating the active elements, based upon the VR topographical signals, to physically simulate the VR elements in the VR topographical information on the surface by at least one of expanding or contracting the active elements.

According to another embodiment described herein, an omnidirectional treadmill includes a processor and active elements controlled by the processor. The omnidirectional treadmill receives VR (virtual reality) topographical information comprising a VR environment. The VR environment is displayed to a user wearing a headset, and wherein the VR topographical information comprises information about VR elements in front of the user in the VR environment relative to a facing direction of the user in the VR environment. The omnidirectional treadmill is further configured to send topographical signals to the active elements in an omnidirectional treadmill based upon the VR topographical information. The omnidirectional treadmill permits the user to move along at least two perpendicular directions of motion on a surface of the omnidirectional treadmill. The omnidirectional treadmill is further configured to activate the active elements, based upon the VR topographical signals, to physically simulate the VR elements in the VR topographical information on the surface by at least one of expanding or contracting the active elements.

According to another embodiment described herein, a computer program product for operating an omnidirectional treadmill includes computer-readable program code executable by one or more computer processors to receive VR topographical information comprising a VR environment where the VR environment is displayed to a user wearing a headset and where the VR topographical information comprises information about VR elements in front of the user in the VR environment relative to a facing direction of the user in the VR environment. The program code is executable to send topographical signals to active elements in the omnidirectional treadmill based upon the VR topographical information where the omnidirectional treadmill permits the user to move along at least two perpendicular directions of motion on a surface of the omnidirectional treadmill. The program code is executable to activate the active elements, based upon the VR topographical signals, to physically simulate the VR elements in the VR topographical information on the surface by at least one of expanding or contracting the active elements.

DETAILED DESCRIPTION

FIG. 1is a block of a VR (virtual reality) system100including an omnidirectional treadmill110, a VR controller122, and a VR headset124according to one embodiment described herein. The omnidirectional treadmill110includes a treadmill controller116(including a treadmill processor), active elements112in communication with the treadmill controller116, sensors114in communication with the treadmill controller116, and a treadmill memory118in communication with the treadmill controller116. The omnidirectional treadmill110may be in communication with the VR controller122and with the VR headset124.

In one embodiment, the user wears the VR headset124which can physically immerse the user in a VR environment—e.g., a 3D environment. The angle and the elevation of the headset124can control the user's view of the VR environment. For example, by tilting her head down, the user can view the feet of an avatar representing the user in the VR environment. In this manner, the VR headset124can adjust the view and orientation of the user in the VR environment. In other embodiments, the VR headset124may be replaced by a fixed VR display that may wrap around the user as she stands in the treadmill.

The VR controller122and VR headset124are communicatively coupled to the treadmill110to permit user (or the user's avatar) to move in the VR environment. For example, using the sensors114, the treadmill controller116can determine that the user is moving in a particular direction along the surface of the treadmill110. By relaying this information to the VR controller122, the controller116can update the view of the user in the headset124such that the user perceives moving in the VR environment in the same direction. For example, the user may look to his left while wearing the headset124but be walking straight ahead on the treadmill110. The treadmill controller116can inform the VR controller122the direction the user is traveling, which in turn, updates the display screen in the VR headset124so that the user perceives herself moving forward while looking to the left in the VR environment. In this manner, the treadmill110provides an immersive experience where real world motions can be translated into motions in the VR environment.

To provide a more immersive experience, the treadmill110includes the active elements112which model or simulate the VR topography in the VR environment. For example, if there is a topographical feature such as a step or a rock in the direction of the user's travel in the VR environment, the VR controller122can provide the spatial location of the topographical feature relative to the user's avatar (and the dimensions of the topographical feature) to the treadmill controller116which controls the active elements112such that spatial location of the topographical feature relative to the user is created in the real-world. As described in detail below, the treadmill controller116controls the active elements112to form or simulate the virtual objects in the VR topography on the surface of the treadmill. For example, the user may step over, or on, a simulated version of the step or rock on the treadmill when moving in the VR environment.

FIG. 2is a diagram of an avatar210in a VR environment200travelling (from left to right) on a flat surface of VR topography230along a direction220of user travel in the VR environment200. A flat surface of an omnidirectional treadmill250corresponds to (and simulates) the flat surface of the VR topography230. The omnidirectional treadmill travels from right to left along direction240so that the user may “walk” (from left to right) along the omnidirectional treadmill while remaining approximately centered in the omnidirectional treadmill, thus simulating the avatar210walking on the flat surface of the VR topography230without walking off of the omnidirectional treadmill250.

The user may view his avatar210in the VR environment200through a VR headset (perhaps from an aerial view), or the user may view the VR environment200from the eyes of his avatar. The avatar may be visible to other users in a multi-user game. However, the avatar210is optional and is not a requirement that the user be represented by the avatar210in the VR environment.

FIG. 3is a diagram of a user avatar310in a VR environment300travelling in a direction320on a non-flat surface of VR topography330including a VR protrusion332and a VR depression334. For example, VR protrusion332may be a rock on a path and VR depression334may be a ditch that the user must navigate over.

A non-flat surface of an omnidirectional treadmill350corresponds to (and simulates) the non-flat surface of the VR topography330. A real protrusion352and a real depression354correspond to the VR protrusion332and the VR depression334respectively. In one embodiment, the protrusion352and depression354have the same dimensions (e.g., width and height) as the corresponding elements in the VR environment. Moreover, the protrusion352and depression354can have the same shape (e.g., curved, rectangular, etc.) as their virtual counterparts. In another embodiment, however, the protrusions352and depressions354have scaled dimensions relative to their corresponding VR elements or the real protrusions352and depressions354may have different shapes than the VR elements which may be due to the physical shape of the active elements. For example, it may be difficult to represent a circular rock in the VR topography using one or more active elements which has flat surfaces.

The non-flat surface of the omnidirectional treadmill350travels in direction340(from right to left) so that the user may “walk” (from left to right) along the omnidirectional treadmill350while remaining approximately centered in the omnidirectional treadmill350, thus simulating walking on the non-flat VR topography330without walking off of the omnidirectional treadmill350. For example, the user may be able to turn 360 degrees to travel in the 3D VR environment. The omnidirectional treadmill can permit the user to turn and travel in any direction in the VR environment while preventing the user from falling off the treadmill. Different examples of omnidirectional treadmills are described in more detail below.

In one embodiment, the treadmill controller116positions the user partially based upon the user's facing direction such that the user has more room to walk available in front of him than in back of him (the user is “off-center”); in this fashion the treadmill has more time (and space) to recognize that the user is walking forward and to smoothly begin moving the treadmill to compensate for the user walking forward.

Expanded view360illustrates active elements364and an optional membrane362. In one embodiment, the active elements364remain stationary (fixed in location) as the membrane362slides over the active elements364. Alternatively, the spatial relationship between the active elements364and the membrane362may remain fixed such that the active elements364and the membrane362travel in unison along the second axis375. In one embodiment, one or more of the active elements364may have a ball bearing (not shown) between each of the active elements364and the membrane362such that the membrane362may easily slide over the active elements. In another embodiment, the membrane362may be omitted from the omnidirectional treadmill350and the top of the active elements364may form an interface so that a user's foot may easily slide (almost frictionless) over the active elements364. For example, the tops of the active elements364may have smooth surfaces or ball bearings may be used to create the almost frictionless surface.

As shown, the active elements364expand along a first axis370to create a protrusion352and contract (or compress or recess) along the first axis370to create a depression354along the surface of the omnidirectional treadmill350. Adjacent active elements364(e.g., a group of active elements364) may be independently controlled to create the relatively smooth and curved protrusion352and the depression354to closely simulate the shapes and dimensions of VR protrusion332and VR depression334respectively. For example, to simulate a curved protrusion in the VR environment, the treadmill controller may activate multiple neighboring active elements364which expand to different heights to form the curve shown inFIG. 3. The membrane362may help to smooth any discontinuities between adjacent active elements364.

As described in more detail below, the treadmill controller may form the protrusions352and depressions354on the treadmill to maintain the same spatial relationship to the location of the user on the treadmill as the relationship between the user's position in the VR environment and the VR protrusions332and VR depressions334. If the user's movements on the treadmill directly map to moving the same distance in the VR environment, the user reaches the physical protrusion352on the treadmill at the same time the user's avatar reaches the VR protrusion332. However, in other embodiments, the movement of the user on the treadmill is scaled relative to her movement in the VR environment. For example, the user walking on the treadmill may correlate to the user running in the VR environment in which case the spatial locations may also be scaled when the treadmill controller forms the protrusion352or depression354.

FIG. 4is a diagram of a VR system400including sensors according to one embodiment described herein. Briefly referring back toFIG. 3, each active element of active elements364may be grouped with an associated sensor to create an independent “pixel.” For example,FIG. 4illustrates a first pixel420that includes a first active element424, a first active element sensor426, and a first surface element422. The first active element sensor426may be a piezoelectric sensor configured to measure a first force provided by a user's first foot410. First active element sensor426may be an optical or electrical proximity sensor or contact sensor that detects proximity or contact with the user. In one example, by monitoring the signals produced by the first active element sensor426, the treadmill controller can determine the location of the user on the treadmill. This information can be used to determine a direction or movement of the user in the VR environment.

First surface element422may be a ball bearing to reduce friction, or may be a portion of the membrane362fromFIG. 3. Second pixel430and third pixel440may include features similar to first pixel420. Alternatively, second pixel430may omit having a sensor, and any forces applied to second pixel430may be estimated by averaging forces measured by sensors of adjacent first pixel420and adjacent third pixel440. First pixel420may form part of a rectangular array of pixels (not shown). The first active element sensor426may be located above (not shown) or below (shown) first active element424.

Camera450is a sensor, and may be a visible light camera, an infrared camera, a depth sensing camera, or any other type of camera. Camera450can be used to determine a location of the user's first foot410and may be used to determine a traveling velocity of the user as the user walks across the surface of the omnidirectional treadmill. Camera450may determine a direction of the user is moving on the treadmill which is correlated to a movement in the VR environment.

The VR system400can be used by the treadmill controller to monitor the movements of the user on the treadmill which can be converted to movements in the VR environment. In one embodiment, the treadmill controller detects movements of the user by using the camera450and/or the first active element sensors426to determine when the user has moved in the real world. For example, if the treadmill has a movable top membrane, as the user moves, the treadmill controller detects these movements and causes the membrane to move in order to keep the user in the center of the treadmill (or at least prevent the user from falling off the treadmill). For example, if the user starts to run, the treadmill controller can detect the faster pace and increase the speed of the membrane in the opposite direction to keep the user from fall off the treadmill. If the treadmill is a frictionless treadmill, then the treadmill controller may not need to move a top membrane in response to user movements. In that example, the controller simply detects the user's movements (e.g., speed and direction) and reports those movements to the VR controller.

In another embodiment, the user may hold a hand held device which is used to control the movement of the treadmill. That is, instead of the treadmill controller moving the top membrane in response to a user motion, the user can use the hand held device to move the top membrane in a desired direction. For example, if the user wants to move forward in the virtual environment, the user presses a corresponding button on the hand held controller which moves the top membrane (forcing the user to move) and moves the user in the VR environment. Because the user is controlling the movement of the treadmill using the hand held device, the user may move away from the center of the treadmill. As a result, the treadmill controller may control the movement of the top membrane such that the user does not fall off the treadmill.

FIG. 5is a control flowchart500for operating a VR system according to one embodiment described herein. At block505, the treadmill controller detects user movements on the treadmill. In one embodiment, the treadmill controller uses a camera or pressure sensor to detect when the user moves on the treadmill. Alternatively, the treadmill controller may receive input from a hand held controller which dictates a speed and direction the user wishes to travel in the VR environment. The treadmill controller can determine a speed and distance traveled by the user which is then sent to the VR controller. In one embodiment, if the treadmill has a moveable membrane or top surface, the treadmill controller moves the membrane using the detected user motion to prevent the user from falling off the treadmill.

At block510, the VR controller correlates the user movements on the treadmill to movements in the VR environment. For example, the VR controller may map the various directions the user can move on the treadmill to corresponding directions in the VR environment. That way, the directions moved by the user in the real-world can be consistently mapped to respective directions in the VR environment. As such, when the VR controller receives direction data from the treadmill controller, the VR controller can map that direction to a direction in the VR environment. Similarly, the speed at which the user moves on the treadmill can be correlated to a speed in the VR environment. As the user speeds up or slows down, the movements of the avatar can also increase or decrease in the same or a scaled manner.

In one embodiment, the movement of the user's avatar in the VR environment is independent of the direction which the user is facing. For example, if the user is wearing a headset, the treadmill and VR controllers can move the user in a direction different from the one she is facing. In this manner, the treadmill can be used to move the user similar to how a person can move in the real-world where the user can face a first direction but move in a second, different direction. This change of position can then be used to change the view displayed to the user in the headset.

At block515, the treadmill controller receives spatial location of virtual obstacles proximate to the user in the VR environment. In one embodiment, the VR controller transmits VR topography that includes obstacles that are within a predefined distance from the user—e.g., two feet. In this scenario, the VR controller can send information about a step that is one foot in front of the user along with a divot that is two feet to the right of the user, but would not send information about a virtual obstacle that is three feet to the left of the user. In one embodiment, the predefined distance is limited to the dimensions of the treadmill. For example, if the treadmill has a radius of two feet or a width and height of ten feet, the VR controller sends information about virtual objects that are within that distance from the user avatar in the virtual world.

At block520, the treadmill controller simulates the VR topography using the active elements in the treadmill. In one embodiment, the treadmill controller simulates all the virtual objects that surround the avatar in the VR environment within the dimension of the treadmill. For example, although the user is currently walking in a first direction on the treadmill, the treadmill controller simulates any objects that are directly to the right or left of the user even if the user is currently not moving in that direction. Thus, if the user suddenly decides to move to the right or left, the active elements in the treadmill have already simulated the virtual objects at those locations.

Alternatively, the treadmill controller may simulate only the virtual object that are likely to be encountered by the user on the treadmill. For example, the controller may simulate only the objects that are currently within the direction of the user is traveling on the treadmill and VR environment within some tolerance in case the user changes direction. For example, if the user is moving along a first direction, the treadmill controller may simulate any virtual objects directly along that path as well as any virtual objects that are within 5-10 degrees to the right or left of the first direction. In another embodiment, the treadmill controller may use the landscape of the VR environment to selectively determine which objects to simulate. For example, if the user is currently moving along a path in the VR environment, the treadmill controller may simulate only the obstacles on that path but not simulate virtual objects that are not on the path.

Moreover, the treadmill controller may use the direction the user is facing in the VR environment to selectively determine which virtual objects to simulate. For example, if the user is moving along a path but is facing a second direction that, if the user followed, would lead her off the path, the treadmill controller may also simulate the objects along the second direction in anticipation that the user may choose to move along the second direction. In this manner, the treadmill controller may use the direction the user is moving as well as her current facing direction to predictively determine which of the virtual obstacles proximate to the user should be simulated.

In one embodiment, the treadmill controller may use the direction the user is facing (assuming the user is wearing a headset) to make simulating the virtual objects safer. If the user is moving in the VR environment and the treadmill in a direction different than the direction she is facing, using the active elements to simulate the virtual objects may create tripping hazards. Thus, the treadmill controller may simulate only the virtual objects that are within a field of view of the user regardless of the current direction she is moving in the VR environment to ensure that she will be able to see the virtual obstacles, and thus, anticipate the simulated objects on the surface of the treadmill.

The treadmill controller activates and/or deactivates the active elements364in response to the VR topography received from the VR controller. The treadmill controller may continuously or at intervals receive updated topography information from the VR controller and update the active elements on the treadmill. In one embodiment, the VR controller may send update topography data in response to the user changing positions in the VR environment. In another embodiment, the treadmill controller requests updated data from the VR controller each time the treadmill controller determines the user has moved on the treadmill.

In one embodiment, the treadmill controller may activate and deactivate the active elements under the user's feet even as the user does not move on the treadmill. For example, to simulate standing on a surface that is moving (e.g., a boat that moves in the waves) or being hit by waves while standing in the ocean, the treadmill controller may activate and deactivate the active elements (step530) under the user to gently rock the user back and forth. In other words, the VR topographical information may change with time, even if the user is not moving laterally.

FIG. 6is a control flowchart600for operating a VR system with sensors according to one embodiment described herein. The VR system starts at step610. The treadmill receives VR topographical information at step620. The treadmill sends topographical signals to the active elements at step630. The treadmill receives sensor information at step640. For example, the sensors114may be cameras450or may be sensors426associated with individual active elements424.

Step642senses information about the user such as: a user travel velocity, locations of the user's feet, a facing direction, and movements of the user's limbs. Step644generates new VR topographical information based upon the sensed user travel velocity and/or other sensed information.

Steps620,630, and640may now repeat such that the new VR topographical information is received and then corresponding new topographical signals are sent to the active elements. In this fashion, a user may walk along the treadmill as the active elements in the treadmill create protrusions and depressions corresponding to a VR environment in which the user's avatar is walking.

FIG. 7is a diagram of simulated stairs according to one embodiment described herein, showing snapshots of a single stair as time passes. A first simulated stair710is shown at an initial location and an initial time (T1), and then travels leftward and recedes as time passes (T2, T3, T4, and T5). The dashed lines indicate a default level740of the treadmill (when the active elements are deactivated).

The first simulated stair710(at the initial location and the initial time) comprises active elements712,714,715,718, and720. The simulated escalator will simulate a stair travelling to the left in direction730and ending in at the default level740of the treadmill.

At time T2, the simulated stair710has moved slightly to the left along the surface of the treadmill and has receded (shrunk) slightly, as shown by stair750. The active elements in stair750may be active elements712,714,716, and718in an embodiment where the active elements travel in direction730. Alternatively, the active elements in stair750may be distinct active elements (not712, not714, not716, and not718) in an embodiment where the active elements are stationary (and the optional membrane may be traveling in direction730). As such, stair750may include some of the active elements used to generate stair710(e.g., elements712and714) and different active elements—e.g., active elements to the left of active element712.

At time T3, the simulated stair710has moved further to the left on the treadmill and receded more towards the default level740, as shown by stair760. At time T4, the simulated stair710has moved even further to the left and receded even more as shown by stair770.

Finally, at time T5, the simulated stair710has moved far to the left and has receded to the default level of the treadmill as shown by stair780. Also at time T5, a second simulated stair790is shown at the initial location of first simulated step710. Additional steps may be present at intermediate locations and intermediate heights, but are not shown on this figure.

As the user walks upon the simulated stairs, sensors114detect the movement (step642ofFIG. 6), and new VR topographical information is generated (step644ofFIG. 6).FIG. 8provides additional detail regarding these steps.

FIG. 8is the diagram800of a user walking on simulated stairs on a treadmill according to one embodiment described herein, showing snapshots as time passes. In the diagram800, the VR topographical information may be a virtual staircase in a house or steps carved into the side of a virtual mountain.

At time T1, a user's first foot820steps onto a first stair830. As described above, the first stair830may correspond to a location of a virtual stair in the VR environment that has the same spatial relationship to the user's position in the VR environment as the first stair830has to the user on the treadmill. That way, if the user moves to step onto the virtual stair, she will step on the physical stair830on the treadmill. The user's second food810remains at the default level860. As shown, the stair830includes a plurality of active elements (four in this case) which protrude at the same level in order to provide a substantially flat surface to form the top of the stair830.

In this embodiment, the staircase in the VR environment has multiple stairs, and as a result, the treadmill controller raises the next group of active elements to form a second stair840. Thus, if the user chooses to move to the next stair in the VR staircase, the treadmill already has the second stair840ready to receive the user's second foot810.

At time T2, the user has moved the second foot810onto a second stair840. Moreover, to keep the user centered, the treadmill has moved the top membrane and the stairs830and840from right to left to counter the user moving from left to right. In parallel, the treadmill controller lowers the height of the stairs830and840. If done slowly, the user may not perceive that she is being lowered as she moves up the stairs. Lowering the height of the stairs is advantageous since the active elements do not have to protrude more and more to simulate the virtual staircase. Like above, the treadmill controller activates the next grouping of active elements to form a third stair850which corresponds to a third virtual stair in the VR environment.

In one embodiment, the movement of the stairs830and840from right to left occurs in response to detecting the motion of the user. That is, the stairs may not move laterally until the treadmill controller determines the user has moved her second foot810in order to place her foot on the second stair840. However, once the user has both feet on the stairs, the treadmill controller may begin to lower both stairs regardless whether the user continues to move laterally along the treadmill. Put differently, the stairs on which the user has her feet can be lowered slowly at any time and do not need to wait for the user to move to the next stair. For example, if the user keeps her feet820and810at the locations shown at time T2, the treadmill controller may lower all the stairs (i.e., stairs830,840, and850) at the same rate until the active elements forming the first stair830have recessed to the default level860. Thus, the user first foot820would be at the default level860while the user's second foot810would still be raised above the default level860on the second stair840.

At time T3, the user moves her first foot820off the first stair (which has now disappeared since the active elements have recessed to the default level860) to the third stair850. In this example, the third stair850corresponds to the last stair in the virtual staircase. As such, instead of forming a fourth stair, the treadmill controller generates a plateau870which has the same height as the third stair850. The plateau870provides an intermediary position which the user can put a foot until the stairs840and850can be recessed down to the default level860. Without the plateau870, if the user where to move her foot810in front of foot820, she may stumble since there is no additional step. Instead, the plateau870provides temporary support to the user foot810until the stair850and plateau870can be recessed to the default level860.

Time T4illustrates when the user has moved her second foot810to the plateau870. In response, the treadmill controller moves the third stair850and plateau870from right to left and begins to reduce their height. Just in case, the treadmill controller could make the plateau870wide enough to accommodate the user taking an additional step forward using the first foot820. Increasing the length of the plateau870provides additional time so that the treadmill controller can lower these features to the default level860if the features have not recessed to the default level860by the time the user takes another step.

In the embodiments above, the active elements forming each of the features—i.e., the first stair830, second stair840, third stair850, and plateau870—may move laterally to counter the movement of the user. In this embodiment, the treadmill may not have a top membrane but rather the tops of the active elements provide the interface on which the user steps. Alternatively, to move the features from right to left, the treadmill controller changes which active features are used to form the features. For example, at time T2, the controller may use four different active elements to form stair830than then active elements used to form the stair830at time T1. In this example, the active elements remain stationary and the treadmill controller changes the height of the active elements to simulate moving the stairs and plateau laterally which correspond to the later movements of the user. Moreover, although not shown, because the treadmill controller can activate active elements along a plane to form stairs at any location on the surface of the treadmill, the treadmill controller can simulate spiral staircases, or staircases that zig zag, using the embodiments described above.

Although the example above simulates a static staircase in a VR environment, the treadmill controller can also simulate a moving escalator in the VR environment. In one embodiment, the virtual escalator moves at a fixed speed and the user must maintain the same speed (travel velocity) on the treadmill using the stairs (although in the opposite direction) in order to stay in the center of the treadmill.

FIG. 9is a two-dimensional omnidirectional treadmill900according to one embodiment described herein. The omnidirectional treadmill900in includes a plurality of unidirectional treadmills oriented in parallel with each other along a first axis or first dimension (the direction that the user is currently facing). The rotation of each individual treadmill permits the user to walk in the direction that he is facing inFIG. 9.

To permit the user to walk towards his left (or right) along a second axis (perpendicular to the first axis) or second dimension all of the treadmills are moved/shifted to the left or to the right. Thus, a perpendicular translation mechanism moves the plurality of unidirectional treadmills along a second axis, wherein the second axis is perpendicular to the first axis. Geometrically, any direction along the surface of the treadmill may be described as a sum of a direction along the first axis and a direction along the second axis. Similarly, any movement may be described as the sum of a movement along the first axis plus a movement along the second axis. A two-dimensional omnidirectional treadmill can move its surface in any direction by combining (simultaneously or sequentially) a movement along the first axis with a movement along the second axis, thus allowing a user to walk in any direction while remaining centered on the treadmill.

FIG. 10is a frictionless omnidirectional treadmill according to one embodiment described herein. In one embodiment, the surface of the frictionless omnidirectional treadmill is coated with a low friction material such as Teflon, and the user wears special socks or shoes that slide easily on the Teflon. In another embodiment, the user wears special shoes, each shoe including a large ball bearing that rolls along the surface of the frictionless omnidirectional treadmill.

The frictionless omnidirectional treadmill inFIG. 10has a bowl shaped surface that tends to slide a user towards the center (and the bottom of the bowl) as the user walks away from the center. This treadmill may also have a harness and/or a ring that help the user to stay centered. The user may grab the ring with his arms to help turn herself, or may use radial grooves on the surface of treadmill to create rotational friction in order to rotate himself (turn left or turn right). Alternately, the user may rotate herself slowly using the (almost) frictionless surface of the treadmill.