IP Library Granted Patent US 11,989,843
Granted Patent B2
US 11,989,843 · App. 17/846,930 · Granted May 21, 2024

Robotic learning of assembly tasks using augmented reality

Inventors: Kai Zhou (Wiener Neudorf, AT); Adrian Schoisengeier (Vienna, AT)
Assignee: Snap Inc.
G06T19/006B25J13/08G06F3/012G06F3/017G06T17/00G06T19/20G06V20/64G06T2200/08G06T2210/56G06T2219/2016
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,989,843
App. No.
17/846,930
Granted
May 21, 2024
Kind
B2
Abstract

A method for programming a robotic system by demonstration is described. In one aspect, the method includes displaying a first virtual object in a display of an augmented reality (AR) device, the first virtual object corresponding to a first physical object in a physical environment of the AR device, tracking, using the AR device, a manipulation of the first virtual object by a user of the AR device, identifying an initial state and a final state of the first virtual object based on the tracking, the initial state corresponding to an initial pose of the first virtual object, the final state corresponding to a final pose of the first virtual object, and programming by demonstration a robotic system using the tracking of the manipulation of the first virtual object, the first initial state of the first virtual object, and the final state of the first virtual object.

Claims (71)

1. A method comprising:

displaying a first virtual object in a display of an augmented reality (AR) device, the first virtual object corresponding to a first physical object in a physical environment of the AR device;

tracking, using the AR device, a manipulation of the first virtual object by a user of the AR device, the manipulation of the first virtual object being relative to a second physical object in the physical environment or a second virtual object corresponding to the second physical object;

identifying an initial state, a plurality of intermediate states, and a final state of the first virtual object based on the tracking, the initial state corresponding to an initial pose of the first virtual object relative to the second physical object or the second virtual object, the final state corresponding to a final pose of the first virtual object relative to the second physical object or the second virtual object, the plurality of intermediate states being between the initial state and the final state; and

programming by demonstration a robotic system using the tracking of the manipulation of the first virtual object relative to the second physical object or the second virtual object, the initial state of the first virtual object, and the final state of the first virtual object,

wherein tracking the manipulation of the first virtual object comprises: identifying hand gestures of the user, tracking hand gestures of the user over a period of time, tracking, using a 6 degrees-of-freedom tracking system at the AR device, a pose of the AR device over the period of time, and identifying a trajectory of the AR device based on the pose of the AR device over the period of time; and

wherein the initial pose of the first virtual object, the plurality of intermediate states, and the final pose of the first virtual object are based on the tracked hand gestures of the user and the trajectory of the AR device.

2. The method of claim 1 , wherein tracking further comprises:

capturing three-dimensional spatial information of the physical environment with a sensor of the AR device;

generating a three-dimensional point cloud based on the three-dimensional spatial information;

identifying the first physical object and the second physical object from the three-dimensional point cloud; and

rendering the first virtual object based on the identified first physical object.

3. The method of claim 2 , further comprising:

rendering the second virtual object based on the identified second physical object.

4. The method of claim 2 , further comprising:

identifying the hand gestures of the user relative to the three-dimensional point cloud.

5. The method of claim 4 , further comprising:

adjusting a pose of the first virtual object based on the tracked hand gestures of the user over the period of time; and

re-rendering the first virtual object in the display of the AR device based on the adjusted pose of the first virtual object, the first virtual object appearing to be anchored to hands of the user.

6. The method of claim 4 , further comprising:

receiving a request to start a recording of programming by demonstration at the AR device; and

receiving a request to end the recording of programming by demonstration at the AR device,

wherein the period of time corresponds to the request to start and the request to end the recording.

7. The method of claim 1 , wherein the first virtual object includes a first 3D model of the first physical object, wherein the second virtual object includes a second 3D model of the second physical object.

8. The method of claim 7 , wherein the first 3D model is a first scaled down version of the first physical object or a first scaled up version of the first physical object, wherein the second 3D model is a second scaled down version of the second physical object or a second scaled up version of the second physical object.

9. The method of claim 1 , wherein the first virtual object is displayed at a first location in the physical environment distinct from a second location of the first physical object in the physical environment.

10. The method of claim 1 , wherein the first virtual object is displayed at a location of the first physical object in the physical environment.

11. The method of claim 1 , wherein programming comprises:

sending, to the robotic system, demonstration data indicating tracking of the manipulation of the first virtual object relative to the second physical object or the second virtual object, the initial state of the first virtual object, the plurality of intermediate states of the first virtual object, and the final state of the first virtual object,

wherein the robotic system is programmed using the demonstration data.

12. The method of claim 1 , wherein programming comprises:

sending, to a server, demonstration data indicating tracking of the manipulation of the first virtual object relative to the second physical object or the second virtual object, the initial state of the first virtual object, and the final state of the first virtual object,

wherein the server is configured to program by demonstration the robotic system using the demonstration data.

13. An augmented reality (AR) device comprising:

a display;

a processor; and

a memory storing instructions that, when executed by the processor, configure the AR device to perform operations comprising:

displaying a first virtual object in the display, the first virtual object corresponding to a first physical object in a physical environment of the AR device;

tracking, using the AR device, a manipulation of the first virtual object by a user of the AR device, the manipulation of the first virtual object being relative to a second physical object in the physical environment or a second virtual object corresponding to the second physical object;

identifying an initial state, a plurality of intermediate states, and a final state of the first virtual object based on the tracking, the initial state corresponding to an initial pose of the first virtual object relative to the second physical object or the second virtual object, the final state corresponding to a final pose of the first virtual object relative to the second physical object or the second virtual object, the plurality of intermediate states being between the initial state and the final state; and

providing, to another device, demonstration data indicating the tracking of the manipulation of the first virtual object relative to the second physical object or the second virtual object, the initial state of the first virtual object, and the final state of the first virtual object,

wherein tracking the manipulation of the first virtual object comprises: identifying hand gestures of the user, tracking hand gestures of the user over a period of time, tracking, using a 6 degrees-of-freedom tracking system at the AR device, a pose of the AR device over the period of time, and identifying a trajectory of the AR device based on the pose of the AR device over the period of time; and

wherein the initial pose of the first virtual object, the plurality of intermediate states, and the final pose of the first virtual object are based on the tracked hand gestures of the user and the trajectory of the AR device.

14. The AR device of claim 13 , wherein tracking further comprises:

capturing three-dimensional spatial information of the physical environment with a sensor of the AR device;

generating a three-dimensional point cloud based on the three-dimensional spatial information;

identifying the first physical object and the second physical object from the three-dimensional point cloud; and

rendering the first virtual object based on the identified first physical object.

15. The AR device of claim 14 , wherein the operations comprise:

rendering the second virtual object based on the identified second physical object.

16. The AR device of claim 14 , wherein the operations comprise:

Identifying the hand gestures of the user relative to the three-dimensional point cloud.

17. The AR device of claim 16 , wherein the operations comprise:

adjusting a pose of the first virtual object based on the tracked hand gestures of the user over the period of time; and

re-rendering the first virtual object in the display of the AR device based on the adjusted pose of the first virtual object, the first virtual object appearing to be anchored to hands of the user.

18. The AR device of claim 16 , wherein the operations comprise:

receiving a request to start a recording of programming by demonstration at the AR device; and

receiving a request to end the recording of programming by demonstration at the AR device,

wherein the period of time corresponds to the request to start and the request to end the recording.

19. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:

display a first virtual object in a display of an augmented reality (AR) device, the first virtual object corresponding to a first physical object in a physical environment of the AR device;

track, using the AR device, a manipulation of the first virtual object by a user of the AR device, the manipulation of the first virtual object being relative to a second physical object in the physical environment or a second virtual object corresponding to the second physical object;

identify an initial state, a plurality of intermediate states, and a final state of the first virtual object based on the tracking, the initial state corresponding to an initial pose of the first virtual object relative to the second physical object or the second virtual object, the final state corresponding to a final pose of the first virtual object relative to the second physical object or the second virtual object, the plurality of intermediate states being between the initial state and the final state; and

program by demonstration a robotic system using the tracking of the manipulation of the first virtual object relative to the second physical object or the second virtual object, the initial state of the first virtual object, and the final state of the first virtual object,

wherein tracking the manipulation of the first virtual object comprises: identifying hand gestures of the user, tracking hand gestures of the user over a period of time, tracking, using a 6 degrees-of-freedom tracking system at the AR device, a pose of the AR device over the period of time, and identifying a trajectory of the AR device based on the pose of the AR device over the period of time; and

wherein the initial pose of the first virtual object, the plurality of intermediate states, and the final pose of the first virtual object are based on the tracked hand gestures of the user and the trajectory of the AR device.

20. The computer-readable storage medium of claim 19 , wherein tracking further comprises:

capture three-dimensional spatial information of the physical environment with a sensor of the AR device;

generate a three-dimensional point cloud based on the three-dimensional spatial information;

identify the first physical object and the second physical object from the three-dimensional point cloud; and

render the first virtual object based on the identified first physical object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2022
From: ZHOU, KAI; SCHOISENGEIER, ADRIAN
To: SNAP INC.
Reel/Frame 060279/0676 →
Continuity (1)
Related Publication 20230419615A1 · Dec 28, 2023
Cited By (3)
US 12,573,077 US 12,657,753 US 12,664,667