System and method for determining 3D orientation of a pointing device
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-modified1 . 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.