3D pointing devices with orientation compensation and improved usability
First Claim
Patent Images
1. A method for controlling an object by a device comprising the steps of:
- detecting movement of the device using an accelerometer and at least one other sensor in the device, the movement being in a body frame of reference;
transforming the detected movement from the body frame of reference to another frame of reference; and
using the transformed movement to generate an output of the device for controlling said object,wherein the step of transforming is calculated by;
Pu=Rotate(Pb,Q)+Pdelta
Pu′
=Rotate(Pb′
,Q)
Pu″
=Rotate(Pb″
,Q)
Wu=Rotate(Wb,Q)
Wu′
=Rotate(Wb′
,Q)where;
Rotate represents a quaternion rotation operator such that Rotate(A, Q) is equal to Q*A Q where Q* is a quaternion conjugate and a vector A is a quaternion with a complex component equal to A and a real component equal to 0;
Pu is a position in the another frame of reference;
Pb is a position in the body frame of reference;
′
represents a derivative;
Wu is an angular velocity of the device in body angles in the another frame of reference;
Wb is an angular velocity of the device in body angles in the body frame of the device;
Pdelta is a difference between an origin of the another frame of reference and the body frame of reference in the another frame of reference coordinate system; and
Q is the normalized rotation guaternion that represents the rotation from the body frame to the another frame.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods according to the present invention describe 3D pointing devices which enhance usability by transforming sensed motion data from a first frame of reference (e.g., the body of the 3D pointing device) into a second frame of reference (e.g., a user'"'"'s frame of reference). One exemplary embodiment of the present invention removes effects associated with a tilt orientation in which the 3D pointing device is held by a user.
-
Citations
17 Claims
-
1. A method for controlling an object by a device comprising the steps of:
-
detecting movement of the device using an accelerometer and at least one other sensor in the device, the movement being in a body frame of reference; transforming the detected movement from the body frame of reference to another frame of reference; and using the transformed movement to generate an output of the device for controlling said object, wherein the step of transforming is calculated by;
Pu=Rotate(Pb,Q)+Pdelta
Pu′
=Rotate(Pb′
,Q)
Pu″
=Rotate(Pb″
,Q)
Wu=Rotate(Wb,Q)
Wu′
=Rotate(Wb′
,Q)where; Rotate represents a quaternion rotation operator such that Rotate(A, Q) is equal to Q*A Q where Q* is a quaternion conjugate and a vector A is a quaternion with a complex component equal to A and a real component equal to 0; Pu is a position in the another frame of reference; Pb is a position in the body frame of reference; ′
represents a derivative;Wu is an angular velocity of the device in body angles in the another frame of reference; Wb is an angular velocity of the device in body angles in the body frame of the device; Pdelta is a difference between an origin of the another frame of reference and the body frame of reference in the another frame of reference coordinate system; and Q is the normalized rotation guaternion that represents the rotation from the body frame to the another frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for controlling an object comprising:
-
a device, comprising; an accelerometer; and at least one other sensor; and
aa processor, external to the device, the processor configured to; detect movement of the pointing device using the accelerometer and the at least one other sensor in the device, the movement being in a body frame of reference; transform the detected movement from the body frame of reference to another frame of reference; and use the transformed movement to generate an output of the device for controlling said object, wherein the step of transforming is calculated by;
Pu=Rotate(Pb,Q)+Pdelta
Pu′
=Rotate(Pb′
,Q)
Pu″
=Rotate(Pb″
,Q)
Wu=Rotate(Wb,Q)
Wu′
=Rotate(Wb′
,Q)where; Rotate represents a quaternion rotation operator such that Rotate(A, Q) is equal to Q*A Q where Q* is a quaternion conjugate and a vector A is a quaternion with a complex component equal to A and a real component equal to 0; Pu is a position in the another frame of reference; Pb is a position in the body frame of reference; ′
represents a derivative;Wu is an angular velocity of the device in body angles in the another frame of reference; Wb is an angular velocity of the device in body angles in the body frame of the device; Pdelta is a difference between an origin of the another frame of reference and the body frame of reference in the another frame of reference coordinate system; and Q is the normalized rotation quaternion that represents the rotation from the body frame to the another frame. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
Specification