IP Library Granted Patent US 10,331,228
Granted Patent B2
US 10,331,228 · App. 14/307,428 · Granted Jun 25, 2019

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

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,331,228
App. No.
14/307,428
Granted
Jun 25, 2019
Kind
B2
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 (149)

1. A system comprising:

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;

a handheld device 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; and

a handheld device transceiver for transmitting one or more processed values output by the handheld device processing unit; and

a host computing device, comprising:

a host transceiver for receiving the one or more processed values output by the handheld device transceiver; and

a host processing unit configured to:

calculate a three-dimensional position and pointing orientation of the handheld device based on the one or more processed values;

determine that the pointing orientation of the handheld device is directed toward a three-dimensional Gaussian blob corresponding to a host-controllable electronic device; and

alter operation of the host-controllable electronic device based on the one or more processed values.

2. A device-control system comprising:

(a) a handheld device including:

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;

a handheld device 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; and

a handheld device transceiver for transmitting one or more processed values output by the handheld device processing unit; and

(b) a host computing device, comprising:

a host transceiver for receiving the one or more processed values output by the handheld device transceiver; and

a host processing unit configured to:

calculate a pointing orientation of the handheld device based on the one or more processed values;

determine that the pointing orientation of the handheld device is directed toward a three-dimensional Gaussian blob corresponding to a host-controllable electronic device; and

alter operation of the host-controllable electronic device based on the one or more processed values, the one or more processed values corresponding to a gesture performed by the handheld device.

3. 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;

processing said first output from and said at least one second output to give one or more processed values,

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;

transmitting the one or more processed values to a host computing device;

at the host computing device, calculating a three-dimensional position and pointing orientation of the handheld device based on the one or more processed values;

determining that the pointing orientation of the handheld device is directed toward a three-dimensional Gaussian blob corresponding to a host-controllable electronic device; and

altering operation of the host-controllable electronic device based on the one or more processed values.

4. A system comprising:

a pointing device, including:

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;

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; and

a transceiver for transmitting one or more processed values output by the microcontroller; and

a host computing device configured to receive the one or more processed values output by the microcontroller and, in conjunction with recorded speech input provided by a human user, control behavior of a computer-controlled electronic device based on a calculated pointing orientation of the pointing device corresponding to a three-dimensional Gaussian blob associated with the computer-controlled electronic device.

5. A system comprising:

(a) a pointing device including:

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;

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; and

a pointing device transceiver for transmitting one or more processed values output by the microcontroller; and

(b) a host computing device, comprising:

a host transceiver for receiving the one or more processed values output by the pointing device transceiver; and

a host processing unit configured to:

calculate a three-dimensional position and pointing orientation of the pointing device based on the one or more processed values;

determine that the pointing orientation of the pointing device is directed toward a three-dimensional Gaussian blob corresponding to a host-controllable electronic device; and

in conjunction with recorded speech input provided by a human user, alter operation of the host-controllable electronic device based on the one or more processed values.

6. 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;

processing said first output 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; and

identifying which of a plurality of host-controllable electronic devices corresponds to the orientation in which said pointing device is being held based on the orientation corresponding to a three-dimensional Gaussian blob associated with an identified host-controllable electronic device, and controlling operation of the identified host-controllable electronic device in conjunction with recorded speech input provided by a human user.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2017
From: WILSON, ANDREW
To: MICROSOFT CORPORATION
Reel/Frame 043000/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →