IP Library Granted Patent US 9,919,232
Granted Patent B2
US 9,919,232 · App. 14/843,591 · Granted Mar 20, 2018

Mobile agents for manipulating, moving, and/or reorienting components

Inventors: Hanns Tappeiner (San Francisco, CA); Boris Sofman (San Francisco, CA); Patrick DeNeale (Oakland, CA)
Assignee: Anki, Inc.
A63H30/02A63F13/00A63F13/30A63H17/40A63H18/16A63H30/04A63H33/04B25J9/08B25J9/1617G05D1/0088A63H17/32A63H33/042A63H33/046G05B2219/39146G05B2219/40109G05B2219/40302
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 9,919,232
App. No.
14/843,591
Granted
Mar 20, 2018
Kind
B2
Abstract

Mobile agents automatically manipulate components such as blocks on a working surface, to perform operations such as construction of generalized structures. The working surface and/or the components can have machine-readable codes to assist the agents in maintaining current knowledge of their respective locations. Agents identify components by type and location, and can move components according to directions; such directions can be provided by a user, or can be based on a pre-programmed directive, or can be determined dynamically based on current conditions or in response to actions of other agents. Agents may cooperate with one another. Agents can also respond to changes in the environment, alterations in works in progress, and/or other conditions, and may be configured to exhibit responses simulating emotional reactions. Different mobile agents can be associated with different character traits, which may be configured to change based on environmental conditions and/or the behavior of other mobile agents.

Claims (103)

1. A robot comprising:

one or more actuators that are each configured to effect a physical movement of the robot;

one or more processors; and

one or more storage devices storing instructions that are operable, when executed by the one or more processors, to cause the robot to perform operations comprising:

prompting a user for a particular input;

obtaining a first personality parameter assigned to the robot, the first personality parameter being one of a plurality of maintained personality parameters;

obtaining one or more behavior criteria to which the first personality parameter is mapped for the prompted input, the one or more behavior criteria corresponding respectively to one or more behavior attributes;

obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input;

computing one or more respective values of the one or more behavior attributes;

determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria for the first emotion-specific action to which the first personality parameter of the robot is mapped for the prompted input; and

in response to determining that the computed values for the one or more behavior attributes satisfy the one or more behavior criteria for the first emotion-specific action to which the first personality parameter of the robot is mapped for the prompted input, executing the first emotion-specific action including issuing commands to the one or more actuators to cause the robot to perform one or more physical movements corresponding to the first emotion-specific action.

2. The robot of claim 1 , wherein the personality parameter is extroverted positive, sensitive positive, reserved positive, reserved neutral, cynical negative, or sensitive negative.

3. The robot of claim 1 , wherein the one or more behavior criteria comprise a maximum elapsed time, a maximum number of user input requests to which the first personality parameter is mapped for the prompted input, or both, and

wherein computing the one or more respective values of the one or more behavior attributes comprises computing an elapsed time since prompting the user for the particular input, computing a number of user input requests, or both.

4. The robot of claim 3 , wherein the operations further comprise:

determining that a received user input matches the prompted input, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was less than or equal to the maximum elapsed time for the prompted input and determining that the computed number of user input requests was less or equal to than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a positive action to which the first personality parameter is mapped for the prompted input.

5. The robot of claim 3 , wherein the operations further comprise:

determining that a received user input matches the prompted input, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was more than the maximum elapsed time for the prompted input or determining that the computed number of user input requests was more than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a moderating action to which the first personality parameter is mapped for the prompted input.

6. The robot of claim 5 , wherein the operations further comprise:

obtaining a different second emotion-specific action to which the first personality parameter is mapped for the prompted input; and

executing the second emotion-specific action including issuing commands to the one or more actuators to cause the robot to perform one or more physical movements corresponding to the second emotion-specific action.

7. The robot of claim 6 , wherein the second emotion-specific action is a positive action that is executed after the moderating action.

8. The robot of claim 6 , wherein the operations further comprise:

determining that a user input does not match the prompted input, and

wherein the second emotion-specific action is a negative action to which the first personality parameter is mapped for the prompted input.

9. The robot of claim 3 , wherein the operations further comprise:

determining that no user input was received, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was more than the maximum elapsed time for the prompted input and determining that the computed number of user input requests was more than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a negative action to which the first personality parameter is mapped for the prompted input.

10. The robot of claim 3 , wherein the operations further comprise:

determining that a received user input is not recognized, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a confused action to which the first personality parameter is mapped for the prompted input.

11. The robot of claim 1 , wherein prompting a user for a particular input comprises requesting assistance from the user.

12. The robot of claim 11 , wherein requesting assistance comprises requesting the user to place something in front of the robot.

13. The robot of claim 1 , wherein the personality parameter is represented as a value on a scale between opposing personality characteristics.

14. A method to be performed by a robot, comprising:

prompting a user for a particular input;

obtaining a first personality parameter assigned to the robot, the first personality parameter being one of a plurality of maintained personality parameters;

obtaining one or more behavior criteria to which the first personality parameter is mapped for the prompted input, the one or more behavior criteria corresponding respectively to one or more behavior attributes;

obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input;

computing one or more respective values of the one or more behavior attributes;

determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria for the first emotion-specific action to which the first personality parameter of the robot is mapped for the prompted input; and

in response to determining that the computed values for the one or more behavior attributes satisfy the one or more behavior criteria for the first emotion-specific action to which the first personality parameter of the robot is mapped for the prompted input, executing the first emotion-specific action including performing one or more physical movements corresponding to the first emotion-specific action.

15. The method of claim 14 , wherein the personality parameter is extroverted positive, sensitive positive, reserved positive, reserved neutral, cynical negative, or sensitive negative.

16. The method of claim 14 , wherein the one or more behavior criteria comprise a maximum elapsed time and, a maximum number of user input requests to which the first personality parameter is mapped for the prompted input, or both, and

wherein computing the one or more respective values of the one or more behavior attributes comprises computing an elapsed time since prompting the user for the particular input, computing a number of user input requests, or both.

17. The method of claim 16 , further comprising:

determining that a received user input matches the prompted input, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was less than or equal to the maximum elapsed time for the prompted input and determining that the computed number of user input requests was less or equal to than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a positive action to which the first personality parameter is mapped for the prompted input.

18. The method of claim 16 , further comprising:

determining that a received user input matches the prompted input, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was more than the maximum elapsed time for the prompted input or determining that the computed number of user input requests was more than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a moderating action to which the first personality parameter is mapped for the prompted input.

19. The method of claim 18 , further comprising:

obtaining a different second emotion-specific action to which the first personality parameter is mapped for the prompted input; and

executing the second emotion-specific action including issuing commands to the one or more actuators to cause the robot to perform one or more physical movements corresponding to the second emotion-specific action.

20. The method of claim 19 , wherein the second emotion-specific action is a positive action that is executed after the moderating action.

21. The method of claim 19 , further comprising:

determining that the user input does not match the prompted input, and

wherein the second emotion-specific action is a negative action to which the first personality parameter is mapped for the prompted input.

22. The method of claim 17 , further comprising:

determining that no user input was received, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was more than the maximum elapsed time for the prompted input and determining that the computed number of user input requests was more than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a negative action to which the first personality parameter is mapped for the prompted input.

23. The method of claim 17 , further comprising:

determining that a received user input is not recognized, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a confused action to which the first personality parameter is mapped for the prompted input.

24. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more robot processors cause a robot to perform operations comprising:

prompting a user for a particular input;

obtaining a first personality parameter assigned to the robot, the first personality parameter being one of a plurality of maintained personality parameters;

obtaining one or more behavior criteria to which the first personality parameter is mapped for the prompted input, the one or more behavior criteria corresponding respectively to one or more behavior attributes;

obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input;

computing one or more respective values of the one or more behavior attributes;

determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria for the first emotion-specific action to which the first personality parameter of the robot is mapped for the prompted input; and

in response to determining that the computed values for the one or more behavior attributes satisfy the one or more behavior criteria for the first emotion-specific action to which the first personality parameter of the robot is mapped for the prompted input, executing the first emotion-specific action including issuing commands to one or more robot actuators to cause the robot to perform one or more physical movements corresponding to the first emotion-specific action.

25. The computer program product of claim 24 , wherein the personality parameter is extroverted positive, sensitive positive, reserved positive, reserved neutral, cynical negative, or sensitive negative.

26. The computer program product of claim 24 , wherein the one or more behavior criteria comprise a maximum elapsed time, a maximum number of user input requests to which the first personality parameter is mapped for the prompted input, or both, and

wherein computing the one or more respective values of the one or more behavior attributes comprises computing an elapsed time since prompting the user for the particular input, computing a number of user input requests, or both.

27. The computer program product of claim 26 , wherein the operations further comprise:

determining that a received user input matches the prompted input, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was less than or equal to the maximum elapsed time for the prompted input and determining that the computed number of user input requests was less or equal to than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a positive action to which the first personality parameter is mapped for the prompted input.

28. The computer program product of claim 26 , wherein the operations further comprise:

determining that a received user input matches the prompted input, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was more than the maximum elapsed time for the prompted input or determining that the computed number of user input requests was more than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a moderating action to which the first personality parameter is mapped for the prompted input.

29. The computer program product of claim 28 , wherein the operations further comprise:

obtaining a different second emotion-specific action to which the first personality

parameter is mapped for the prompted input; and

executing the second emotion-specific action including issuing commands to the one or more actuators to cause the robot to perform one or more physical movements corresponding to the second emotion-specific action.

30. The computer program product of claim 29 , wherein the second emotion-specific action is a positive action that is executed after the moderating action.

31. The computer program product of claim 29 , wherein the operations further comprise:

determining that the user input does not match the prompted input, and

wherein the second emotion-specific action is a negative action to which the first personality parameter is mapped for the prompted input.

32. The computer program product of claim 26 , wherein the operations further comprise:

determining that no user input was received, and

wherein determining that the one or more computed values for the one or more behavior attributes satisfy the one or more behavior criteria comprises determining that the computed elapsed time was more than the maximum elapsed time for the prompted input and determining that the computed number of user input requests was more than the maximum number of user input requests, and

wherein obtaining a first emotion-specific action to which the first personality parameter is mapped for the prompted input comprises obtaining a negative action to which the first personality parameter is mapped for the prompted input.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2022
From: DIGITAL DREAM LABS, LLC
To: DIGITAL DREAM LABS, INC.
Reel/Frame 059819/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2020
From: DSI ASSIGNMENTS, LLC
To: DIGITAL DREAM LABS, LLC
Reel/Frame 052211/0235 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2020
From: ANKI, INC.
To: DSI ASSIGNMENTS, LLC
Reel/Frame 052190/0487 →
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2020
From: SILICON VALLEY BANK
To: ANKI, INC.
Reel/Frame 051485/0600 →
RELEASE OF SECURITY INTEREST Recorded Aug 13, 2019
From: FISH & RICHARDSON
To: ANKI, INC
Reel/Frame 050034/0151 →
LIEN Recorded Jun 3, 2019
From: ANKI, INC.
To: FISH & RICHARDSON P.C.
Reel/Frame 049342/0887 →
SECURITY INTEREST Recorded Apr 4, 2018
From: ANKI, INC.
To: SILICON VALLEY BANK
Reel/Frame 046231/0312 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2015
From: TAPPEINER, HANNS; SOFMAN, BORIS; DENEALE, PATRICK
To: ANKI, INC.
Reel/Frame 036481/0161 →
Continuity (9)
Continuation 14291513 · May 30, 2014
Continuation In Part 13963638 · Aug 9, 2013
Continuation In Part 13707512 · Dec 6, 2012
Continuation 12788605 · May 27, 2010
Provisional Application 61829419 · May 31, 2013
Provisional Application 61693687 · Aug 27, 2012
Provisional Application 61181719 · May 28, 2009
Provisional Application 61261023 · Nov 13, 2009
Related Publication 20150375129A1 · Dec 31, 2015