Tracking arm movements to generate inputs for computer systems
First Claim
1. A system, comprising:
- a first sensor module having an inertial measurement unit and attached to an upper arm of a user, the first sensor module generating first motion data identifying an orientation of the upper arm;
a second sensor module having an inertial measurement unit and attached to a hand of the user, the second sensor module generating second motion data identifying an orientation of the hand; and
a computing device coupled to the first sensor module and the second sensor module through communication links, the computing device calculating, based on the orientation of the upper arm and the orientation of the hand, an orientation of a forearm connected to the hand by a wrist of the user and connected to the upper arm by an elbow joint of the user, wherein the computing device calculates the orientation of the forearm by;
determining a first rotation from a lengthwise direction of the upper arm to a lengthwise direction of the hand rotating along a first axis that is perpendicular to both the lengthwise direction of the upper arm and the lengthwise direction of the hand;
reversing the first rotation along the first axis from the orientation of the hand to obtain a second rotation along the lengthwise direction of the upper arm;
projecting, on to a plane, the lengthwise direction of the hand to obtain a lengthwise direction of the forearm;
calculating a third rotation from the lengthwise direction of the upper arm to the lengthwise direction of the forearm along a second axis perpendicular to the plane; and
determining, by the computing device, the orientation of the forearm as a combination of an initial orientation aligned with the upper arm rotated according to the second rotation along the lengthwise direction of the upper arm and then rotated according to the third rotation along the second axis.
2 Assignments
0 Petitions
Accused Products
Abstract
A system including: a first sensor module having an inertial measurement unit and attached to an upper arm of a user, the first sensor module generating first motion data identifying an orientation of the upper arm; a second sensor module having an inertial measurement unit and attached to a hand of the user, the second sensor module generating second motion data identifying an orientation of the hand; and a computing device coupled to the first sensor module and the second sensor module through communication links, the computing device calculating, based on the orientation of the upper arm and the orientation of the hand, an orientation of a forearm connected to the hand by a wrist of the user and connected to the upper arm by an elbow joint of the user.
-
Citations
17 Claims
-
1. A system, comprising:
-
a first sensor module having an inertial measurement unit and attached to an upper arm of a user, the first sensor module generating first motion data identifying an orientation of the upper arm; a second sensor module having an inertial measurement unit and attached to a hand of the user, the second sensor module generating second motion data identifying an orientation of the hand; and a computing device coupled to the first sensor module and the second sensor module through communication links, the computing device calculating, based on the orientation of the upper arm and the orientation of the hand, an orientation of a forearm connected to the hand by a wrist of the user and connected to the upper arm by an elbow joint of the user, wherein the computing device calculates the orientation of the forearm by; determining a first rotation from a lengthwise direction of the upper arm to a lengthwise direction of the hand rotating along a first axis that is perpendicular to both the lengthwise direction of the upper arm and the lengthwise direction of the hand; reversing the first rotation along the first axis from the orientation of the hand to obtain a second rotation along the lengthwise direction of the upper arm; projecting, on to a plane, the lengthwise direction of the hand to obtain a lengthwise direction of the forearm; calculating a third rotation from the lengthwise direction of the upper arm to the lengthwise direction of the forearm along a second axis perpendicular to the plane; and determining, by the computing device, the orientation of the forearm as a combination of an initial orientation aligned with the upper arm rotated according to the second rotation along the lengthwise direction of the upper arm and then rotated according to the third rotation along the second axis. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
receiving, from a first sensor module attached to an upper arm of a user, first motion data identifying an orientation of the upper arm; receiving, from a second sensor module attached to a hand of the user, second motion data identifying an orientation of the hand; calculating, based on the orientation of the upper arm and the orientation of the hand, an orientation of a forearm connected to the hand by a wrist of the user and connected to the upper arm by an elbow joint of the user;
wherein the orientation of the forearm is calculated to be equal to a first orientation resulting from;rotating, from a second orientation aligned with the orientation of the upper arm, about a lengthwise direction of the forearm, by a first angle to arrive at third orientation; and rotating, from the third orientation, about an axis parallel to a direction from a back side of the upper arm to a front side of the upper arm, by a second angle to arrive at the first orientation; and determining a position of the hand in a three dimensional space based on the orientation of the upper arm, and the orientation of the forearm, the orientation of the hand, and a skeleton model of the upper arm, the forearm, and the hand. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A non-transitory computer storage medium storing instructions which, when executed by a computing device, instructs the computing device to perform a method, the method comprising:
-
receiving, by the computing device from a first sensor module attached to an upper arm of a user, first motion data identifying an orientation of the upper arm; receiving, by the computing device from a second sensor module attached to a hand of the user, second motion data identifying an orientation of the hand; and calculating, by the computing device based on the orientation of the upper arm and the orientation of the hand, an orientation of a forearm connected to the hand by a wrist of the user and connected to the upper arm by an elbow joint of the user, wherein the calculating comprises; calculating, by the computing device, an orientation of the hand relative to the upper arm; determining, by the computing device, a first rotation of a lengthwise direction of the hand from a lengthwise direction of the upper arm along a closest arc to the lengthwise direction of the hand in the orientation of the hand relative to the upper arm; subtracting, by the computing device, the first rotation from the orientation of the hand relative to the upper arm to obtain a second rotation of the hand along the lengthwise direction of the upper arm; projecting, on to a plane by the computing device, the lengthwise direction of the hand in the orientation of the hand relative to the upper arm to determine a lengthwise direction of the forearm relative to the upper arm; computing, by the computing device, a closest arc rotation from the lengthwise direction of the upper arm to the lengthwise direction of the forearm relative to the upper arm; and determining, by the computing device, the orientation of the forearm based on combination of a rotation from an orientation aligned with the upper arm, along the lengthwise direction of the upper arm according to the second rotation of the hand along the lengthwise direction of the upper arm and a rotation within the plane according to the closest arc rotation from the lengthwise direction of the upper arm to the lengthwise direction of the forearm relative to the upper arm. - View Dependent Claims (15, 16, 17)
-
Specification