US2011227825A1PendingUtilityA1

3D Pointer Mapping

Assignee: HILLCREST LAB INCPriority: Jul 1, 2008Filed: Jul 1, 2009Published: Sep 22, 2011
Est. expiryJul 1, 2028(~1.9 yrs left)· nominal 20-yr term from priority
G06F 3/0346G06F 3/0383
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Systems, devices, methods and software are described for mapping movement or motion of a 3D pointing device into cursor position, e.g., for use in rendering the cursor on a display. Absolute and relative type mapping algorithms are described. Mapping algorithms can be combined to obtain beneficial characteristics from different types of mapping.

Claims

exact text as granted — not AI-modified
1 . A method for mapping a device's movement into cursor position, comprising:
 estimating at least one of said device's linear position and angular position;   processing at least one of said estimated linear position and estimated angular position using both a first mapping algorithm to generate a first cursor location and a second mapping algorithm to generate a second cursor location; and   combining said first cursor location and said second cursor location to generate a final cursor output.   
     
     
         2 . The method of  claim 1 , wherein said first mapping algorithm is an absolute pointing algorithm and wherein said second mapping algorithm is a relative pointing algorithm. 
     
     
         3 . The method of  claim 1 , wherein at least one of the mapping algorithms is an absolute pointing algorithm which has a characteristic that a ratio of cursor motion to angular device motion changes as a function of distance between said device and a display on which a cursor is displayed. 
     
     
         4 . The method of  claim 3 , wherein said absolute pointing algorithm maps device motion to cursor location based upon an intersection of a forward pointing direction (body-frame x-axis) of the device and a surface of a display on which said cursor is to be displayed. 
     
     
         5 . The method of  claim 4 , wherein said absolute pointing algorithm is defined as: 
       
         
           
             
               
                 p 
                 = 
                 
                   
                     - 
                     
                       
                         
                           u 
                           x 
                             
                             
                             
                           u 
                         
                         
                           
                             
                                 
                               u 
                             
                              
                             x 
                           
                            
                           
                             □ 
                             x 
                           
                         
                       
                        
                       
                         [ 
                         
                           
                             
                               
                                 
                                   
                                       
                                     u 
                                   
                                    
                                   x 
                                 
                                  
                                 
                                   □ 
                                   y 
                                 
                               
                             
                           
                           
                             
                               
                                 
                                   
                                       
                                     u 
                                   
                                    
                                   x 
                                 
                                  
                                 
                                   □ 
                                   z 
                                 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                   + 
                   
                     [ 
                     
                       
                         
                           
                             u 
                             y 
                               
                               
                               
                             u 
                           
                         
                       
                       
                         
                           
                             u 
                             z 
                               
                               
                               
                             u 
                           
                         
                       
                     
                     ] 
                   
                   + 
                   
                     p 
                     0 
                   
                 
               
               , 
             
           
         
       
       where
   u u x  is a detected value of the linear position x-axis in a user's frame of reference; 
   u u y  is a detected value of the linear position y-axis in a user's frame of reference; 
   u u z  is a detected value of the linear position z-axis in a user's frame of reference; 
   u x° x  is a detected value of the body-frame x-axis in a user's frame of reference; 
   u x° y  is a detected value of the body-frame y-axis along an y-axis in a user's frame of reference; 
   u x° z  is a detected value of the body-frame z-axis along a z-axis in a user's frame of reference; and 
 p 0  is the 2D vector value of the display coordinate system origin in cursor coordinates. 
 
     
     
         6 . The method of  claim 1 , wherein at least one of the mapping algorithms is an absolute invariant algorithm which has a characteristic of providing a direct, repeatable mapping from device linear position and angular position into cursor location and a second characteristic that cursor responsiveness to linear motion and angular motion is consistent over a motion range. 
     
     
         7 . The method of  claim 6 , wherein said absolute invariant algorithm generates cursor position as a sum of a term of linear position values and a term computed from angular position that is independent of linear position. 
     
     
         8 . The method of  claim 7 , wherein said absolute invariant algorithm is defined as: 
       
         
           
             
               
                 
                   
                       
                     u 
                   
                    
                   x 
                 
                 □ 
               
               = 
               
                 Vector 
                 ( 
                 
                   q 
                   ⊗ 
                   
                     〈 
                     
                       0 
                       , 
                       
                         
                           
                               
                             b 
                           
                            
                           x 
                         
                         □ 
                       
                     
                     〉 
                   
                   ⊗ 
                   
                     q 
                     * 
                   
                 
                 ) 
               
             
           
         
         
           
             
               p 
               = 
               
                 
                   c 
                    
                   
                     [ 
                     
                       
                         
                           
                             
                               tan 
                               
                                 - 
                                 1 
                               
                             
                              
                             
                               
                                 
                                   
                                       
                                     u 
                                   
                                    
                                   x 
                                 
                                  
                                 
                                   □ 
                                   y 
                                 
                               
                               
                                 
                                   
                                       
                                     u 
                                   
                                    
                                   x 
                                 
                                  
                                 
                                   □ 
                                   x 
                                 
                               
                             
                           
                         
                       
                       
                         
                           
                             
                               tan 
                               
                                 - 
                                 1 
                               
                             
                              
                             
                               
                                 
                                   
                                       
                                     u 
                                   
                                    
                                   x 
                                 
                                  
                                 
                                   □ 
                                   z 
                                 
                               
                               
                                 
                                   
                                       
                                     u 
                                   
                                    
                                   x 
                                 
                                  
                                 
                                   □ 
                                   x 
                                 
                               
                             
                           
                         
                       
                     
                     ] 
                   
                 
                 + 
                 
                   [ 
                   
                     
                       
                         
                           u 
                           y 
                             
                             
                             
                           u 
                         
                       
                     
                     
                       
                         
                           u 
                           z 
                             
                             
                             
                           u 
                         
                       
                     
                   
                   ] 
                 
                 + 
                 
                   p 
                   0 
                 
               
             
           
         
       
       or approximated by 
       
         
           
             
               p 
               = 
               
                 
                   c 
                    
                   
                     [ 
                     
                       
                         
                           
                             
                               sin 
                               
                                 - 
                                 1 
                               
                             
                              
                             
                               
                                   
                                 u 
                               
                                
                               x 
                             
                              
                             
                               □ 
                               y 
                             
                           
                         
                       
                       
                         
                           
                             
                               sin 
                               
                                 - 
                                 1 
                               
                             
                              
                             
                               
                                   
                                 u 
                               
                                
                               x 
                             
                              
                             
                               □ 
                               z 
                             
                           
                         
                       
                     
                     ] 
                   
                 
                 + 
                 
                   [ 
                   
                     
                       
                         
                           u 
                           y 
                             
                             
                             
                           u 
                         
                       
                     
                     
                       
                         
                           u 
                           z 
                             
                             
                             
                           u 
                         
                       
                     
                   
                   ] 
                 
                 + 
                 
                   p 
                   0 
                 
               
             
           
         
       
       where:
 q is said angular position; 
   u u y  is a detected value of the linear position y-axis in a user's frame of reference; 
   u u z  is a detected value of the linear position x-axis in a user's frame of reference; 
   u x° x  is a detected value of the body-frame x-axis in a user's frame of reference; 
   u x° y  is a detected value of the body-frame y-axis in a user's frame of reference; 
   u x° z  is a detected value of the body-frame z-axis in a user's frame of reference; and 
 p 0  is the 2D vector value of the display coordinate system origin in cursor coordinates. 
 
     
     
         9 . The method of  claim 1 , wherein at least one of the mapping algorithms creates an intermediate, virtual display that moves to face the device. 
     
     
         10 . The method of  claim 9 , wherein said wherein said intermediate, planar virtual display maps device motion to cursor location based upon an intersection of a forward pointing direction (body-frame x-axis) of the device and a surface of a display on which said cursor is to be displayed rotated to at least partially face the device. 
     
     
         11 . The method of  claim 10 , wherein said intermediate, planar virtual display is defined as: 
       
         
           
             
               Q 
               = 
               
                 
                   [ 
                   
                     
                       
                         | 
                       
                       
                         | 
                       
                       
                         | 
                       
                     
                     
                       
                         
                           x 
                             
                           Δ 
                             
                             
                           u 
                         
                       
                       
                         
                           y 
                             
                           Δ 
                             
                             
                           u 
                         
                       
                       
                         
                           z 
                             
                           Δ 
                             
                             
                           u 
                         
                       
                     
                     
                       
                         | 
                       
                       
                         | 
                       
                       
                         | 
                       
                     
                   
                   ] 
                 
                 T 
               
             
           
         
         
           
             
               s 
               = 
               
                 
                   Q 
                    
                   
                     
                         
                       u 
                     
                      
                     x 
                   
                    
                   
                     □ 
                     
                       
 
                     
                      
                     w 
                   
                 
                 = 
                 
                   Q 
                    
                   
                     
                         
                       u 
                     
                      
                     u 
                   
                 
               
             
           
         
         
           
             
               p 
               = 
               
                 
                   
                     
                       w 
                       x 
                     
                     
                       s 
                       x 
                     
                   
                    
                   
                     [ 
                     
                       
                         
                           
                             s 
                             y 
                           
                         
                       
                       
                         
                           
                             s 
                             z 
                           
                         
                       
                     
                     ] 
                   
                 
                 + 
                 
                   [ 
                   
                     
                       
                         
                           w 
                           y 
                         
                       
                     
                     
                       
                         
                           w 
                           z 
                         
                       
                     
                   
                   ] 
                 
                 + 
                 
                   p 
                   0 
                 
               
             
           
         
       
       where:
   u x Δ  is a detected value of the virtual display x-axis in a user-frame of reference; 
   u y Δ  is a detected value of the virtual display y-axis in a user-frame of reference; 
   u z Δ  is a detected value of the virtual display z-axis in a user-frame of reference; 
 w y  is a detected value of the linear position y-axis in the virtual display frame of reference; 
 w z  is a detected value of the linear position z-axis in the virtual display frame of reference; 
 s x  is a detected value of the body-frame x-axis in the virtual display frame of reference; 
 s y  is a detected value of the body-frame y-axis in the virtual display frame of reference; 
 s z  is a detected value of the body-frame z-axis in the virtual display frame of reference; and 
 p 0  is the 2D vector value of the display coordinate system origin in cursor coordinates. 
 
     
     
         12 . The method of  claim 1 , wherein at least one of the mapping algorithms creates an intermediate, spherical virtual display that moves to face the device. 
     
     
         13 . The method of  claim 12 , wherein said spherical virtual display maps device motion to cursor location based upon spherical coordinates of the estimated angular position being transformed into the virtual display coordinates by a transformation matrix and converted into cursor location. 
     
     
         14 . The method of  claim 13 , wherein said mapping is performed without using said estimated linear position of said device. 
     
     
         15 . The method of  claim 14 , wherein said spherical virtual display is defined as: 
       
         
           
             
               φ 
               = 
               
                 
                   sin 
                   
                     - 
                     1 
                   
                 
                  
                 
                   ( 
                   
                     - 
                     
                       b 
                       z 
                     
                   
                   ) 
                 
               
             
           
         
         
           
             
               θ 
               = 
               
                 
                   
                     
                       tan 
                       
                         - 
                         1 
                       
                     
                     ( 
                     
                       
                         b 
                         y 
                       
                       
                         b 
                         x 
                       
                     
                     ) 
                   
                    
                   
                     
 
                   
                   [ 
                   
                     
                       
                         
                           p 
                           x 
                         
                       
                     
                     
                       
                         
                           p 
                           y 
                         
                       
                     
                     
                       
                         1 
                       
                     
                   
                   ] 
                 
                 = 
                 
                   T 
                    
                   
                     [ 
                     
                       
                         
                           θ 
                         
                       
                       
                         
                           
                             - 
                             φ 
                           
                         
                       
                       
                         
                           1 
                         
                       
                     
                     ] 
                   
                 
               
             
           
         
       
       where:
 b x  is the detected value of the body-frame x-axis in the virtual display frame of reference; 
 b y  is the detected value of the body-frame y-axis in the virtual display frame of reference; 
 b z  is the detected value of the body-frame z-axis in the virtual display frame of reference; and 
 T is a 3×3 transformation matrix of arbitrary constants which may apply any combination of a scale, rotation, translation, shearing, reflection, orthogonal projection, affine transformation and a perspective projection. 
 
     
     
         16 . The method of  claim 1 , wherein at least one of the mapping algorithms creates an intermediate, relative, spherical virtual display which uses a change in angle between the device and the display to determine a change in cursor location. 
     
     
         17 . The method of  claim 16 , said intermediate, relative, spherical virtual display maps device motion to cursor location based upon body-frame angular velocity modified by a transformation matrix and converted into cursor change in location. 
     
     
         18 - 28 . (canceled) 
     
     
         29 . A 3D pointing device comprising:
 at least one sensor configured to generate an output which is associated with movement of said 3D pointing device; and   a processor configured to estimate at least one of said device's linear position and angular position using said output, to process at least one of said estimated linear position and angular position using both a first mapping algorithm to generate a first cursor location and a second mapping algorithm to generate a second cursor location, and to combine said first cursor location and said second cursor location to generate a final cursor output.   
     
     
         30 . The 3D pointing device of  claim 29 , wherein said first mapping algorithm is an absolute pointing algorithm and wherein said second mapping algorithm is a relative pointing algorithm. 
     
     
         31 . The 3D pointing device of  claim 29 , wherein at least one of the mapping algorithms is an absolute pointing algorithm which has a characteristic that a ratio of cursor motion to angular device motion changes as a function of distance between said device and a display on which a cursor is displayed. 
     
     
         32 . The 3D pointing device of  claim 31 , wherein said absolute pointing algorithm maps device motion to cursor location based upon an intersection of a forward pointing direction (body-frame x-axis) of the device and a surface of a display on which said cursor is to be displayed. 
     
     
         33 . The 3D pointing device of  claim 32 , wherein said absolute pointing algorithm is defined as: 
       
         
           
             
               
                 p 
                 = 
                 
                   
                     - 
                     
                       
                         
                           u 
                           x 
                             
                             
                             
                           u 
                         
                         
                           
                             
                                 
                               u 
                             
                              
                             x 
                           
                            
                           
                             □ 
                             x 
                           
                         
                       
                        
                       
                         [ 
                         
                           
                             
                               
                                 
                                   
                                       
                                     u 
                                   
                                    
                                   x 
                                 
                                  
                                 
                                   □ 
                                   y 
                                 
                               
                             
                           
                           
                             
                               
                                 
                                   
                                       
                                     u 
                                   
                                    
                                   x 
                                 
                                  
                                 
                                   □ 
                                   z 
                                 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                   + 
                   
                     [ 
                     
                       
                         
                           
                             u 
                             y 
                               
                               
                               
                             u 
                           
                         
                       
                       
                         
                           
                             u 
                             z 
                               
                               
                               
                             u 
                           
                         
                       
                     
                     ] 
                   
                   + 
                   
                     p 
                     0 
                   
                 
               
               , 
             
           
         
       
       where
   u u x  is a detected value of the linear position x-axis in a user's frame of reference; 
   u u y  is a detected value of the linear position y-axis in a user's frame of reference; 
   u u z  is a detected value of the linear position z-axis in a user's frame of reference; 
   u x° x  is a detected value of the body-frame x-axis in a user's frame of reference; 
   u x° y  is a detected value of the body-frame y-axis along an y-axis in a user's frame of reference; 
   u x° z  is a detected value of the body-frame z-axis along a z-axis in a user's frame of reference; and 
 p 0  is the 2D vector value of the display coordinate system origin in cursor coordinates. 
 
     
     
         34 . The 3D pointing device of  claim 29 , wherein at least one of the mapping algorithms is an absolute invariant algorithm which has a characteristic of providing a direct, repeatable mapping from device linear position and angular position into cursor location and a second characteristic that cursor responsiveness to linear motion and angular motion is consistent over a motion range. 
     
     
         35 - 106 . (canceled)

Join the waitlist — get patent alerts

Track US2011227825A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.