IP Library › Granted Patent US 11,461,955
Granted Patent B2
US 11,461,955 · App. 17/445,704 · Granted Oct 4, 2022

Holographic palm raycasting for targeting virtual objects

Inventors: Sheng Kai Tang (Redmond, WA); Julia Schwarz (Redmond, WA); Jason Michael Ray (Seattle, WA); Sophie Stellmach (Kirkland, WA); Thomas Matthew Gable (Seattle, WA); Casey Leon Meekhof (Redmond, WA); Nahil Tawfik Sharkasi (Woodinville, WA); Nicholas Ferianc Kamuda (Seattle, WA); Ramiro S. Torres (Seattle, WA); Kevin John Appel (Seattle, WA); Jamie Bryant Kirschenbaum (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06T15/06G02B27/017G06F3/017G06T7/521G06T19/003
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 11,461,955
App. No.
17/445,704
Granted
Oct 4, 2022
Kind
B2
Abstract

A head-mounted display comprises a display device and an outward-facing depth camera. A storage machine comprises instructions executable by a logic machine to present one or more virtual objects on the display device, to receive information from the depth camera about an environment, and to determine a position of the head-mounted display within the environment. Based on the position of the head-mounted display, a position of a joint of a user's arm is inferred. Based on the information received from the depth camera, a position of a user's hand is determined. A ray is cast from a portion of the user's hand based on the position of the joint of the user's arm and the position of the user's hand. Responsive to the ray intersecting with one or more control points of a virtual object, the user is provided with an indication that the virtual object is being targeted.

Claims (56)

1. A system for a head-mounted display, comprising:

a frame;

a display device;

an outward-facing depth camera positioned on the frame; and

a storage machine comprising instructions executable by a logic machine to:

receive information from the depth camera about an environment;

present virtual content on the display device so that the virtual content appears to be positioned within the environment;

determine a position of the head-mounted display within the environment;

assign a position within the environment to a first joint of a user's limb that is located outside of a field-of-view of the depth camera, the assigned position based at least on the determined position of the head-mounted display and a pre-determined spatial relationship between the first joint of the user's limb and the head-mounted display;

determine a position of a second joint of the user's limb, distal to the first joint based at least on pixels of a depth map corresponding to the user as determined from the information received from the depth camera;

determine a ray from a portion of the second joint of the user's limb based on the position of the first joint of the user's limb and the position of the second joint of the user's limb; and

responsive to the ray intersecting with an object positioned within the environment, indicate to the user that the object is being targeted.

2. The system of claim 1 , wherein the object is a real-world object.

3. The system of claim 1 , wherein the storage machine further comprises instructions executable by the logic machine to:

recognize a selection gesture from the second joint of the user's limb based on information received from the depth camera; and

select the targeted object responsive to recognizing the selection gesture.

4. The system of claim 3 , wherein the second joint of the user's limb is a hand, and wherein the storage machine further comprises instructions executable by the logic machine to:

recognize a manipulation gesture from fingers of the user's hand based on information received from the depth camera; and

manipulate the selected object responsive to recognizing the manipulation gesture.

5. The system of claim 4 , wherein the manipulation gesture is a two-hand manipulation gesture.

6. The system of claim 3 , wherein indicating to the user that the object is being targeted includes presenting a targeting cursor at a terminus of the ray opposite the second joint of the user's limb.

7. The system of claim 6 , wherein the storage machine further comprises instructions executable by the logic machine to:

adjust an appearance of the targeting cursor responsive to recognizing the selection gesture from the second joint of the user's limb.

8. The system of claim 1 , wherein the first joint of the user's limb is a shoulder joint.

9. The system of claim 1 , wherein the first joint of the user's limb is an elbow joint.

10. The system of claim 1 , wherein the second joint of the user's limb is a palm.

11. The system of claim 1 , wherein the second joint of the user's limb is a knuckle.

12. The system of claim 1 , wherein the second joint of the user's limb is a wrist.

13. The system of claim 1 , wherein the storage machine further comprises instructions executable by the logic machine to displaying the determined ray on the display device.

14. A system for a head-mounted display, comprising:

a frame;

a display device;

an outward-facing depth camera positioned on the frame; and

a storage machine comprising instructions executable by a logic machine to:

receive information from the depth camera about an environment;

present virtual content on the display device so that the virtual content appears to be positioned within the environment;

determine a position of the head-mounted display within the environment;

determine that a distal joint of a user's limb is absent from a field-of-view of the depth camera based on the information received from the depth camera;

assign a position within the environment to a proximal joint of the user's limb that is located outside of the field-of-view of the depth camera, the assigned position based at least on the determined position of the head-mounted display, a pre-determined spatial relationship between the proximal joint of the user's limb and the head-mounted display, and the absence of the distal joint of the user's limb from the field-of-view of the depth camera;

assign a position within the environment to distal joint of the user's limb based at least on the inferred position of the proximal joint of the user's limb;

determine a ray from the distal joint of the user's limb based on the inferred position of the proximal joint of the user's limb and the inferred position of the distal joint of the user's limb; and

responsive to the determined ray intersecting with an object positioned within the environment, indicate to the user that the object is being targeted.

15. The system of claim 14 , wherein the absence of the distal joint of the user's limb from the field-of-view of the depth camera is used to limit possible assigned positions for the proximal joint of the user's limb.

16. The system of claim 14 , wherein indicating to the user that the object is being targeted includes presenting a targeting cursor at a terminus of the ray opposite the distal joint of the user's limb.

17. The system of claim 14 , wherein the object is a real-world object.

18. A method, comprising:

receiving information from an outward-facing head-mounted depth camera about an environment;

presenting one or more virtual objects on a head-mounted display so that the virtual objects appear to be positioned within the environment;

determining a position of the head-mounted display within the environment;

assigning a position within the environment to a first joint of a user's limb that is located outside of a field-of-view of the depth camera, the assigned position based at least on the determined position of the head-mounted display and a pre-determined spatial relationship between the first joint of the user's limb and the head-mounted display;

determining a position of a second joint of the user's limb, distal to the first joint, based at least on pixels of a depth map corresponding to the user as determined from the information received from the depth camera;

determining a ray from a portion of the second joint of the user's limb based on the assigned position of the first joint of the user's limb and the position of the second joint of the user's limb; and

responsive to the determined ray intersecting with a virtual object positioned within the environment, indicate to the user that the virtual object is being targeted.

19. The method of claim 18 , further comprising:

recognizing a selection gesture from the joint of the user's limb based on information received from the depth camera; and

selecting the virtual object responsive to recognizing the selection gesture.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2021
From: TANG, SHENG KAI; SCHWARZ, JULIA; RAY, JASON MICHAEL; STELLMACH, SOPHIE; GABLE, THOMAS MATTHEW; MEEKHOF, CASEY LEON; SHARKASI, NAHIL TAWFIK; KAMUDA, NICHOLAS FERIANC; TORRES, RAMIRO S.; APPEL, KEVIN JOHN; KIRSCHENBAUM, JAMIE BRYANT
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 057265/0428 →
Continuity (3)
Continuation 16299052 · Mar 11, 2019
Provisional Application 62791605 · Jan 11, 2019
Related Publication 20210383594A1 · Dec 9, 2021