Abstract:
It is a common desire for users of spatial computer environments (both in VR and AR) to be able to navigate in space and manipulate objects in much the same way as they are used to in physical reality. However, due to the large degrees of freedom of this problem, existing solutions operate either by restricting the number of operations that can be performed, or by proposing overly complicated solutions. Cognitive Navigation and Manipulation introduces a context dependent solution for navigation and object translation/rotation in VR, allowing users to perform operations in an intuitive way, even with only a very simple input device at their disposal. The device is required to have no more than 3 buttons and 3 continuous input dimensions.

Description:
TECHNICAL FIELD 
       [0001]    The invention relates to a method for representing functional behaviors relevant to navigation in a computer generated or computer augmented spatial environment, as well as functional behaviors relevant to the translation, rotation and position-relative circumnavigation of 2D and 3D object representations within said computer generated or computer augmented spatial environment; using a minimum of one computing device, one display device and one input device. 
         [0002]    The method disclosed herein pertains to the field of virtual and augmented reality, more generally to the area of spatial operating systems. 
       BACKGROUND OF THE INVENTION 
       [0003]    It is a common desire for users of spatial computer environments (both in VR and AR) to be able to navigate in space and manipulate objects in much the same way as they are used to in physical reality. However, the devices that are used to communicate this desire to the 3D virtual space are severely limited in their communication capabilities (there are simply too few buttons, and in general too few degrees of freedom). A complete solution to this problem would enable users to transfer their complete physical embodiment into the virtual space, but achieving this will be difficult in the near future. A better alternative is to increase the intelligence of the virtual space, allowing users to communicate with it more at the level of intentions that at the low level of input signals. 
       SUMMARY 
       [0004]    The present invention, namely the CogiNav technology solves the problem of seamless navigation and manipulation in 3D virtual space using a generic input device model that includes:
       2+1 continuous input dimensions (although any device in general can be used, the first two dimensions correspond to the left-right forward-back mouse movements, while the third one corresponds to the mouse scrollbar, which can be rolled forward and backward). The three dimensions are referred to in the text as DimensionX, DimensionY and the Scroll, respectively, in the text.   3 buttons. The three buttons are referred to as Button 1 , Button 2  and Button 3 , respectively, in the text.       
 
         [0007]    The CogiNav technology operates by taking; into consideration the context of the camera (or more generally, the avatar) and the object that it is looking at, using those two pieces of information to deduce the intentions of the user, and finally mapping those intentions onto the limited degrees of freedom of the input device and the characteristics of the camera movements. Thus, although the input dimensions of the input device are limited, their function changes through context in a way that fits naturally with users&#39; expectations from the physical world. The terms used in the description of the cognitive navigation and manipulation method are shown in  FIG. 1 : 
         [0008]    The key features and benefits of the invention are: 
         [0009]    Navigating in 3D space and moving/rotating objects is a constant source of frustration even in state-of-the-art 3D graphical systems. As discussed earlier, a key problem is that users are unable to transfer into the virtual space their natural expectations of being able to look down and rotate their head to the left and right, and of viewing the horizon at a horizontal perspective once looking back up. Another key problem is that it is nearly impossible to define objects as points of reference around which users can perform movement and rotation operations. 
         [0010]    The general objective of the present application is that all of these problems can be solved with an input device that has three continuous input dimensions and three buttons. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]      FIG. 1 . Shows the conceptual layout of the input device. The actuators shown on the figure can be in any arrangement, the only requirement is that DimensionX, DimensionY and Scroll provide continuous input values, while Button 1 , Button 2  and Button 3  provide discrete input events. 
           [0012]      FIG. 2 : Demonstrates the passive cognitive solution to the problem of keeping the view horizontal following yaw rotations. 
           [0013]      FIG. 3 : Provides a schematic view of the spherical orbit, which allows users to move around an object while maintaining distance from it and a constant view of it. 
           [0014]      FIG. 4 . Shows that hovering operations cause the camera&#39;s Zc coordinate to be fixed, allowing the user to keep a fixed distance from the scene while making translational movements in the Xc-Yc coordinate system. 
           [0015]      FIG. 5 : Shows that the velocity of navigation is normally directly proportional to the distance of the object that is focused on (the object that is at the center of the screen, pointed at by axis-Zc). 
           [0016]      FIG. 6 : Shows that the default plane for translation is selected based on the angle between the normal vectors of key planes defining the 3-dimensional local coordinate system of the object and the vector that connects the camera position to the origin of the object. 
           [0017]      FIG. 7 : Provides a graphical explanation of object rotation. 
       
    
    
     DETAILED DESCRIPTION 
       [0018]    The know-how described in the patent application focus on three distinct operations: viewpoint orientation control, viewpoint navigation and object rotation. 
         [0019]    a. Viewpoint Orientation Control 
         [0020]    The goal is to be able to control viewpoint orientation in a continuous manner. In theory, an input device with three continuous degrees of freedom (such as a 2D mouse with a scrollbar) provides enough degrees of freedom to rotate the viewpoint around 3 axes (for example, Scroll movements could correspond to pitch, DimensionX movements could correspond to roll, and DimensionY movements could correspond to yaw). Yet the solution to this problem cannot be so simple, as indicated by the fact that no commercial solution uses anything similar to it. 
         [0021]    The key problem is that humans have a natural sense of what it means to be in a horizontal position, i.e. the human brain is capable of automatically handling the horizontal state of the real or VR world as a special state—therefore, any display with viewpoint orientation control is expected to snap back to horizontal whenever the user returns to that position. When using a head-mounted display with head tracking, this poses no challenge, as there is no conflict between the user&#39;s vestibular sense and the projected image (both the user&#39;s brain and the display “know” when the viewing orientation is horizontal). On the other hand, when there is no common horizontal reference between the user&#39;s head and the display (or even simply between the user&#39;s head and the external control device), then the horizontal position of the space that is displayed is different from the horizontal plane of the head, which leads to dizziness, difficulty in navigation, and an overall deterioration of system usability. In such cases, users are accustomed to automatically turning their head by a certain degree, until the displayed image appears as horizontal (this is typical case when the display is in the user&#39;s hands or on a table, as in the case of a television set). 
         [0022]    To replace the need for automatic head movements, one possibility is to provide users with a continuous input actuator (such as a knob) to turn back the horizon of displayed image to horizontal (this could be referred to as the “horizontalizer” knob). However, such a solution would negatively affect the usability of the system, as users would grow tired of having to turn the knob all the time, whereas in normal cases the brain would perform image correction automatically, by telling the head to change orientation. Therefore, the goal is to create an automated version of the “horizontalizer” knob. 
         [0023]    The solution that is typically used today (referred to as the passive cognitive solution) is shown in  FIG. 2 . The passive cognitive solution consists of fixing the axis of rotation around the camera view (which would in the normal case happen around axis Yc) to axis Y of the 3D space. This solves the original problem by making it impossible to occur: as yaw rotations always take place around the globally vertical axis, there is no way that the view can move away from horizontal (when the user&#39;s head is horizontal). However, the solution leads to a different problem—namely, the problem that when the user is looking down, yaw rotations are confounded with roll rotations (because the Zc and Y axes will be close to each other). Therefore, this solution is not adequate when the user looks downward, for example with the intention of reading and comparing documents laid out on a horizontal surface. In such cases, the view of the documents would spin around the same global vertical axis, even though the user&#39;s intention was to keep them horizontal while comparing them from the left to the right. 
         [0024]    Instead of the passive cognitive solution, this patent application introduces the active cognitive solution. A non-trivial function is proposed to map yaw rotations to either the Y or Yc axis depending on the context of the situation. Specifically, when the user is looking down below a certain angle (as is typical when viewing documents on a table), yaw rotations are interpreted with respect to the Yc axis. Thus, the problem of unnatural rotations, i.e. the problem of documents spinning around on the plane of the screen is averted. On the other hand, when the user turns her head back upwards, the active cognitive solution automatically pushes back the Xc axis onto the X-Z plane, so that the horizontal view cannot remain tilted away from the natural horizontal viewing direction. 
         [0025]    b. Viewpoint Navigation 
         [0026]    Typically two kinds of navigation modes (or a combination of the two) are used in VR solutions today:
       In the first case, translation in the global X-Y-Z coordinate space follows the direction specified by the orientation of the camera (hence, one continuous input dimension or alternatively a discrete ‘throttle’ button is required besides the ability to modify the camera orientation).   In the second case, translations in the X-Y-Z coordinate space are directly controlled through the coordinate values along the global X-Y-Z axes and are independent of the orientation of the camera (hence, the user is free to look around the space while moving in a direction that is independent of the camera rotation).
 
In both cases, it is extremely difficult to orbit around a pre-determined focus point, especially if the radius of the orbit path is required to be fixed. This patent application proposes to add a functionality to spatial operating systems allowing users to orbit around an object (for example, a small virtual ball) while maintaining a constant view of it and at the same time keeping a fixed distance from it.
       
 
         [0029]    The Novelties of the Present Invention in Terms of Viewpoint Navigation: 
         [0030]    Novelty 1—the spherical orbit: When the user focuses on an object and pushes Button 1 , the dimensions DimensionX and DimensionY of the input device are no longer associated with rotation movements, but rather with a displacement along the latitude and longitude of a sphere that surrounds the object with radius R. The radius can be modified using the Scroll ( FIG. 3 ). 
         [0031]    Novelty 2—hovering: When the user presses Button 2 , the orientation Zc (as defined in  FIG. 2 ) becomes fixed, and DimensionX and DimensionY of the input device control a displacement along axes Xc and Yc ( FIG. 4 ). 
         [0032]    Novelty 3—navigation: When the user presses and holds down Button 3 , the Scroll can be used to move forward or backward along axis Zc (as defined in  FIG. 2 ). Normally, the velocity of the movement is directly proportional to the distance from the object that is at the center of the screen, based on any kind of linear or non-linear correspondence ( FIG. 5 ). When a second button (Button 2 , after Button 3 ) is pushed down as well, its movements control the velocity of the movement. 
         [0033]    c. Object Manipulation 
         [0034]    In two dimensional computing interfaces, contextual information such as the direction of the user&#39;s direction of gaze rarely make a difference. Whenever users move objects on the screen (such as drag-and-drop files), the movement of the objects is constrained to the 2D plane, and the direction from which the movement is viewed (i.e., the user&#39;s gaze) does not matter. 
         [0035]    In contrast, moving objects in 3D entails moving them along a third (depth) dimension as well, and the user&#39;s viewpoint matters a great deal. For example, a bad viewing angle can make it impossible to tell whether the face of an object is directly in line with the surface to which it is to be attached. However, finding a suitable viewpoint and viewing angle is often extremely difficult. 
         [0036]    Object Translation 
         [0037]    The present invention proposes to constrain the movements of objects to a single, default 2-dimensional plane at any given time, but at the same time to vary the default plane depending on the viewing angle. Specifically, the following contextual information can be used to select the optimal default plane:
       The user&#39;s current vantage point on the object (as described earlier, CogiNav always focuses on the object at the center of the screen)   The relationship of that vantage point to the global coordinate system   The relationship of that vantage point to the local coordinate system of the object       
 
         [0041]    The key strategy behind CogiNav for object movement is to always move the object in the plane whose normal vector is closest (in angular terms) to the vector that links the camera position to the origin of the object&#39;s local coordinate system. This plane is referred to as the default plane, as shown in  FIG. 6 . Of course, it is assumed that the local coordinate system of the object is defined in reasonable terms—for example, that two axes of a sheet of paper would be parallel with the edges of the sheet. The main assertion is that defining object movements in this way comes naturally to users. For example, when sliding a sheet of paper across a table, it is natural to view the sheet of paper from above, whereas if the goal is to lift the sheet of paper off of the table, it is natural to view it from the side of the table. 
         [0042]    One key detail that is necessary to implement this strategy is the question of how to map the axes of the input device (DimensionX and DimensionY) onto the default plane. The key to solving this problem is to find the minimal rotation suitable for superimposing the DimensionX-DimensionY coordinate system onto the coordinate system of the default plane. In other words, if DimensionX is closer to D1 than to D2, then Dimension X will control movement along the D1 axis. 
         [0043]    Object Rotation 
         [0044]    The present invention proposes to perform rotations of objects around their local axes based on navigation in the spatial orbit mode described earlier. 
         [0045]    Object rotation is implemented through the following steps ( FIG. 7 ):
       1. A matching is performed between the camera&#39;s local coordinate system and the object&#39;s local coordinate system. This is naturally performed by humans, for example it is common that crane operators manipulate a 3-dimensional input device in one coordinate system while the tip of the crane is moving in a different, rotated coordinate system. It is also well defined in computational terms: the smallest rotation is to be found that converts between the two coordinate systems.   2. Once the matching is complete, rotations along the spherical orbit in terms of the camera&#39;s local coordinate system can be automatically mapped onto the rotations of the object. By projecting the user&#39;s (camera&#39;s) coordinate system onto the coordinate system of the object, the method is a truly cognitive solution that mirror&#39;s the natural capability of humans to translate between 3D coordinate systems. There are two alternative ways to implement this step:
           a. The object is rotated based on spherical orbit operations performed on the input device, but the camera&#39;s orientation remains fixed (in this case, the object will be rotated towards or away from the camera&#39;s orientation)   b. The object is rotated together with the camera as the camera&#39;s orientation changes during spherical orbit operations. This means that for each angular unit travelled along the spherical orbit, the object is rotated around its corresponding local axis with a proportional angular unit. The angular velocity of the object may be comparatively increased when the distance from the camera position and the object is relatively large—otherwise the user would have to perform unnecessarily large orbit movements to rotate the object by a small amount (in terms of perception).