IP Library Granted Patent US 10,838,515
Granted Patent B1
US 10,838,515 · App. 16/367,032 · Granted Nov 17, 2020

Tracking using controller cameras

Inventors: Eldad Yitzhak (San Mateo, CA); Oskar Linde (San Carlos, CA); Andrew Melim (Seattle, WA); Samuel Redmond D'Amico (San Francisco, CA)
Assignee: Facebook, Inc.
G06F3/0325G06F3/011G06F3/0346G06T7/74G06T7/75G06T2207/30196
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,838,515
App. No.
16/367,032
Granted
Nov 17, 2020
Kind
B1
Abstract

A virtual reality (VR) system tracks the location and position of a controller using image sensors on a headset and a controller. The headset and controller provide a first and second view of a user's environment. Using its camera, the headset generates a map of the environment and identifies its location within it. Based headset's location, the VR system generates a simulated world of the environment and displays it to the user. The headset also estimates the location of the controller. Based on the estimated location, the headset sends a portion of the map to the controller. The controller determines its pose using the portion of the map, the image sensors, and additional sensors. The controller sends its pose and an updated portion of the map to the headset. Based on the controller's pose and updated portion of the map, the VR system modifies the content displayed to the user.

Claims (68)

1. A method comprising:

identifying a map of an environment, wherein a headset worn by a user and a controller are located within the environment, and wherein the headset and the controller each contain an image sensor;

identifying a location of the headset within the environment based on an image captured by the image sensor of the headset;

generating and displaying content for the user on the headset based on the location of the headset within the environment;

determining an estimated location of the controller;

selecting a portion of the map to send to the controller based on the estimated location of the controller;

sending the selected portion of the map to the controller;

receiving, from the controller, a pose of the controller, wherein the pose was determined by the controller using the image sensor of the controller and the selected portion of the map; and

modifying the content displayed on the headset based on the pose received from the controller.

2. The method of claim 1 , further comprising:

receiving an indication that the controller has updated the received portion of the map; and

updating the map of the environment.

3. The method of claim 1 , wherein the controller determines its pose with respect to its environment using one of a gyroscope, an accelerometer, and a magnetometer.

4. The method of claim 1 , wherein the map of the environment is a point cloud environment.

5. The method of claim 1 , wherein the selected portion of the map includes one or more features of the map.

6. The method of claim 1 , further comprising:

receiving, from the controller, features of the environment, wherein the features were not in the selected portion of the map; and

updating the map of the environment to include the features.

7. The method of claim 1 , further comprising:

tracking the user's movement through the environment using the image sensor of the headset and the image sensor of the controller; and

updating the content displayed on the headset based on the user's movement through the environment.

8. The method of claim 7 , wherein the updated content includes a portion of the user's body.

9. The method of claim 1 , further comprising:

determining a position of the user by applying a computational model to a set of images from the image sensor of the headset or the image sensor of the controller; and

updating the content displayed on the headset based on output of the computational model.

10. A non-transitory computer-readable storage medium containing computer program code that, when executed by a processor, causes the processor to perform steps comprising:

identifying a map of an environment, wherein a headset worn by a user and a controller are located within the environment, and wherein the headset and the controller each contain an image sensor;

identifying a location of the headset within the environment based on an image captured by the image sensor of the headset;

generating and displaying content for the user on the headset based on the location of the headset within the environment;

determining an estimated location of the controller;

selecting a portion of the map to send to the controller based on the estimated location of the controller;

sending the selected portion of the map to the controller;

receiving, from the controller, a pose of the controller, wherein the pose was determined by the controller using the image sensor of the controller and the selected portion of the map; and

modifying the content displayed on the headset based on the pose received from the controller.

11. The non-transitory computer-readable storage medium of claim 10 , the steps further comprising:

receiving an indication that the controller has updated the received portion of the map; and

updating the map of the environment.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the selected portion of the map includes one or more features of the map.

13. The non-transitory computer-readable storage medium of claim 10 , the steps further comprising:

receiving, from the controller, features of the environment, wherein the features were not in the selected portion of the map; and

updating the map of the environment to include the features.

14. The non-transitory computer-readable storage medium of claim 10 , the steps further comprising:

tracking the user's movement through the environment using the image sensor of the headset and the image sensor of the controller; and

updating the content displayed on the headset based on the user's movement through the environment.

15. The non-transitory computer-readable storage medium of claim 10 , the steps further comprising:

determining a position of the user by applying a computational model to a set of images from the image sensor of the headset or the image sensor of the controller; and

updating the content displayed on the headset based on output of the computational model.

16. A system comprising:

a processor; and

a non-transitory computer-readable storage medium containing instructions that, when executed by the processor, cause the processor to:

identify a map of an environment, wherein a headset worn by a user and a controller are located within the environment, and wherein the headset and the controller each contain an image sensor;

identify a location of the headset within the environment based on an image captured by the image sensor of the headset;

generate and display content for the user on the headset based on the location of the headset within the environment;

determine an estimated location of the controller;

select a portion of the map to send to the controller based on the estimated location of the controller;

send the selected portion of the map to the controller;

receive, from the controller, a pose of the controller, wherein the pose was determined by the controller using the image sensor of the controller and the selected portion of the map; and

modify the content displayed on the headset based on the pose received from the controller.

17. The system of claim 16 , the non-transitory computer-readable storage medium further containing instructions that cause the processor to:

receive an indication that the controller has updated the received portion of the map; and

update the map of the environment.

18. The system of claim 16 , the non-transitory computer-readable storage medium further containing instructions that cause the processor to:

track the user's movement through the environment using the image sensor of the headset and the image sensor of the controller; and

update the content displayed on the headset based on the user's movement through the environment.

19. The system of claim 18 , wherein the updated content includes a portion of the user's body.

20. The system of claim 16 , the non-transitory computer-readable storage medium further containing instructions that cause the processor to:

determine a position of the user by applying a computational model to a set of images from the image sensor of the headset or the image sensor of the controller; and

update the content displayed on the headset based on output of the computational model.

Assignments (2)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2019
From: YITZHAK, ELDAD; LINDE, OSKAR; MELIM, ANDREW; D'AMICO, SAMUEL REDMOND
To: FACEBOOK, INC.
Reel/Frame 048794/0566 →
Cited By (1)
US 12,646,211