IP Library › Granted Patent US 12,469,234
Granted Patent B2
US 12,469,234 · App. 18/623,987 · Granted Nov 11, 2025

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 12,469,234
App. No.
18/623,987
Granted
Nov 11, 2025
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 (51)

1 . A method comprising:

displaying a virtual object in a display of a head-wearable device, the virtual object corresponding to a physical object in a physical environment;

tracking, using the head-wearable device, the virtual object by tracking hand gestures of a user of the head-wearable device that is co-located in a physical environment of the physical object;

detecting, using the head-wearable device, hands of the user grabbing the virtual object at a first location in the physical environment and releasing the virtual object at a second location in the physical environment;

defining an initial state of the virtual object at the first location and a final state of the virtual object at the second location based on the detecting; and

programming by demonstration a robotic system using the tracking of the virtual object, wherein the programming by demonstration comprises generating a robot program based on the initial state and the final state of the virtual object.

2 . The method of claim 1 , wherein tracking the virtual object comprises:

tracking a trajectory of the virtual object by tracking the trajectory of the head-wearable device in the physical environment.

3 . The method of claim 2 , wherein tracking the trajectory of the head-wearable device in the physical environment comprises: tracking, using a 6 degrees-of-freedom tracking system of the head-wearable device, a pose of the head-wearable device over a period of time,

wherein the trajectory of the head-wearable device is based on the pose of the head-wearable device over the period of time.

4 . The method of claim 3 , wherein the period of time is based on the hand gestures of the user of the head-wearable device,

wherein tracking the hand gestures of the user of the head-wearable device comprises: tracking a manipulation of the virtual object with respect to the physical environment.

5 . The method of claim 3 , wherein the period of time is based on:

detecting the hands of the user of the head-wearable device grabbing the virtual object corresponding to the first location in the physical environment, and

detecting the hands of the user of the head-wearable device releasing the virtual object corresponding to the second location in the physical environment.

6 . The method of claim 1 , wherein a perceived location of the virtual object corresponds to a physical location of the physical object in the physical environment.

7 . The method of claim 1 , wherein the virtual object is at an initial state at the first location, wherein the virtual object is at a final state at the second location,

wherein the programming by demonstration is based on the initial state and the final state of the virtual object.

8 . The method of claim 1 , wherein tracking the virtual object further comprises:

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

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

identifying the physical object from the three-dimensional point cloud;

rendering the virtual object based on the physical object identified from the three-dimensional point cloud; and

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

9 . A head-wearable device comprising:

a display;

a processor; and

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

displaying a virtual object that corresponds to a physical object in a physical environment;

tracking, using the head-wearable device, the virtual object by tracking hand gestures of a user of the head-wearable device that is co-located in the physical environment of the physical object;

detecting, using the head-wearable device, the hands of the user grabbing the virtual object at a first location in the physical environment and releasing the virtual object at a second location in the physical environment;

defining an initial state of the virtual object at the first location and a final state of the virtual object at the second location based on the detecting; and

programming by demonstration a robotic system using the tracking of the virtual object, wherein the programming by demonstration comprises generating a robot program based on the initial state and the final state of the virtual object.

10 . The head-wearable device of claim 9 , wherein tracking the virtual object comprises:

tracking a trajectory of the virtual object by tracking the trajectory of the head-wearable device in the physical environment.

11 . The head-wearable device of claim 10 , wherein tracking the trajectory of the head-wearable device in the physical environment comprises: tracking, using a 6 degrees-of-freedom tracking system of the head-wearable device, a pose of the head-wearable device over a period of time,

wherein the trajectory of the head-wearable device is based on the pose of the head-wearable device over the period of time.

12 . The head-wearable device of claim 11 , wherein the period of time is based on the hand gestures of the user of the head-wearable device,

wherein tracking the hand gestures of the user of the head-wearable device comprises: tracking a manipulation of the virtual object with respect to the physical environment.

13 . The head-wearable device of claim 11 , wherein the period of time is based on:

detecting the hands of the user of the head-wearable device grabbing the virtual object corresponding to the first location in the physical environment, and

detecting the hands of the user of the head-wearable device releasing the virtual object corresponding to the second location in the physical environment.

14 . The head-wearable device of claim 9 , wherein a perceived location of the virtual object corresponds to a physical location of the physical object in the physical environment.

15 . The head-wearable device of claim 9 , wherein the virtual object is at an initial state at the first location, wherein the virtual object is at a final state at the second location,

wherein the programming by demonstration is based on the initial state and the final state of the virtual object.

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

displaying a virtual object in a display of a head-wearable device, the virtual object corresponding to a physical object in a physical environment;

tracking, using the head-wearable device, the virtual object by tracking hand gestures of a user of the head-wearable device that is co-located in a physical environment of the physical object;

detecting, using the head-wearable device, hands of the user grabbing the virtual object at a first location in the physical environment and releasing the virtual object at a second location in the physical environment;

defining an initial state of the virtual object at the first location and a final state of the virtual object at the second location based on the detecting; and

programming by demonstration a robotic system using the tracking of the virtual object, wherein the programming by demonstration comprises generating a robot program based on the initial state and the final state of the virtual object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2024
From: ZHOU, KAI; SCHOISENGEIER, ADRIAN
To: SNAP INC.
Reel/Frame 066975/0435 →
Continuity (2)
Continuation 17846930 · Jun 22, 2022
Related Publication 20240249483A1 · Jul 25, 2024
References Cited (27)
US 12017351B2 · Rod · 2024 [cited by examiner]
US 12145267B2 · Ramani · 2024 [cited by examiner]
US 20130346348A1 · Buehler et al. · 2013 [cited by applicant]
US 20160257000A1 · Guerin · 2016 [cited by examiner]
US 20180173323A1 · Harvey · 2018 [cited by examiner]
US 20190344441A1 · Rottmann · 2019 [cited by examiner]
US 20200117212A1 · Tian · 2020 [cited by examiner]
US 20210220737A1 · Fish · 2021 [cited by examiner]
US 20210378768A1 · Olson · 2021 [cited by examiner]
US 20210394046A1 · Yen · 2021 [cited by examiner]
US 20220055213A1 · Kang · 2022 [cited by examiner]
US 20220409996A1 · Gonzalez Franco · 2022 [cited by examiner]
US 20230419615A1 · Zhou et al. · 2023 [cited by applicant]
WO WO2020006146A1 · 2020 [cited by applicant]
WO WO2023250267A1 · 2023 [cited by applicant]
“U.S. Appl. No. 17/846,930, Non Final Office Action mailed Nov. 8, 2023”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 17/846,930, Notice of Allowance mailed Jan. 10, 2024”, 9 pgs. [cited by applicant]
“U.S. Appl. No. 17/846,930, Response filed Dec. 6, 2023 to Non Final Office Action mailed Nov. 8, 2023”, 12 pgs. [cited by applicant]
“International Application Serial No. PCT/US2023/068380, International Search Report mailed Oct. 10, 2023”, 4 pgs. [cited by applicant]
“International Application Serial No. PCT/US2023/068380, Written Opinion mailed Oct. 10, 2023”, 8 pgs. [cited by applicant]
Aleotti, Jacopo, et al., “Grasp programming by demonstration in virtual reality with automatic environment reconstruction”, Virtual Reality, vol. 16, https://doi.org/10.1007/s10055-010-0172-8, (2012), 87-104. [cited by applicant]
Aleotti, Jacopo, et al., “Programming manipulation tasks by demonstration in visuo-haptic augmented reality”, IEEE International Symposium on Haptic, Audio and Visual Environments and Games (HAVE) Proceedings, IEEE, pp.… [cited by applicant]
Cao, Yuanzhi, et al., “GhostAR: A Time-space Editor for Embodied Authoring of Human-Robot Collaborative Task with Augmented Reality”, User Interface Software and Technology, ACM, 2 Penn Plaza, Suite 701 New Yorkny10121-… [cited by applicant]
Ding, Guanwen, et al., “A Task-Learning Strategy for Robotic Assembly Tasks from Human Demonstrations”, Sensors, 20, 5505; doi:10.3390/s20195505, (2020), 23 pgs. [cited by applicant]
Kyrarini, Maria, et al., “Robot learning of industrial assembly task via human demonstrations”, Autonomous Robots, 43, https://doi.org/10.1007/s10514-018-9725-6, (2019), 239-257. [cited by applicant]
Rudorfer, Martin, et al., “Holo Pick'n'Place”, IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA, IEEE vol. 1, (Sep. 4, 2018), 1219-1222. [cited by applicant]
U.S. Appl. No. 17/846,930, filed Jun. 22, 2022, Robotic Learning of Assembly Tasks Using Augmented Reality. [cited by applicant]