Program synthesis for robotic tasks
First Claim
1. A computer-implemented process for synthesizing a robotic task program, comprising:
- using a computer to perform the following process actions;
receiving one or more example tasks, each example task comprising a scene-reposition pair, said scene portion of a scene-reposition pair comprising a collection of objects characterized by their orientation, location and perceptual object characteristics, and representing a starting configuration of the objects in a workspace associated with a robot, and said reposition portion of a scene-reposition pair comprising repositioning data for one or more of said objects, wherein the repositioning data for an object comprises a destination orientation, or destination location, or both and is indicative of a task that the robot is to perform on the various objects in the workspace;
generating a plurality of complete candidate robotic task programs, each program comprising task instructions for causing the robot to reposition one or more of said objects in the workspace, and wherein each program represents a different complete set of task instructions consistent with the received example task or tasks;
ranking the plurality of complete candidate robotic task programs generated based on the degree to which a candidate program causes the robot to reposition objects in a manner indicated by the scene-reposition pair or pairs of the received example task or tasks; and
whenever the top ranking candidate robotic task program accomplishes the repositioning specified in each of the scene-reposition pairs in the received example task or tasks, designating the top ranking candidate robotic task program as the synthesized robotic task program.
3 Assignments
0 Petitions
Accused Products
Abstract
Robotic task program synthesis embodiments are presented that generally synthesize a robotic task program based on received examples of repositioning tasks. In one implementation, the exemplary repositioning tasks are human demonstrations of object manipulation in an actual or displayed robot workspace. A domain specific language (DSL) designed for object repositioning tasks is employed for the robotic control program. In general, candidate robotic task programs are generated from the example tasks. Each candidate program includes instructions for causing the robot to reposition objects, and represents a different permutation of instructions consistent with the received example tasks. The candidate programs are ranked, and whenever the top ranking program accomplishes the repositioning specified in each example task, it is designated as the synthesized robotic task program.
13 Citations
20 Claims
-
1. A computer-implemented process for synthesizing a robotic task program, comprising:
-
using a computer to perform the following process actions; receiving one or more example tasks, each example task comprising a scene-reposition pair, said scene portion of a scene-reposition pair comprising a collection of objects characterized by their orientation, location and perceptual object characteristics, and representing a starting configuration of the objects in a workspace associated with a robot, and said reposition portion of a scene-reposition pair comprising repositioning data for one or more of said objects, wherein the repositioning data for an object comprises a destination orientation, or destination location, or both and is indicative of a task that the robot is to perform on the various objects in the workspace; generating a plurality of complete candidate robotic task programs, each program comprising task instructions for causing the robot to reposition one or more of said objects in the workspace, and wherein each program represents a different complete set of task instructions consistent with the received example task or tasks; ranking the plurality of complete candidate robotic task programs generated based on the degree to which a candidate program causes the robot to reposition objects in a manner indicated by the scene-reposition pair or pairs of the received example task or tasks; and whenever the top ranking candidate robotic task program accomplishes the repositioning specified in each of the scene-reposition pairs in the received example task or tasks, designating the top ranking candidate robotic task program as the synthesized robotic task program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for synthesizing a robotic task program, comprising:
-
one or more computing devices, wherein said computing devices are in communication with each other via a computer network whenever there are multiple computing devices; and a computer program having program modules executable by the one or more computing devices, the one or more computing devices being directed by the program modules of the computer program to, receive one or more example tasks, each example task comprising a scene-reposition pair, said scene portion of a scene-reposition pair comprising a collection of objects characterized by their orientation, location and perceptual object characteristics, and representing a starting configuration of the objects in a workspace associated with a robot, and said reposition portion of a scene-reposition pair comprising repositioning data for one or more of said objects, wherein the repositioning data for an object comprises a destination orientation, or destination location, or both and is indicative of a task that the robot is to perform on the object in the workspace, generate a plurality of complete candidate robotic task programs in a domain specific language tailored to robotic manipulation tasks, each program comprising task instructions for causing the robot to reposition one or more of said objects in the workspace, and wherein each program represents a different complete set of task instructions consistent with the received example task or tasks, rank the plurality of complete candidate robotic task programs generated based on the degree to which a candidate program causes the robot to reposition objects in a manner indicated by the scene-reposition pair or pairs of the received example task or tasks, and whenever the top ranking candidate robotic task program accomplishes the repositioning specified in each of the scene-reposition pairs in the received example task or tasks, designate the top ranking candidate robotic task program as the synthesized robotic task program. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer-implemented process for synthesizing a robotic task program, comprising:
-
using a computer to perform the following process actions; receiving one or more example tasks, each example task comprising a scene-reposition pair, said scene portion of a scene-reposition pair comprising a collection of objects characterized by their orientation, location and perceptual object characteristics, and representing a starting configuration of the objects in a workspace associated with a robot, and said reposition portion of a scene-reposition pair comprising repositioning data for one or more of said objects, wherein the repositioning data for an object comprises a destination orientation, or destination location, or both and is indicative of a task that the robot is to perform on the object in the workspace; generating one or more candidate robotic task programs, each program comprising task instructions for causing the robot to reposition one or more of said objects in the workspace, and wherein each program represents a different set of task instructions consistent with the received example task or tasks; ranking the one or more candidate robotic task programs generated based on the degree to which a candidate program causes the robot to reposition objects in a manner indicated by the scene-reposition pair or pairs of the received example task or tasks; whenever the top ranking candidate robotic task program accomplishes the repositioning specified in each of the scene-reposition pairs in the received example task or tasks, designating the top ranking candidate robotic task program as the synthesized robotic task program; and whenever more than one candidate robotic task program has been generated and the top ranking candidate robotic task program does not accomplish the repositioning specified in each of the scene-reposition pairs in the received example task or tasks, a) combining the candidate robotic task programs in multiple ways to create a plurality of combined candidate robotic task programs, b) ranking the combined candidate robotic task programs based on the degree to which a candidate program causes the robot to reposition objects in a manner indicated by the scene-reposition pair or pairs of the received example task or tasks, c) whenever a current top ranking combined candidate robotic task program accomplishes the repositioning specified in each of the scene-reposition pairs in the received example task or tasks, designating the current top ranking combined candidate robotic task program as the synthesized robotic task program, and d) whenever a current top ranking combined candidate robotic task program does not accomplish the repositioning specified in each of the scene-reposition pairs in the received example task or tasks, combining the current combined candidate robotic task programs in multiple ways to create a plurality of new combined candidate robotic task programs, ranking the new combined candidate robotic task programs based on the degree to which a candidate program causes the robot to reposition objects in a manner indicated by the scene-reposition pair or pairs of the received example task or tasks, and repeating instructions c) and d) as appropriate until the current top ranking combined candidate robotic task program has been designated as the synthesized robotic task program.
-
Specification