US2010123605A1PendingUtilityA1

System and method for determining 3D orientation of a pointing device

Assignee: WILSON ANDREWPriority: Feb 7, 2002Filed: Apr 20, 2009Published: May 20, 2010
Est. expiryFeb 7, 2022(expired)· nominal 20-yr term from priority
G06F 3/0346G08C 2201/41G08C 2201/50G06F 2203/0381G08C 2201/31G08C 17/00G06F 3/038G08C 2201/32
57
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The present invention is directed toward a system and process that controls a group of networked electronic components using a multimodal integration scheme in which inputs from a speech recognition subsystem, gesture recognition subsystem employing a wireless pointing device and pointing analysis subsystem also employing the pointing device, are combined to determine what component a user wants to control and what control action is desired. In this multimodal integration scheme, the desired action concerning an electronic component is decomposed into a command and a referent pair. The referent can be identified using the pointing device to identify the component by pointing at the component or an object associated with it, by using speech recognition, or both. The command may be specified by pressing a button on the pointing device, by a gesture performed with the pointing device, by a speech recognition event, or by any combination of these inputs.

Claims

exact text as granted — not AI-modified
1 . A handheld device comprising: a sensor for generating a first output associated with motion associated of said handheld device; an accelerometer for detecting acceleration of said handheld device and outputting at least one second output; and a processing unit for receiving and processing said first output from said sensor and said at least one second output from said accelerometer, said processing including calculating: 
       
         
           
             
               
                 R 
                 = 
                 
                   
                     [ 
                     
                       
                         
                           
                             cos 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                         
                           
                             sin 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                       
                       
                         
                           
                             
                               - 
                               sin 
                             
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                         
                           
                             cos 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                       
                     
                     ] 
                   
                   · 
                   
                     [ 
                     
                       
                         
                           A 
                         
                       
                       
                         
                           B 
                         
                       
                     
                     ] 
                   
                 
               
               , 
             
           
         
         wherein θ is associated with an orientation in which said handheld device is being held, and A and B are values associated with at least one of said first output and said at least one second output. 
       
     
     
         2 . The handheld device of  claim 1 , wherein said sensor is a camera. 
     
     
         3 . The hand held device of  claim 1 , wherein said sensor is a rotational sensor. 
     
     
         4 . The handheld device of  claim 1 , wherein said sensor is a magnetometer. 
     
     
         5 . The handheld device of  claim 1 , wherein said sensor is an optical sensor. 
     
     
         6 . The handheld device of  claim 1 , wherein said accelerometer is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said handheld device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said hand held device in a z-axis direction. 
     
     
         7 . The handheld device of  claim 6 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         8 . The handheld device of  claim 6 , wherein θ is a value associated with a tilt of said handheld device which is calculated using said y value and said z value. 
     
     
         9 . The hand held device of  claim 8 , wherein θ is calculated as one of 
       
         
           
             
               θ 
               = 
               
                 
                   tan 
                   
                     - 
                     1 
                   
                 
                  
                 
                   ( 
                   
                     y 
                     z 
                   
                   ) 
                 
               
             
           
         
         and a tan 2(y,z). 
       
     
     
         10 . The handheld device of  claim 1 , wherein said first output is generated at a sampling rate of 200 samples/second. 
     
     
         11 . The handheld device of  claim 1 , further comprising:
 a wireless transceiver for receiving data from said processing unit and wirelessly transmitting said data.   
     
     
         12 . The handheld device of  claim 11 , wherein said wireless transceiver is a Bluetooth® transceiver. 
     
     
         13 . The handheld device of  claim 11 , further comprising:
 a plurality of buttons disposed on a housing of said handheld device; and   at least one LED disposed on said housing.   
     
     
         14 . The handheld device of  claim 1 , wherein A and B are associated with different axes of said first output. 
     
     
         15 . The handheld device of  claim 1 , wherein A and B are position data values. 
     
     
         16 . The handheld device of  claim 1 , wherein said processing performs a transformation of detected translational motion of said hand held device. 
     
     
         17 . The hand held device of  claim 1 , wherein said processing performs a transformation of detected rotational motion of said hand held device. 
     
     
         18 . The handheld device of  claim 1 , wherein said processing performs a transformation of both detected translational motion and detected rotational motion of said handheld device. 
     
     
         19 . The handheld device of  claim 1 , said at least one of said first output and said at least one second output are processed prior to calculating R. 
     
     
         20 . The handheld device of  claim 19 , wherein said processing prior to calculating R includes compensating said at least one of said first output and said at least one second output for offset bias. 
     
     
         21 . The handheld device of  claim 19 , wherein said processing prior to calculating R includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         22 . The hand held device of  claim 1 , wherein said hand held device is a 3D pointing device. 
     
     
         23 . A system comprising:
 (a) a handheld device including:
 a sensor for generating a first output associated with motion associated of said handheld device; and 
 an accelerometer for detecting acceleration of said handheld device and outputting at least one second output; and 
   (b) a processing unit for receiving and processing said first output from said sensor and said at least one second output from said accelerometer,   said processing including calculating:   
       
         
           
             
               
                 R 
                 = 
                 
                   
                     [ 
                     
                       
                         
                           
                             cos 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                         
                           
                             sin 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                       
                       
                         
                           
                             
                               - 
                               sin 
                             
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                         
                           
                             cos 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                       
                     
                     ] 
                   
                   · 
                   
                     [ 
                     
                       
                         
                           A 
                         
                       
                       
                         
                           B 
                         
                       
                     
                     ] 
                   
                 
               
               , 
             
           
         
       
       wherein θ is associated with an orientation in which said handheld device is being held, and A and B are values associated with at least one of said first output and said at least one second output. 
     
     
         24 . The system of  claim 23 , wherein said system further comprises:
 a system controller;   a wireless transmitter, disposed in said handheld device, for transmitting data from said handheld device to said system controller;   wherein said processing unit is disposed within one of said handheld device and said system controller.   
     
     
         25 . The system of  claim 24 , wherein said sensor is a camera. 
     
     
         26 . The system of  claim 24 , wherein said sensor is a rotational sensor. 
     
     
         27 . The system of  claim 24 , wherein said sensor is a magnetometer. 
     
     
         28 . The system of  claim 24 , wherein said sensor is an optical sensor. 
     
     
         29 . The system of  claim 24 , wherein said accelerometer is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said hand held device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said handheld device in a z-axis direction. 
     
     
         30 . The system of  claim 29 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         31 . The system of  claim 29 , wherein θ is a value associated with a tilt of said handheld device which is calculated using said y value and said z value. 
     
     
         32 . The system of  claim 29 , wherein θ is calculated as one of θ=tan −1 (y/z) and a tan 2(y,z). 
     
     
         33 . The system of  claim 24 , wherein said first output is generated at a sampling rate of 200 samples/second. 
     
     
         34 . The system of  claim 24 , wherein said wireless transceiver is a Bluetooth® transceiver. 
     
     
         35 . The system of  claim 24 , further comprising: a plurality of buttons disposed on a housing of said handheld device; and at least one LED disposed on said housing. 
     
     
         36 . The system of  claim 24 , wherein A and B are associated with different axes of said first output. 
     
     
         37 . The system of  claim 24 , wherein A and B are position data values. 
     
     
         38 . The system of  claim 24 , wherein said processing unit, by calculating R, performs a transformation of translational motion detected by at least one of said sensor and said accelerometer from a body frame of reference of said handheld device into a user's frame of reference. 
     
     
         39 . The system of  claim 24 , wherein said processing unit, by calculating R, performs a transformation of rotational motion detected by at least one of said sensor and said accelerometer from a body frame of reference of said handheld device into a user's frame of reference. 
     
     
         40 . The system of  claim 24 , wherein said processing unit, by calculating R, performs a transformation of both translational motion and rotational motion detected by at least one of said sensor and said accelerometer from a body frame of reference of said handheld device into a user's frame of reference. 
     
     
         41 . The system of  claim 24 , wherein said at least one of said first output and said at least one second output are processed prior to calculating R. 
     
     
         42 . The system of  claim 41 , wherein said processing prior to calculating R includes compensating said at least one of said first output and said at least one second output for offset bias. 
     
     
         43 . The system of  claim 41 , wherein said processing prior to calculating R includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         44 . The system of  claim 24 , wherein said handheld device is a 3D pointing device. 
     
     
         45 . A method comprising:
 generating, from a first sensor, a first output associated with motion associated of a hand held device;   detecting, by a second sensor, acceleration of said hand held device and outputting at least one second output; and   processing said first output from and said at least one second output,   said processing including calculating:   
       
         
           
             
               
                 R 
                 = 
                 
                   
                     [ 
                     
                       
                         
                           
                             cos 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                         
                           
                             sin 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                       
                       
                         
                           
                             
                               - 
                               sin 
                             
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                         
                           
                             cos 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                       
                     
                     ] 
                   
                   · 
                   
                     [ 
                     
                       
                         
                           A 
                         
                       
                       
                         
                           B 
                         
                       
                     
                     ] 
                   
                 
               
               , 
             
           
         
       
       wherein θ is associated with an orientation in which said handheld device is being held, and A and B are values associated with at least one of said first output and said at least one second output. 
     
     
         46 . The method of  claim 45 , further comprising:
 transmitting data from said handheld device to a system controller, wherein said processing is performed within one of said handheld device and said system controller.   
     
     
         47 . The method of  claim 45 , wherein said first sensor is a camera. 
     
     
         48 . The method of  claim 45 , wherein said first sensor is a rotational sensor. 
     
     
         49 . The method of  claim 45 , wherein said first sensor is a magnetometer. 
     
     
         50 . The method of  claim 45 , wherein said first sensor is an optical sensor. 
     
     
         51 . The method of  claim 45 , wherein said second sensor is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said handheld device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said hand held device in a z-axis direction. 
     
     
         52 . The method of  claim 51 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         53 . The method of  claim 51 , wherein θ is a value associated with a tilt of said handheld device which is calculated using said y value and said z value. 
     
     
         54 . The method of  claim 53 , wherein θ is calculated as one of θ=tan −1 (y/z) and a tan 2(y,z). 
     
     
         55 . The method of  claim 45 , wherein said first output is generated at a sampling rate of 200 samples/second. 
     
     
         56 . The method of  claim 45 , wherein said step of transmitting further comprises:
 wirelessly transmitting said data in accordance with Bluetooth®.   
     
     
         57 . The method of  claim 45 , further comprising:
 disposing a plurality of buttons and at least one LED on a housing of said handheld device.   
     
     
         58 . The method of  claim 45 , wherein A and B are associated with different axes of said first output. 
     
     
         59 . The method of  claim 45 , wherein A and B are position data values. 
     
     
         60 . The method of  claim 45 , wherein said processing, by calculating R, performs a transformation of translational motion detected by at least one of said first sensor and said second sensor from a body frame of reference of said hand held device into a user's frame of reference. 
     
     
         61 . The method of  claim 45 , wherein said processing, by calculating R, performs a transformation of rotational motion detected by at least one of said first sensor and said second sensor from a body frame of reference of said hand held device into a user's frame of reference. 
     
     
         62 . The method of  claim 45 , wherein said processing, by calculating R, performs a transformation of both translational motion and rotational motion detected by at least one of said first sensor and said second sensor from a body frame of reference of said hand held device into a user's frame of reference. 
     
     
         63 . The method of  claim 45 , further comprising: processing said at least one of said first output and said at least one second output prior to calculating R. 
     
     
         64 . The method of  claim 63 , wherein said processing prior to calculating R includes compensating said at least one of said first output and said at least one second output for offset bias. 
     
     
         65 . The method of  claim 63 , wherein said processing prior to calculating R includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         66 . The method of  claim 45 , wherein said handheld device is a 3D pointing device. 
     
     
         67 . A system comprising:
 means for generating a first output associated with motion associated of a handheld device;   means for detecting acceleration of said hand held device and outputting at least one second output; and   means for processing said first output from and said at least one second output,   wherein said processing means is also for calculating:   
       
         
           
             
               
                 R 
                 = 
                 
                   
                     [ 
                     
                       
                         
                           
                             cos 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                         
                           
                             sin 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                       
                       
                         
                           
                             
                               - 
                               sin 
                             
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                         
                           
                             cos 
                              
                             
                                 
                             
                              
                             θ 
                           
                         
                       
                     
                     ] 
                   
                   · 
                   
                     [ 
                     
                       
                         
                           A 
                         
                       
                       
                         
                           B 
                         
                       
                     
                     ] 
                   
                 
               
               , 
             
           
         
       
       wherein θ is associated with an orientation in which said handheld device is being held, and A and B are values associated with at least one of said first output and said at least one second output. 
     
     
         68 . A pointing device comprising: a sensor for generating a first output associated with motion associated of said pointing device; an accelerometer for detecting acceleration of said pointing device and outputting at least one second output; and a microcontroller for receiving and processing said first output from said sensor and said at least one second output from said accelerometer, said processing including calculating a rotation matrix value for the pointing device based on pitch of the pointing device and sensor values associated with at least one of said first output and said at least one second output,
 wherein the pitch is associated with an orientation in which said pointing device is being held.   
     
     
         69 . The pointing device of  claim 68 , wherein said sensor is a camera. 
     
     
         70 . The pointing device of  claim 68 , wherein said sensor is a rotational sensor. 
     
     
         71 . The pointing device of  claim 68 , wherein said sensor is a magnetometer. 
     
     
         72 . The pointing device of  claim 68 , wherein said sensor is an optical sensor. 
     
     
         73 . The pointing device of  claim 68 , wherein said accelerometer is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said pointing device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said pointing device in a z-axis direction. 
     
     
         74 . The pointing device of  claim 73 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         75 . The pointing device of  claim 73 , wherein the pitch of said pointing device is calculated using said y value and said z value. 
     
     
         76 . The pointing device of  claim 75 , wherein the pitch of said pointing device is calculated as:
   pitch right-side-up =−arcsin( a ),   wherein a is a normalized output of the accelerometer.   
     
     
         77 . The pointing device of  claim 68 , wherein said first output is generated at a sampling rate of 50 samples/second. 
     
     
         78 . The pointing device of  claim 68 , further comprising:
 a RF transceiver for receiving data from said microcontroller and wirelessly transmitting said data.   
     
     
         79 . The pointing device of  claim 78 , wherein said RF transceiver is a Bluetooth® transceiver. 
     
     
         80 . The pointing device of  claim 78 , further comprising:
 a plurality of buttons disposed on a housing of said pointing device; and   at least one LED disposed on said housing.   
     
     
         81 . The pointing device of  claim 68 , wherein said sensor values are associated with different axes of said first output. 
     
     
         82 . The pointing device of  claim 68 , wherein said sensor values are position data values. 
     
     
         83 . The pointing device of  claim 68 , wherein said processing performs a transformation of detected translational motion of said pointing device. 
     
     
         84 . The pointing device of  claim 68 , wherein said processing performs a transformation of detected rotational motion of said pointing device. 
     
     
         85 . The pointing device of  claim 68 , wherein said processing performs a transformation of both detected translational motion and detected rotational motion of said pointing device. 
     
     
         86 . The pointing device of  claim 68 , said at least one of said first output and said at least one second output are processed prior to calculating the rotation matrix value. 
     
     
         87 . The pointing device of  claim 86 , wherein said processing prior to calculating the rotation matrix value includes compensating said at least one of said first output and said at least one second output for offset bias. 
     
     
         88 . The pointing device of  claim 86 , wherein said processing prior to calculating the rotation matrix value includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         89 . The pointing device of  claim 68 , wherein said pointing device is a 3D pointing device. 
     
     
         90 . A system comprising:
 (a) a pointing device including:
 a sensor for generating a first output associated with motion associated of said pointing device; and 
 an accelerometer for detecting acceleration of said pointing device and outputting at least one second output; and 
   (b) a microcontroller for receiving and processing said first output from said sensor and said at least one second output from said accelerometer,   said processing including calculating a rotation matrix value for the pointing device based on pitch of the pointing device and sensor values associated with at least one of said first output and said at least one second output,   wherein the pitch is associated with an orientation in which said pointing device is being held.   
     
     
         91 . The system of  claim 90 , wherein said system further comprises:
 a system processing unit;   a RF transmitter, disposed in said pointing device, for transmitting data from said pointing device to said system processing unit;   wherein said microcontroller is disposed within one of said pointing device and said system processing unit.   
     
     
         92 . The system of  claim 91 , wherein said sensor is a camera. 
     
     
         93 . The system of  claim 91 , wherein said sensor is a rotational sensor. 
     
     
         94 . The system of  claim 91 , wherein said sensor is a magnetometer. 
     
     
         95 . The system of  claim 91 , wherein said sensor is an optical sensor. 
     
     
         96 . The system of  claim 91 , wherein said accelerometer is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said pointing device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said pointing device in a z-axis direction. 
     
     
         97 . The system of  claim 96 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         98 . The system of  claim 96 , wherein the pitch of said pointing device is a value associated with a pitch of said pointing device which is calculated using said y value and said z value. 
     
     
         99 . The system of  claim 96 , wherein the pitch of said pointing device is calculated as:
   pitch right-side-up =−arcsin( a ),   wherein a is a normalized output of the accelerometer.   
     
     
         100 . The system of  claim 91 , wherein said first output is generated at a sampling rate of 50 samples/second. 
     
     
         101 . The system of  claim 91 , wherein said RF transceiver is a Bluetooth® transceiver. 
     
     
         102 . The system of  claim 91 , further comprising: a plurality of buttons disposed on a housing of said pointing device; and at least one LED disposed on said housing. 
     
     
         103 . The system of  claim 91 , wherein said sensor values are associated with different axes of said first output. 
     
     
         104 . The system of  claim 91 , wherein said sensor values are position data values. 
     
     
         105 . The system of  claim 91 , wherein said microcontroller, by calculating the rotation matrix value, performs a computation of translational motion detected by at least one of said sensor and said accelerometer from a calibration mode of reference of said pointing device into a 3D location of said pointing device. 
     
     
         106 . The system of  claim 91 , wherein said microcontroller, by calculating the rotation matrix value, performs a computation of rotational motion detected by at least one of said sensor and said accelerometer from a calibration mode of reference of said pointing device into a 3D location of said pointing device. 
     
     
         107 . The system of  claim 91 , wherein said microcontroller, by calculating the rotation matrix value, performs a computation of both translational motion and rotational motion detected by at least one of said sensor and said accelerometer from a calibration mode of reference of said pointing device into a 3D location of said pointing device. 
     
     
         108 . The system of  claim 91 , wherein said at least one of said first output and said at least one second output are processed prior to calculating the rotation matrix value. 
     
     
         109 . The system of  claim 108 , wherein said processing prior to calculating the rotation matrix value includes correcting said at least one of said first output and said at least one second output for deviations. 
     
     
         110 . The system of  claim 108 , wherein said processing prior to calculating the rotation matrix value includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         111 . The system of  claim 91 , wherein said pointing device is a 3D pointing device. 
     
     
         112 . A method comprising:
 generating, from a first sensor, a first output associated with motion associated of a pointing device;   detecting, by a second sensor, acceleration of said pointing device and outputting at least one second output; and   processing said first output from and said at least one second output,   said processing including calculating a rotation matrix value for the pointing device based on pitch of the pointing device and sensor values associated with at least one of said first output and said at least one second output,   wherein the pitch is associated with an orientation in which said pointing device is being held.   
     
     
         113 . The method of  claim 112 , further comprising:
 transmitting data from said pointing device to a system processing unit, wherein said processing is performed within one of said pointing device and said system processing unit.   
     
     
         114 . The method of  claim 112 , wherein said first sensor is a camera. 
     
     
         115 . The method of  claim 112 , wherein said first sensor is a rotational sensor. 
     
     
         116 . The method of  claim 112 , wherein said first sensor is a magnetometer. 
     
     
         117 . The method of  claim 112 , wherein said first sensor is an optical sensor. 
     
     
         118 . The method of  claim 112 , wherein said second sensor is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said pointing device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said pointing device in a z-axis direction. 
     
     
         119 . The method of  claim 118 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         120 . The method of  claim 118 , wherein the pitch of said pointing device is a value associated with a pitch of said pointing device which is calculated using said y value and said z value. 
     
     
         121 . The method of  claim 120 , wherein the pitch of said pointing device is calculated as:
   pitch right-side-up =−arcsin( a ),   wherein a is a normalized output of the accelerometer.   
     
     
         122 . The method of  claim 112 , wherein said first output is generated at a sampling rate of 50 samples/second. 
     
     
         123 . The method of  claim 112 , wherein said step of transmitting further comprises:
 wirelessly transmitting said data in accordance with Bluetooth®.   
     
     
         124 . The method of  claim 112 , further comprising:
 disposing a plurality of buttons and at least one LED on a housing of said pointing device.   
     
     
         125 . The method of  claim 112 , wherein said sensor values are associated with different axes of said first output. 
     
     
         126 . The method of  claim 112 , wherein said sensor values are position data values. 
     
     
         127 . The method of  claim 112 , wherein said processing, by calculating the rotation matrix value, performs a computation of translational motion detected by at least one of said first sensor and said second sensor from a calibration mode of reference of said pointing device into a 3D location of said pointing device. 
     
     
         128 . The method of  claim 112 , wherein said processing, by calculating the rotation matrix value, performs a computation of rotational motion detected by at least one of said first sensor and said second sensor from a calibration mode of reference of said pointing device into a 3D location of said pointing device. 
     
     
         129 . The method of  claim 112 , wherein said processing, by calculating the rotation matrix value, performs a computation of both translational motion and rotational motion detected by at least one of said first sensor and said second sensor from a calibration mode of reference of said pointing device into a 3D location of said pointing device. 
     
     
         130 . The method of  claim 112 , further comprising: processing said at least one of said first output and said at least one second output prior to calculating the rotation matrix value. 
     
     
         131 . The method of  claim 130 , wherein said processing prior to calculating the rotation matrix value includes correcting said at least one of said first output and said at least one second output for deviations. 
     
     
         132 . The method of  claim 130 , wherein said processing prior to calculating the rotation matrix value includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         133 . The method of  claim 112 , wherein said pointing device is a 3D pointing device. 
     
     
         134 . A system comprising:
 means for generating a first output associated with motion associated of a pointing device;   means for detecting acceleration of said pointing device and outputting at least one second output; and   means for processing said first output from and said at least one second output,   wherein said processing means is also for calculating a rotation matrix value for the pointing device based on pitch of the pointing device and sensor values associated with at least one of said first output and said at least one second output,   wherein the pitch is associated with an orientation in which said pointing device is being held.   
     
     
         135 . The pointing device of  claim 68 , wherein said sensor is a gyroscope sensor. 
     
     
         136 . The pointing device of  claim 90 , wherein said sensor is a gyroscope sensor. 
     
     
         137 . The pointing device of  claim 112 , wherein said sensor is a gyroscope sensor. 
     
     
         138 . A system comprising:
 (a) a handheld device including:
 a sensor for generating a first output associated with motion of said handheld device; and 
 an accelerometer for detecting acceleration of said handheld device and outputting at least one second output; and 
   (b) a processing unit for receiving and processing said first output from said sensor and said at least one second output from said accelerometer, said processing including:
 determining an orientation in which said handheld device is held using said at least one second output; and 
 compensating said first output based on said determined orientation by performing a two-dimensional rotational transform on said first output to generate an output which is substantially independent of said orientation. 
   
     
     
         139 . The system of  claim 138 , wherein said system further comprises: a system controller; a wireless transceiver, disposed in said handheld device, for transmitting data from said handheld device to said system controller; wherein said processing unit is disposed within one of said handheld device and said system controller. 
     
     
         140 . The system of  claim 138 , wherein said sensor is a camera. 
     
     
         141 . The system of  claim 138 , wherein said sensor is a rotational sensor. 
     
     
         142 . The system of  claim 138 , wherein said sensor is a magnetometer. 
     
     
         143 . The system of  claim 138 , wherein said sensor is an optical sensor. 
     
     
         144 . The system of  claim 138 , wherein said accelerometer is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said handheld device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said handheld device in a z-axis direction. 
     
     
         145 . The system of  claim 144 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         146 . The system of  claim 138 , wherein said first output is generated at a sampling rate of 200 samples/second. 
     
     
         147 . The system of  claim 139 , wherein said wireless transceiver is a Bluetooth® transceiver. 
     
     
         148 . The system of  claim 138 , further comprising: a plurality of buttons disposed on a housing of said handheld device; and at least one LED disposed on said housing. 
     
     
         149 . The system of  claim 138 , wherein said first output includes position data values. 
     
     
         150 . The system of  claim 138 , wherein said processing unit performs said two-dimensional rotational transformation on translational motion detected by said sensor. 
     
     
         151 . The system of  claim 138 , wherein said processing unit performs said two-dimensional rotational transform on rotational motion detected by said sensor. 
     
     
         152 . The system of  claim 138 , wherein said processing unit performs said two-dimensional rotational transform on both translational motion and rotational motion detected by said sensor. 
     
     
         153 . The system of  claim 138 , wherein at least one of said first output and said at least one second output are processed prior to said compensating. 
     
     
         154 . The system of  claim 153 , wherein said processing prior to said compensating includes compensating said at least one of said first output and said at least one second output for offset bias. 
     
     
         155 . The system of  claim 153 , wherein said processing prior to compensating includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         156 . The system of  claim 138 , wherein said handheld device is a 3D pointing device. 
     
     
         157 . A method comprising:
 generating, from a first sensor, a first output associated with motion of a handheld device;   detecting, by a second sensor, acceleration of said handheld device and outputting at least one second output; and   processing said first output and said at least one second output, said processing including:
 determining an orientation in which said handheld device is held using said at least one second output; and 
 compensating said first output based on said determined orientation by performing a two-dimensional rotational transform on said first output to generate an output which is substantially independent of said orientation. 
   
     
     
         158 . The method of  claim 157 , further comprising: transmitting data from said handheld device to a system controller, wherein said processing is performed within one of said handheld device and said system controller. 
     
     
         159 . The method of  claim 157 , wherein said first sensor is a camera. 
     
     
         160 . The method of  claim 157 , wherein said first sensor is a rotational sensor. 
     
     
         161 . The method of  claim 157 , wherein said first sensor is a magnetometer. 
     
     
         162 . The method of  claim 157 , wherein said first sensor is an optical sensor. 
     
     
         163 . The method of  claim 157 , wherein said second sensor is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said handheld device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said handheld device in a z-axis direction. 
     
     
         164 . The method of  claim 163 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         165 . The method of  claim 157 , wherein said first output is generated at a sampling rate of 200 samples/second. 
     
     
         166 . The method of  claim 158 , wherein said step of transmitting further comprises: wirelessly transmitting said data in accordance with Bluetooth®. 
     
     
         167 . The method of  claim 157 , further comprising: disposing a plurality of buttons and at least one LED on a housing of said handheld device. 
     
     
         168 . The method of  claim 157 , wherein said first output includes position data values. 
     
     
         169 . The method of  claim 157 , wherein said processing performs said two-dimensional rotational transform on translational motion detected by said first sensor. 
     
     
         170 . The method of  claim 157 , wherein said processing performs said two-dimensional rotational transform on rotational motion detected by said first sensor. 
     
     
         171 . The method of  claim 157 , wherein said processing performs said two-dimensional rotational transform on both translational motion and rotational motion detected by said first sensor. 
     
     
         172 . The method of  claim 157 , further comprising: processing at least one of said first output and said at least one second output prior to said compensating. 
     
     
         173 . The method of  claim 172 , wherein said processing prior to said compensating includes compensating said at least one of said first output and said at least one second output for offset bias. 
     
     
         174 . The method of  claim 172 , wherein said processing prior to said compensating includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         175 . The method of  claim 157 , wherein said handheld device is a 3D pointing device. 
     
     
         176 . A system comprising:
 (a) a pointing device including:
 a sensor for generating a first output associated with motion of said pointing device; and 
 an accelerometer for detecting acceleration of said pointing device and outputting at least one second output; and 
   (b) a microcontroller for receiving and processing said first output from said sensor and said at least one second output from said accelerometer, said processing including:
 determining an orientation in which said pointing device is held using said at least one second output; and 
 correcting said first output based on said determined orientation by performing a two-dimensional rotation normalization on said first output to generate an output which is substantially independent of said orientation. 
   
     
     
         177 . The system of  claim 176 , wherein said system further comprises: a processing unit; a RF transceiver, disposed in said pointing device, for transmitting data from said pointing device to said processing unit; wherein said microcontroller is disposed within one of said pointing device and said processing unit. 
     
     
         178 . The system of  claim 176 , wherein said sensor is a camera. 
     
     
         179 . The system of  claim 176 , wherein said sensor is a rotation sensor. 
     
     
         180 . The system of  claim 176 , wherein said sensor is a magnetometer. 
     
     
         181 . The system of  claim 176 , wherein said sensor is an optical sensor. 
     
     
         182 . The system of  claim 176 , wherein said accelerometer is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said pointing device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said pointing device in a z-axis direction. 
     
     
         183 . The system of  claim 182 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         184 . The system of  claim 176 , wherein said first output is generated at a sampling rate of 50 samples/second. 
     
     
         185 . The system of  claim 177 , wherein said RF transceiver is a Bluetooth® transceiver. 
     
     
         186 . The system of  claim 176 , further comprising: a plurality of buttons disposed on a housing of said pointing device; and at least one LED disposed on said housing. 
     
     
         187 . The system of  claim 176 , wherein said first output includes position data values. 
     
     
         188 . The system of  claim 176 , wherein said microcontroller performs said two-dimensional rotation normalization on panning motion detected by said sensor. 
     
     
         189 . The system of  claim 176 , wherein said microcontroller performs said two-dimensional rotation normalization on rotation motion detected by said sensor. 
     
     
         190 . The system of  claim 176 , wherein said microcontroller performs said two-dimensional rotation normalization on both panning motion and rotation motion detected by said sensor. 
     
     
         191 . The system of  claim 176 , wherein at least one of said first output and said at least one second output are processed prior to said correcting. 
     
     
         192 . The system of  claim 191 , wherein said processing prior to said correcting includes correcting said at least one of said first output and said at least one second output for offset bias. 
     
     
         193 . The system of  claim 191 , wherein said processing prior to correcting includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         194 . The system of  claim 176 , wherein said pointing device is a 3D pointing device. 
     
     
         195 . A method comprising:
 generating, from a first sensor, a first output associated with motion of a pointing device;   detecting, by a second sensor, acceleration of said pointing device and outputting at least one second output; and   processing said first output and said at least one second output, said processing including:
 determining an orientation in which said pointing device is held using said at least one second output; and 
 correcting said first output based on said determined orientation by performing a two-dimensional rotation normalization on said first output to generate an output which is substantially independent of said orientation. 
   
     
     
         196 . The method of  claim 195 , further comprising: transmitting data from said pointing device to a processing unit, wherein said processing is performed within one of said pointing device and said processing unit. 
     
     
         197 . The method of  claim 195 , wherein said first sensor is a camera. 
     
     
         198 . The method of  claim 195 , wherein said first sensor is a rotation sensor. 
     
     
         199 . The method of  claim 195 , wherein said first sensor is a magnetometer. 
     
     
         200 . The method of  claim 195 , wherein said first sensor is an optical sensor. 
     
     
         201 . The method of  claim 195 , wherein said second sensor is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said pointing device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said pointing device in a z-axis direction. 
     
     
         202 . The method of  claim 201 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         203 . The method of  claim 195 , wherein said first output is generated at a sampling rate of 50 samples/second. 
     
     
         204 . The method of  claim 196 , wherein said step of transmitting further comprises: wirelessly transmitting said data in accordance with Bluetooth®. 
     
     
         205 . The method of  claim 195 , further comprising: disposing a plurality of buttons and at least one LED on a housing of said pointing device. 
     
     
         206 . The method of  claim 195 , wherein said first output includes position data values. 
     
     
         207 . The method of  claim 195 , wherein said processing performs said two-dimensional rotation normalization on panning motion detected by said first sensor. 
     
     
         208 . The method of  claim 195 , wherein said processing performs said two-dimensional rotation normalization on rotation motion detected by said first sensor. 
     
     
         209 . The method of  claim 195 , wherein said processing performs said two-dimensional rotation normalization on both panning motion and rotation motion detected by said first sensor. 
     
     
         210 . The method of  claim 195 , further comprising: processing at least one of said first output and said at least one second output prior to said correcting. 
     
     
         211 . The method of  claim 210 , wherein said processing prior to said correcting includes correcting said at least one of said first output and said at least one second output for offset bias. 
     
     
         212 . The method of  claim 210 , wherein said processing prior to said correcting includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         213 . The method of  claim 195 , wherein said pointing device is a 3D pointing device. 
     
     
         214 . The system of  claim 176 , wherein said sensor is a gyroscope sensor. 
     
     
         215 . The method of  claim 195 , wherein said first sensor is a gyroscope sensor. 
     
     
         216 . A method for using a free space pointing device comprising the steps of:
 detecting movement of said free space pointing device using an accelerometer and at least one other sensor;   determining an orientation, in which said free space pointing device is held, based on an output of said accelerometer; and   compensating said at least one other sensor's detected movement based on said determined orientation by performing a two-dimensional rotational transform on said at least one other sensor's detected movement to generate an output which is substantially independent of a tilt of said free space pointing device with reference to a predetermined axis.   
     
     
         217 . A handheld device comprising:
 a sensor configured to generate a first output associated with motion of said handheld device;   an accelerometer configured to detect acceleration of said handheld device and outputting at least one second output; and   a processing unit configured to receive and process said first output from said sensor and said at least one second output from said accelerometer, said process including:
 determining an orientation in which said handheld device is held using said at least one second output, and 
 compensating said first output based on said determined orientation by performing a two-dimensional rotational transform on said first output to generate an output which is substantially independent of a tilt of said handheld device with reference to a predetermined axis. 
   
     
     
         218 . The handheld device of  claim 217 , further comprising:
 a wireless transceiver for receiving data from said processing unit and wirelessly transmitting said data.   
     
     
         219 . A method comprising:
 generating, from a first sensor, a first output associated with motion of a handheld device;   detecting, by a second sensor, acceleration of said handheld device and outputting at least one second output; and   processing said first output and said at least one second output, said processing including:
 determining an orientation in which said handheld device is held using said at least one second output; and 
 compensating said first output based on said determined orientation by performing a two-dimensional rotational transform on said first output to generate an output which is substantially independent of a tilt of said handheld device with reference to a predetermined axis. 
   
     
     
         220 . The method of  claim 219 , further comprising:
 transmitting data from said handheld device to a system controller, wherein said processing is performed within one of said handheld device and said system controller.   
     
     
         221 . The method of  claim 219 , wherein said first sensor is a camera. 
     
     
         222 . The method of  claim 219 , wherein said first sensor is a rotational sensor. 
     
     
         223 . The method of  claim 219 , wherein said first sensor is a magnetometer. 
     
     
         224 . The method of  claim 219 , wherein said first sensor is an optical sensor. 
     
     
         225 . The method of  claim 219 , wherein said second sensor is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said handheld device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said handheld device in a z-axis direction. 
     
     
         226 . The method of  claim 225 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         227 . The method of  claim 219 , wherein said first output is generated at a sampling rate of 200 samples/second. 
     
     
         228 . The method of  claim 220 , wherein said step of transmitting further comprises:
 wirelessly transmitting said data in accordance with Bluetooth®.   
     
     
         229 . The method of  claim 219 , further comprising:
 disposing a plurality of buttons and at least one LED on a housing of said handheld device.   
     
     
         230 . The method of  claim 219 , wherein said first output includes position data values. 
     
     
         231 . The method of  claim 219 , wherein said processing performs said two-dimensional rotational transform on translational motion detected by said first sensor. 
     
     
         232 . The method of  claim 219 , wherein said processing performs said two-dimensional rotational transform on rotational motion detected by said first sensor. 
     
     
         233 . The method of  claim 219 , wherein said processing performs said two-dimensional rotational transform on both translational motion and rotational motion detected by said first sensor. 
     
     
         234 . The method of  claim 219 , further comprising:
 processing at least one of said first output and said at least one second output prior to said compensating.   
     
     
         235 . The method of  claim 234 , wherein said processing prior to said compensating includes compensating said at least one of said first output and said at least one second output for offset bias. 
     
     
         236 . The method of  claim 234 , wherein said processing prior to said compensating includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         237 . The method of  claim 219 , wherein said handheld device is a 3D pointing device. 
     
     
         238 . A method for using a pointing device comprising the steps of:
 detecting movement of said pointing device using an accelerometer and at least one other sensor;   determining an orientation, in which said pointing device is held, based on an output of said accelerometer; and   correcting said at least one other sensor's detected movement based on said determined orientation by performing a two-dimensional rotational normalization on said at least one other sensor's detected movement to generate an output which is substantially independent of a pitch of said pointing device with reference to a predetermined axis.   
     
     
         239 . A pointing device comprising:
 a sensor configured to generate a first output associated with motion of said pointing device;   an accelerometer configured to detect acceleration of said pointing device and outputting at least one second output; and   a microcontroller configured to receive and process said first output from said sensor and said at least one second output from said accelerometer, said process including:
 determining an orientation in which said pointing device is held using said at least one second output, and 
 correcting said first output based on said determined orientation by performing a two-dimensional rotational normalization on said first output to generate an output which is substantially independent of a pitch of said pointing device with reference to a predetermined axis. 
   
     
     
         240 . The pointing device of  claim 239 , further comprising:
 a wireless transceiver for receiving data from said microcontroller and wirelessly transmitting said data.   
     
     
         241 . A method comprising:
 generating, from a first sensor, a first output associated with motion of a pointing device;   detecting, by a second sensor, acceleration of said pointing device and outputting at least one second output; and   processing said first output and said at least one second output, said processing including:
 determining an orientation in which said pointing device is held using said at least one second output; and 
 correcting said first output based on said determined orientation by performing a two-dimensional rotational normalization on said first output to generate an output which is substantially independent of a pitch of said pointing device with reference to a predetermined axis. 
   
     
     
         242 . The method of  claim 241 , further comprising:
 transmitting data from said pointing device to a system controller, wherein said processing is performed within one of said pointing device and said system controller.   
     
     
         243 . The method of  claim 241 , wherein said first sensor is a camera. 
     
     
         244 . The method of  claim 241 , wherein said first sensor is a rotational sensor. 
     
     
         245 . The method of  claim 241 , wherein said first sensor is a magnetometer. 
     
     
         246 . The method of  claim 241 , wherein said first sensor is an optical sensor. 
     
     
         247 . The method of  claim 241 , wherein said second sensor is a multi-axis accelerometer and wherein said at least one second output includes a value y generated by said multi-axis accelerometer associated with acceleration of said pointing device in a y-axis direction and a value z generated by said multi-axis accelerometer associated with acceleration of said pointing device in a z-axis direction. 
     
     
         248 . The method of  claim 247 , wherein said multi-axis accelerometer is a 3-axis accelerometer. 
     
     
         249 . The method of  claim 241 , wherein said first output is generated at a sampling rate of 200 samples/second. 
     
     
         250 . The method of  claim 242 , wherein said step of transmitting further comprises:
 wirelessly transmitting said data in accordance with Bluetooth®.   
     
     
         251 . The method of  claim 241 , further comprising:
 disposing a plurality of buttons and at least one LED on a housing of said pointing device.   
     
     
         252 . The method of  claim 241 , wherein said first output includes position data values. 
     
     
         253 . The method of  claim 241 , wherein said processing performs said two-dimensional rotational normalization on translational motion detected by said first sensor. 
     
     
         254 . The method of  claim 241 , wherein said processing performs said two-dimensional rotational normalization on rotational motion detected by said first sensor. 
     
     
         255 . The method of  claim 241 , wherein said processing performs said two-dimensional rotational normalization on both translational motion and rotational motion detected by said first sensor. 
     
     
         256 . The method of  claim 241 , further comprising:
 processing at least one of said first output and said at least one second output prior to said correcting.   
     
     
         257 . The method of  claim 256 , wherein said processing prior to said correcting includes correcting said at least one of said first output and said at least one second output for offset bias. 
     
     
         258 . The method of  claim 256 , wherein said processing prior to said correcting includes converting said at least one of said first output and said at least one second output into different units. 
     
     
         259 . The method of  claim 241 , wherein said pointing device is a 3D pointing device.

Join the waitlist — get patent alerts

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

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