Robotics Systems
First Claim
1. A method of generating a command for a robot controller, the method comprising:
- calling at least one action model having at least one action space to generate feasible commands for each action space;
calling each action model to generate an outcome for each command;
sending each outcome to at least one behavior for evaluation, each behavior providing an outcome evaluation for each outcome;
selecting a winning outcome for each action space based on the at least one outcome evaluation;
selecting the command corresponding to the winning outcome for each action space;
generating a single overall command based on the accumulated commands for each action space; and
sending the overall command to the robot controller.
4 Assignments
0 Petitions
Accused Products
Abstract
A method of controlling a robot includes running multiple applications on a processor, where each application has a robot controller and an action selection engine. Each application is in communication with at least one behavior and at least one action model of at least part of the robot. The method includes running periodic action selection cycles on each action selection engine. Each action selection cycle includes selecting a command for each action space of each action model, generating a single overall command based on the accumulated commands for each action model, and sending the overall command to the robot controller for execution on the robot.
-
Citations
53 Claims
-
1. A method of generating a command for a robot controller, the method comprising:
-
calling at least one action model having at least one action space to generate feasible commands for each action space; calling each action model to generate an outcome for each command; sending each outcome to at least one behavior for evaluation, each behavior providing an outcome evaluation for each outcome; selecting a winning outcome for each action space based on the at least one outcome evaluation; selecting the command corresponding to the winning outcome for each action space; generating a single overall command based on the accumulated commands for each action space; and sending the overall command to the robot controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of controlling a robot, the method comprising:
-
running multiple applications on a processor, each application having a robot controller and an action selection engine, each application being in communication with at least one behavior and at least one action model of at least part of the robot; and running periodic action selection cycles on each action selection engine, each action selection cycle comprising; selecting a command for each action space of each action model; generating a single overall command based on the accumulated commands for each action model; and sending the overall command to the robot controller for execution on the robot. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A robotics system comprising:
-
multiple robot resources; a control arbiter for each robot resource, the control arbiter controlling its associated robot resource; multiple applications in communication with the control arbiters, each application comprising; a robot controller in communication with the control arbiters; an action selection engine in communication with robot controller, the action selection engine periodically executing an action selection cycle to generate an overall command which is sent to the robot controller for execution on the robot resources; at least one behavior in communication with the action selection engine; and at least one action model in communication with the action selection engine, each action model modeling at least one of the robot resources and having at least one action space; and a robot manager in communication with the applications and the control arbiters, the robot manager implementing an application priority policy for determining which application has exclusive control of any one or more of the robot resources at a given time; wherein the action selection cycle comprises; selecting a command for each action space of each action model; generating the single overall command based on the accumulated commands for each action model; and sending the overall command to the robot controller. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A robotics system comprising:
-
multiple robot resources; a control arbiter for each robot resource, the control arbiter controlling its associated robot resource; multiple applications in communication with the control arbiters, each application comprising; a robot controller in communication with the control arbiters; and an action selection engine in communication with the robot controller; a robot manager in communication with the applications and the control arbiters, the robot manager implementing an application priority policy for determining which application has exclusive control of robot resources required by that application at a given time; wherein the action selection engine executes a heuristic search on each action space of each action model, which models one or more of the robot resources, to identify feasible commands, the action model providing an outcome for each command; wherein the action selection engine selects one of the commands for each action space based on the outcome evaluations provided by each behavior in communication with the action selection engine; and wherein the action selection engine generates an overall command for execution by the robot controller on the robot resources, through the control arbiters, based on the commands selected for each action space. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40)
-
-
41. A action selection system for robotics control, the action selection system comprising:
-
one or more action models, each action model comprising; at least one action space model defining a simulated state propagation for commands for a physical resource; a command generating routine that generates a predetermined limited number of feasible commands for the physical resource; and a command simulating routine that generates simulated outcomes, each simulated outcome corresponding to one feasible command, using a simulated state propagation of a corresponding action space model; one or more behaviors, each behavior comprising; a routine for collecting sensor data; and a routine assigning scores to simulated outcomes using an evaluation routine that considers sensor data, current resource state data, and predetermined goals associated with the behavior; and one or more action selection engines, each action selection engine comprising a routine for sequentially obtaining simulated outcomes from each action space model of each action model;
thenproviding the simulated outcomes to each behavior for assigning scores;
thenweighting the scores according to a predetermined weighting among behaviors;
thencomparing the weighted scores to determine one winning outcome for each action space model; and
thensending the one feasible command corresponding to the one winning outcome for each action space model to the physical resource corresponding to that one feasible command, one winning outcome, and one action space model. - View Dependent Claims (42, 43, 44, 45, 46, 47)
-
-
48. An action selection engine for robotics control, the action selection engine comprising:
a routine for sequentially (i) obtaining simulated outcomes from an action space model of an action model associated with the action selection engine, associated action models being characterized by; at least one action space model defining a simulated state propagation for commands for a physical resource; a command generating routine that generates a predetermined limited number of feasible commands for the physical resource; and a command simulating routine that generates simulated outcomes, each simulated outcome corresponding to one feasible command, using a simulated state propagation of a corresponding action space model; (ii) providing the simulated outcomes to behaviors associated with the action selection engine, associated behaviors being characterized by a routine for collecting sensor data; and a routine assigning scores to simulated outcomes using an evaluation routine that considers sensor data, current resource state data, and predetermined goals associated with the behavior; (iii) weighting the scores according to a predetermined weighting among behaviors;
then(iv) comparing the weighted scores to determine one winning outcome for each action space model; and
then(v) sending the one feasible command corresponding to the one winning outcome for each action space model to the physical resource corresponding to that one feasible command, one winning outcome, and one action space model.
-
49. A behavior for robotics control, the behavior comprising:
-
(i) a routine that collects sensor data; and (ii) a routine that receives a set of simulated outcomes from a connected object, assigns scores to the simulated outcomes using an evaluation routine that considers sensor data, current resource state data, a cascade of previously determined winning outcomes from earlier cycles, and predetermined goals associated with the behavior, wherein each simulated outcome in the set was provided as a simulated state propagation corresponding to one feasible command for a physical resource. - View Dependent Claims (50)
-
-
51. An action model for robotics control, the action model comprising:
-
(i) at least one action space model defining a simulated state propagation for commands for a physical resource; (ii) a command generating routine that generates a predetermined limited number of feasible commands for the physical resource; (iii) a command simulating routine that generates simulated outcomes, each simulated outcome corresponding to one feasible command, using a simulated state propagation of a corresponding action space model; and (iv) a routine that responds to messages from a connected object to provide at least a set of simulated outcomes for each action space model of each action model. - View Dependent Claims (52, 53)
-
Specification