MULTI-PURPOSE ROBOTS AND COMPUTER PROGRAM PRODUCTS, AND METHODS FOR OPERATING THE SAME
Robots, methods, and computer program products for training and operating (semi-) autonomous robots to complete multiple different work objectives are described. A robot accesses a library of reusable work primitives from a catalog of libraries of reusable work primitives, each reusable work primitive corresponding to a respective basic sub-task or sub-action that the robot is operative to autonomously perform. A work objective is analyzed to determine a sequence (i.e., a combination and/or permutation) of reusable work primitives that, when executed by the robot, will complete the work objective. The robot executes the sequence of reusable work primitives to complete the work objective. A robot can be deployed with an appropriate stored library (or access to an appropriate library) of reusable work primitives, based on what the robot is expected to do, or what service category or role the robot will operate in.
1 . A computer program product comprising processor-executable instructions or data that, when the computer program product is stored in a non-transitory processor-readable storage medium of a robot, and the computer program product is executed by at least one processor of the robot, the at least one processor communicatively coupled to the non-transitory processor-readable storage medium, causes the robot to:
identify a first work objective;
access a first library of reusable work primitives from a catalog of libraries of reusable work primitives, the first library of reusable work primitives including fewer reusable work primitives than the catalog of libraries of reusable work primitives;
identify a first workflow to complete the first work objective, the first workflow comprising a first set of reusable work primitives available in the first library of reusable work primitives of the catalog of libraries of reusable work primitives; and
execute the first workflow by executing the first set of reusable work primitives in the first library of reusable work primitives.
2 . The computer program product of claim 1 wherein the processor-executable instructions or data of the computer program product further cause the robot to:
identify a second work objective different from the first work objective;
access a second library of reusable work primitives from the catalog of libraries of reusable work primitives, the second library of reusable work primitives including fewer reusable work primitives than the catalog of libraries of reusable work primitives;
identify a second workflow to complete the second work objective, the second workflow comprising a second set of reusable work primitives available in the second library of reusable work primitives of the catalog of libraries of reusable work primitives, the second set of reusable work primitives being at least partially different from the first set of reusable work primitives; and
execute the second workflow by executing the second set of reusable work primitives in the second library of reusable work primitives.
3 . The computer program product of claim 2 wherein the processor-executable instructions or data of the computer program product further cause the robot to:
identify at least one additional work objective different from the first work objective and the second work objective;
access at least one additional library of reusable work primitives from the catalog of libraries of reusable work primitives, each additional library of reusable work primitives including fewer reusable work primitives than the catalog of libraries of reusable work primitives;
identify at least one additional workflow to complete the at least one additional work objective, the at least one additional workflow comprising at least one additional set of reusable work primitives available in the at least one additional library of reusable work primitives, the at least one additional set of reusable work primitives being at least partially different from the first set of reusable work primitives and the second set of reusable work primitives; and
execute the at least one additional workflow by executing the at least one additional set of reusable work primitives in the at least one additional library of reusable work primitives.
4 . The computer program product of claim 1 wherein the processor-executable instructions or data of the computer program product further cause the robot to:
identify a second work objective different from the first work objective;
identify a second workflow to complete the second work objective, the second workflow comprising a second set of reusable work primitives available in the first library of reusable work primitives of the catalog of libraries of reusable work primitives, the second set of reusable work primitives being at least partially different from the first set of reusable work primitives; and
execute the second workflow by executing the second set of reusable work primitives in the first library of reusable work primitives.
5 . The computer program product of claim 1 , the robot further including a communication interface communicatively coupled to the at least one processor, and wherein the processor-executable instructions or data of the computer program product which cause the robot to identify the first work objective cause the robot to: identify the first work objective based on instructions related to the first work objective received via the communication interface.
6 . The computer program product of claim 1 , wherein:
the robot includes at least one sensor;
the processor-executable instructions or data of the computer program product further cause the robot to capture, by the at least one sensor, sensor data representing an environment of the robot; and
the processor-executable instructions or data of the computer program product which cause the robot to identify the first work objective cause the robot to: identify, by the at least one processor of the robot, the first work objective based on at least the sensor data.
7 . The computer program product of claim 1 , the robot including a communication interface communicatively coupled to the at least one processor, wherein the processor-executable instructions or data of the computer program product which cause the robot to identify the first work objective cause the robot to: identify, by the at least one processor of the robot, the first work objective based on context data received by the communication interface from a device remote from the robot body.
8 . The computer program product of claim 1 , the robot including a communication interface communicatively coupled to the at least one processor, wherein the processor-executable instructions or data of the computer program product which cause the robot to identify the first workflow cause the robot to: identify the first workflow based on an indication related to the first workflow received via the communication interface.
9 . The computer program product of claim 1 wherein the processor-executable instructions or data of the computer program product which cause the robot to identify the first workflow cause the robot to: autonomously identify, by the at least one processor of the robot, the first set of reusable work primitives.
10 . The computer program product of claim 1 wherein the processor-executable instructions or data of the computer program product which cause the robot to identify the first workflow to complete the first work objective cause the robot to: identify a first permutation of a first combination of reusable work primitives from the catalog of libraries of reusable work primitives.
11 . The computer program product of claim 1 wherein the processor-executable instructions or data of the computer program product further cause the robot to select the first library of reusable work primitives from the catalog of libraries of reusable work primitives based on the first work objective.
12 . The computer program product of claim 1 wherein the processor-executable instructions or data of the computer program product further cause the robot to select the first library of reusable work primitives from the catalog of libraries of reusable work primitives based on the first workflow.
13 . The computer program product of claim 1 wherein the processor-executable instructions or data of the computer program product which cause the robot to identify the first work objective cause the robot to: identify the first work objective based on the first library of reusable work primitives.
14 . The computer program product of claim 1 wherein the processor-executable instructions or data of the computer program product which cause the robot to identify the first workflow cause the robot to: identify the first workflow based on the first library of reusable work primitives.
15 . The computer program product of claim 1 wherein the catalog of libraries of reusable work primitives includes a plurality of libraries of reusable work primitives directed to respective service categories, and wherein the processor-executable instructions or data of the computer program product which cause the robot to identify the first work objective cause the robot to:
identify the first work objective based at least in part on a service category; and
select the first library of reusable work primitives from the catalog of libraries of reusable work primitives based on a service category.
16 . The computer program product of claim 15 wherein each library in the plurality of libraries is directed to a respective service category selected from a group of service categories consisting of:
medical service;
cleaning service;
housekeeping service;
warehouse service;
fetch service;
delivery service;
repair service;
painting service; and
retail service.
17 . The computer program product of claim 1 wherein the first library of reusable work primitives is selected from a plurality of libraries of reusable work primitives, each library of reusable work primitives including a plurality of work primitives which is at least partially different from respective pluralities of reusable work primitives included in other libraries of reusable work primitives.
18 . The computer program product of claim 17 wherein each library of reusable work primitives is defined according to a set of work objectives performable by reusable work primitives included in the respective library of reusable work primitives.
19 . The computer program product of claim 17 wherein each library of reusable work primitives is defined according to a place of use for the respective library of reusable work primitives.
20 . The computer program product of claim 1 , the robot further including a communication interface communicatively coupled to the at least one processor, wherein the processor-executable instructions or data of the computer program product which cause the robot to access the first library of reusable work primitives from the catalog of libraries of reusable work primitives cause the robot to: access, via the communication interface, the first library of reusable work primitives stored on at least one remote non-transitory processor-readable storage medium of a device remote from the robot.