IP Library Granted Patent US 9,707,680
Granted Patent B1
US 9,707,680 · App. 14/724,207 · Granted Jul 18, 2017

Suggesting, selecting, and applying task-level movement parameters to implementation of robot motion primitives

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,707,680
App. No.
14/724,207
Granted
Jul 18, 2017
Kind
B1
Abstract

Methods, apparatus, systems, and computer-readable media are provided for determining, based on a task to be performed by a robot and one or more attributes of an environment in which the robot is to perform the task, a suggested task-level movement parameter for application to movement of the robot while performing the task; providing output indicative of the suggested task-level movement parameter; receiving input indicative of user selection of the suggested task-level movement parameter or a user-defined task-level movement parameter; determining, based on the received input, an actual task-level movement parameter to be applied to movement of the robot while performing the task; and identifying, based on the actual task-level movement parameter, a plurality of component-level movement parameters to be applied to a plurality of motion primitives implemented by one or more operational components of the robot to perform the task.

Claims (52)

1. A computer-implemented method, comprising:

determining, by one or more processors, one or more physical attributes of an object to be acted upon by a robot while the robot performs a task;

determining, by one or more of the processors, based on the task to be performed by the robot and the one or more physical attributes of the object, a suggested task-level movement parameter for application to movement of the robot while performing the task;

providing, by one or more of the processors, via a graphical user interface, an indication of the suggested task-level movement parameter;

receiving, by one or more of the processors, via the graphical user interface, a selection of the suggested task-level movement parameter or a user-defined task-level movement parameter;

determining, by one or more of the processors, based on the received selection, an actual task-level movement parameter to be applied to movement of the robot while performing the task; and

identifying, by one or more of the processors, based on the actual task-level movement parameter, a plurality of component-level movement parameters to be applied to a plurality of motion primitives implemented by one or more operational components of the robot to perform the task; and

operating, by one or more of the processors, the one or more operational components of the robot to implement the plurality of motion primitives pursuant to the plurality of component-level movement parameters.

2. The computer-implemented method of claim 1 , wherein identifying the plurality of component-level movement parameters comprises:

identifying, by the one or more processors, based on the actual task-level movement parameter, a plurality of action-level movement parameters to be applied to a plurality of actions implemented by the robot to perform the task; and

identifying, by the one or more processors, based on a given action-level movement parameter of the plurality of action-level movement parameters, one or more component-level movement parameters to be applied to one or more motion primitives implemented by one or more operational components of the robot to perform a given action associated with the given action-level movement parameter.

3. The computer-implemented method of claim 2 , wherein the method further comprises selecting, by the one or more processors, based on one or more of the actual task-level movement parameter and the given action-level movement parameter, a sensitivity of an error condition associated with the given action, wherein the robot transitions from performing the given action to performing an error condition action on satisfaction of the error condition.

4. The computer-implemented method of claim 1 , wherein determining the suggested task level movement is based at least in part on output from a machine learning classifier that is trained using training examples of past tasks performed by the robot or other robots on other objects that share physical attributes with the object to be acted upon by the robot.

5. The computer-implemented method of claim 1 , wherein the identifying comprises:

identifying, based on the actual task-level movement parameter, a first component-level movement parameter to be applied to a first motion primitive implemented by a first operational component of the robot to perform the task; and

identifying, based on the actual task-level movement parameter, a second component-level movement parameter to be applied to a second motion primitive implemented by a second component of the robot to perform the task;

wherein the first component-level movement parameter affects operation of the first operational component differently than the second component-level movement parameter affects operation of the second operational component.

6. The computer-implemented method of claim 1 , further comprising rendering, by the one or more processors, as an element of the graphical user interface, a directed graph with a graphical element to represent the task.

7. The computer-implemented method of claim 6 , further comprising rendering, by the one or more processors, as elements of the directed graph, additional graphical elements representing at least two actions, wherein the at least two actions together form at least part of the task.

8. The computer-implemented method of claim 6 , wherein the graphical element is a first graphical element, the task is a first task, and the method further comprises:

rendering, by the one or processors, as part of the directed graph, a second graphical element representing a second task;

wherein the second graphical element is arranged in the directed graph chronologically before or after the first graphical element based on user input indicative of one of the first and second graphical elements having been dragged to a position preceding or following the other graphical element in the directed graph.

9. The computer-implemented method of claim 1 , wherein at least one of the plurality of component-level movement parameters comprises a measure of force imparted by an operational component of the robot while implementing a motion primitive.

10. The computer-implemented method of claim 1 , wherein at least one of the plurality of component-level movement parameters comprises a measure of mechanical impedance emulated by an operational component of the robot towards the environment in which the robot is to perform the task.

11. The computer-implemented method of claim 1 , wherein at least one of the plurality of component-level movement parameters comprises a velocity achieved by an operational component of the robot while implementing a motion primitive.

12. The computer-implemented method of claim 1 , wherein the suggested task-level movement parameter is further determined based on past behavior by robots while performing tasks similar to the task.

13. The computer-implemented method of claim 1 , wherein the suggested task-level movement parameter is further determined based on past behavior by robots while acting upon objects similar to the object to be acted upon by the robot while performing the task.

14. The computer-implemented method of claim 1 , wherein the suggested task-level movement parameter is further determined based on past behavior by robots while operating in environments similar to the environment in which the robot is to perform the task.

15. At least one non-transitory computer-readable medium comprising instructions that, in response to execution of the instructions by a computing system, cause the computing system to perform the following operations:

determining one or more physical attributes of an environment in which a robot is to perform a task;

determining, based on the task to be performed by the robot and the one or more physical attributes of the environment, a suggested task-level movement parameter for application to movement of the robot while performing the task;

providing output indicative of the suggested task-level movement parameter;

receiving input indicative of user selection of the suggested task-level movement parameter or a user-defined task-level movement parameter;

determining, based on the received input, an actual task-level movement parameter to be applied to movement of the robot while performing the task;

identifying, based on the actual task-level movement parameter, a plurality of component-level movement parameters to be applied to a plurality of motion primitives implemented by one or more operational components of the robot to perform the task; and

operating the one or more operational components of the robot to implement the plurality of motion primitives pursuant to the plurality of component-level movement parameters.

16. A control system comprising one or more processors and memory operably coupled with the one or more processors, wherein the memory stores instructions that, in response to execution of the instructions by one or more processors, cause the one or more processors to:

determine, based on a task to be performed by a robot and an aggregate amount of information known about an environment in which the robot is to perform the task, a suggested task-level movement parameter for application to movement of the robot while performing the task;

provide output indicative of the suggested task-level movement parameter;

receive input indicative of user selection of the suggested task-level movement parameter or a user-defined task-level movement parameter;

determine, based on the received input, an actual task-level movement parameter to be applied to movement of the robot while performing the task;

identify, based on the actual task-level movement parameter, a plurality of component-level movement parameters to be applied to a plurality of motion primitives implemented by one or more operational components of the robot to perform the task; and

operate the one or more operational components of the robot to implement the plurality of motion primitives pursuant to the plurality of component-level movement parameters.

17. The control system of claim 16 , further comprising instructions to:

identify, based on the actual task-level movement parameter, a plurality of action-level movement parameters to be applied to a plurality of actions implemented by the robot to perform the task; and

identify, based on a given action-level movement parameter of the plurality of action-level movement parameters, one or more component-level movement parameters to be applied to one or more motion primitives implemented by one or more operational components of the robot to perform an action associated with the given action-level movement parameter.

18. The control system of claim 16 , wherein the aggregate amount of information known about the environment is determined based at least in part on a determination that the environment is dynamic.

19. The control system of claim 16 , further comprising instructions to:

identify, based on the actual task-level movement parameter, a first component-level movement parameter to be applied to a first motion primitive implemented by a first operational component of the robot to perform the task; and

identify, based on the actual task-level movement parameter, a second component-level movement parameter to be applied to a second motion primitive implemented by a second component of the robot to perform the task;

wherein the first component-level movement parameter affects operation of the first operational component differently than the second component-level movement parameter affects operation of the second operational component.

20. The control system of claim 16 , further comprising instructions to render, as an element of a graphical user interface, a directed graph with a graphical element to represent the task.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE REMOVAL OF THE INCORRECTLY RECORDED APPLICATION NUMBERS 14/149802 AND 15/419313 PREVIOUSLY RECORDED AT REEL: 44144 FRAME: 1. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 4, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 068092/0502 →
CHANGE OF NAME Recorded Oct 6, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044144/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: GOOGLE INC.
To: X DEVELOPMENT LLC
Reel/Frame 039900/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2015
From: JULES, ANTHONY SEAN; JESSEN, JOHAN ULRICH LEWIN
To: GOOGLE INC.
Reel/Frame 035747/0490 →